emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] Org-mode for Product Requirements


From: Bill Wishon
Subject: Re: [O] Org-mode for Product Requirements
Date: Fri, 20 Apr 2012 16:46:41 -0700

Quick update,

Here's a start at the type of org doc I'm aiming to build ultimately with the help of my new org-prd module : http://dl.dropbox.com/u/25725498/org-prd.org  It's actually the first draft of the PRD for org-prd.

And here's my start at the org-prd.el itself.  It's a small start with only a function to create a unique CUSTOM_ID, but it's a start as I get familiar with elisp and org-mode hacking.  http://dl.dropbox.com/u/25725498/org-prd.el

~>Bill

On Mon, Apr 16, 2012 at 5:39 PM, Bill Wishon <address@hidden> wrote:
Hi Org-mode Community,

I'm a product manager and I've been using org-mode for quite some time and was recently thinking how Org-mode might be a good starting point for a personal product requirements management system.  I've searched around a bit and didn't find any discussions about such a topic, and before I start down this path I figured I'd send a note to this group to:
a) See if anyone else uses org-mode for product requirements.  I'd like to hear about that.
b) Get feedback on my approach from other org-mode users.  How I'm thinking of using properties, tags, TODO state, hooks, etc...

I thought Org-mode would be a good place to start since, for me requirements are a bit like TODO items, I come across them during meetings with colleagues and customers and want to track them inline to the context that I find them in.  I then want to take these "requirement" todo items and add a bit of structure and collect them in a different document.

I'm leaning toward using a "requirement" tag on my TODO items since semantically the item is still a todo item, and the tag indicates a special way to handle that todo.  I suppose the other way would be to create a new TODO state like REQ.  Any reason why one would be better than the other?

I'd probably start by hooking into org-after-todo-state-change-hook and looking for DONE and the requirement tag.  And if I'm completing a TODO requirement then :
1. Choose the destination, maybe try and leverage existing "refiling" logic.
2. Copy the headline into the requirements document leaving behind the original completed headline and a link to the new requirement location.
3. Generate a file unique CUSTOM_ID like REQ-005 if this was the fifth requirement.  This would allow for creating relationships between requirements without regard to their names.
4. Create the mandatory properties, perhaps this is just some type of template text for now, maybe a series of "wizard like" questions in the future.

Then I'd also create a custom export option.  Two things come to mind here in addition to what I already know about customizing html output.
i. Formatting the properties in a specific order and in a custom way, emphasizing some properties over others.
ii. How to get links in properties to work during html export like they do if you put a link in a text body.  eg: in emacs [[#REQ-001]] displays as a link whether it's in a property or text body, but when exported as HTML only the one in the body text is an html link, the link in the property is just the original literal text [[#REQ-001]].

In the future I can see doing the following sorts of things:
* Generating different views (both in emacs and for export) eg: roadmap view, filter by release, dependency tree view
* Computing statistics like the number of requirements per release, amount of estimated engineering effort per release, etc...
* Validate requirements checking for entries missing required properties, or entries that don't state something firm eg: has the words must or shall

I'm only just beginning on this and I'd appreciate any feedback and advice the group may have.

Best,
~>Bill

Here's a sample of what I'm thinking in org mode format:
* Introduction
* Use Cases
* Features
** Standard File Dialogs
:PROPERTIES:
:CUSTOM_ID: FEAT-001
:Topic: File IO
:SolvedBy: [[#REQ-001]] [[#REQ-002]]
:END:
The product shall have standard file Open, Save, Save As features
* Requirements
:PROPERTIES:
:Status_ALL: new reviewed approved assigned "in development" complete
:END:
** Save as
:PROPERTIES:
:CUSTOM_ID: REQ-001
:Topic: File IO
:Status: assigned
:Release: Astraeus
:Created: [2012-04-16 Mon]
:Author: Bill Wishon
:SolvedBy: [[#REQ-002]]
:END:
The product shall allow for users to save things to a different name.
** Save
:PROPERTIES:
:CUSTOM_ID: REQ-002
:Topic: File IO
:DependsOn: [[#REQ-001]]
:END:
The product shall allow for users to save their work.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]