A software product is usually built with a purpose in mind. There is a reason a good number of web application domains end with “.io “. It literally means Input Output.
Your product takes in some raw information and returns more valuable processed information.
As usual, the devil is the details. What does raw information mean? What does output mean?
Scrum typically adopts user stories as its template for expressing its requirements.
This simple structure of:
As a __
I want to___
So that __
Elegantly captures what the software should do and why.
Still, as the product gets bigger and the requirements pile on, I find it useful to impose some categories on the backlog.
In this entry, we will be looking at some categories which I have found to be useful.
At iHub, we pride ourselves in our Human-Centered Approach. The simple reason is it works.
The software serves people. At the end of the databases, activity streams, object storage etc is a person trying to get something done. Your success is measured by how successful this person is.
It then helps to acknowledge user requirements as a category on its own.
A typical requirement would be
As a *researcher* I want to *have my results sorted by relevance* so that *I can get my work done faster*
We talk about the wonders of technology, from the airplane to the mini computer in our pockets. Yet, I would argue the biggest invention by humans was the enterprise.
Businesses, are the engines of our society, working behind the scenes, they provide us with all our material needs.
No matter how good, the software or how well it serves the users, if the business does not provide value to its owner then it’s as good as dead.
With this in mind, you must seek to also clarify why it is the client wants the software product built in the first place.
This is usually captured in the client’s vision statement. Of this, the software serves only a part of it.
An example of vision statement from Amnesty International
A world in which every person enjoys all of the human rights enshrined in the Universal Declaration of Human Rights and other international human rights instruments.
If you happen to be contracted by Amnesty International, you need to remember to imbue this inspiring vision in every line of code you ship.
Robert Gardy in his 1992 book Practical Software Metrics for Project Management and Process Improvement
Came up with the acronym FURPS+
The “+” in FURPS+ also helps us to remember concerns such as:
- Design requirements
- Implementation requirements
- Interface requirements
- Physical requirements
The idea is in addition to doing what it does, software is also required to do it well.
How effective do you think Google would be if it took 5 minutes to give you a response to your query?
I believe by categorizing your backlogs in this way, you will able to get more ideas on what is to be included in the final product as well as appropriately prioritize the various backlogs resulting from it.
How do you categorize backlogs in your own organization? How did you handle it?