Requirements as Tickets (or, Hierarchy to the Rescue)
November 11, 2006 – 4:17 pmSeveral of the small companies we’ve spoken to recently have asked whether it would make sense to use an issue tracker to manage requirements. It’s superficially sensible: if you can create tickets for feature requests, why not create them for the needs that drive those features?
After pondering this for a (short) while, we think it’s workable, but with caveats. The first is that stakeholders must be able to express relationships between tickets, such as “Feature X is needed to satisfy business need Y”, “P is an exception to the general rule Q,” or, “E must be done before F and G, which in turn must both be done before H can be started”. Injecting these cross-references must be really, really easy: stakeholders cannot be required to type in lots of ticket numbers (they might be willing to do this once, but they won’t keep them all up to date as tickets are split, merged, added, and removed during the course of the project).
The second caveat is that the system must give stakeholders a way to organize the tickets into a sensible linear order. Hypertext is all very well, but wandering around a twisty maze of little requirements is not an effective way to understand a complex system. Linearization gives people who already know the problem architecture a way to help people who don’t, learn.
We’re still thinking about the first (tag-directed proximitization in an unstructured graph plus link-drawing?), but we have an idea for the second. Right now, most ticketing systems’ standard display is a flat list sorted by ticket ID, filing date, priority, or something of that ilk (Figure 1).
What if stakeholders had another view, in which they could organize tickets like this:
| Tagging System | ||
| 281: In-place editing | ||
| 407: Keyword completion | ||
| 399: Explicit “submit” | ||
| 117: Colorization | ||
| 145: Red-purple-blue spectrum | ||
| 214: Must be legible when printed B&W | ||
A little AJAX ought to be enough to let users move things up and down, drag them left and right, or create a heading that isn’t associated with an actual ticket. The system would store this structure as a first-class entity; tickets that hadn’t yet been manually organized wouldn’t appear in it, while tickets that had been closed would be crossed out until a human being said, “Yeah, take it out of the hierarchy.”
I don’t know if this would be a sensible way to organize issue tickets (which often relate to several components of the system). I think it has more of a chance of working with requirements; I’d be interested in hearing what you think.
4 Responses to “Requirements as Tickets (or, Hierarchy to the Rescue)”
I agree that some sort of “view” should be implemented to enhance the ticket system. And yes, I believe AJAX is a suitable candidate for altering “view”s.
DrProject is a MVC system and thus why not take the true advantage of a MVC?
Here, I am not addressing the concern to only DrProject, but ticket system in general.
Different audiences have difference concerns and thus they need to view things differently.
A project manager wouldn’t care the set of tasks to complete a feature more than a set of features to be packed to version 1.0 RC1. And that logically implies that ticket system for project managers are redundant in a sense.
Or, a business executive wouldn’t care more about the features that will make up 1.0 RC1 than the value proposition embedded in each feature.
Therefore, some sorts of categorization is needed.
And yes, if there is categorization, there MIGHT be a hierarchy in the system….(not necessary!)
Consider the design pattern Bridge, where you can provide different views to a dataset.
So the problem here is: “Information Presentation”, not “Information Organization”, I believe.
And that leads to a less complicated solution where we do not necessary need to change the core of the system, but the boundaries of the system.
Now, the question is, what views are interesting to who?
I believe the answer should be conducted from a series of stakeholder interviews with people who are responsible for different sectors of a software product (or service).
By Daniel Che-Yi Chu on Nov 11, 2006
The strength of this proposal, I think, is the flexibility it gives to its users. You may choose to have a full requirements tree, a partial tree, or a flat list. You decide if you need headers, you decide where, you can take them out without ugly consequences. In contrast to many requirements tools, it’s simple enough that it might get picked up. I’d love to see this in action.
By Jorge on Nov 13, 2006
Did you see Malone at Launchpad? It seems it has something like you that… I didn’t see how it is to edit it, but the dependency graph seems great.
Look: https://features.launchpad.net/distros/ubuntu/+spec/composite-by-default
By João Toledo on Nov 17, 2006