The importance of a well developed, force-ranked backlog of development priorities
A couple of weeks ago I wrote about Agile software development off-shore. In that post I mentioned that the single most important item when planning and managing an Agile project off-shore was a well developed, force-ranked backlog of development priorities. While this is absolutely true, there is one key challenge to managing an Agile project off-shore through a development backlog.
The problem? It is difficult to accurately estimate delivery dates. For engineers the idea of committing to a delivery date is like asking Bob Dylan to let us know when All Along the Watchtower will be finished and ready to record. You don’t rush genius. However, we all know that the stakeholders and business folks cannot run a business on “it’ll be done when it’s done.” We all have resource constraints, so in all but the rarest cases a delivery estimate is necessary.
The problem is that Agile process requires that designs are only completed right before implementation begins. That means that most feature development time estimates are done without any designs to reference. That is a problem when your technical architect and lead designer are 10 hours apart and don’t speak the same native language. In traditional development teams, the designer and the architect would sit down together to estimate the time to implement each feature based on the technical architect’s understanding of implementation and the designers understanding of future feature design.
Without the ability to quickly and easily discuss implementation time and feature designs it is necessary to sit down and go over each feature estimate, talk about the design and determine if the estimate is accurate. I’m not yet sure what the optimal frequency of these meetings is, but I think it should be done each time there is a major update to the backlog.