In the course of delivering a hosted e-commerce software package, we have more development ideas than we have the time
or programmers to act on. Our clients are a constant source of feature
requests.
Likewise we generate a lot of ideas internally in the course of supporting our
clients. The challenge is making sure we spend our limited resources on implementing the
"right" ideas.
To help us with this, several months ago we moved to an Agile software
development process. Specifically, we incorporated
a light-weight implementation of Scrum into our existing development
processes. While our Montana-based software company has seen a variety of benefits of moving to Scrum, the programmers among us quickly appreciated the clarity that came from creating and sustaining a "product backlog".
So what is a product backlog? The product backlog in Scrum is simply a to-do
list for software changes, in priority order. Note that it is a single list.
Before we created our product backlog we worked from several to-do lists. We
have feature requests coming into our support queue from clients. We have task
lists in our project management tool. Each of us has our personal to-do list.
And some to-dos are email threads that hadn't yet found their way into
a more permanent list. So the challenge was knowing which to-dos to do next.
By putting all product changes in a single list it becomes much easier to make
informed decisions about what to do next. Choosing among the ideas still isn't
easy. But by having all these ideas in one place, and knowing there is only so
much we can do in a week, we are able, if fact, required to make conscious, deliberate decisions about how to spend
our limited development resources. It becomes obvious that if we decide to
invest time in project A this week, project B will have to wait.
Because the product backlog forces us to constantly evaluate
projects in terms of relative value, the features or projects that have the greatest value
naturally float to the top. The end result is a single to-do list in priority
order. This is a win-win (-win) situation. Developers gain focus instead of wondering which task on which list they should work on next. The company gets the
most efficient allocation of resources. And the client receives the highest
value system enhancements.
Next time I will introduce the idea of user stories and describe how we batch stories into software development iterations, known as "sprints" in a Scrum shop like ours.
Recent Comments