We see many software teams that describe themselves as agile, but still develop project plans, assign resources to tasks and track time on their project. Agile purists would argue these teams are not truly agile because they are breaking some agile principles, such as encouraging empowered and self-organizing teams, and enabling a responsive, efficient development process. Are these teams agile, traditional iterative, or some hybrid of the two?
The reality is many enterprise software organizations are comfortable with traditional project management techniques, but want to move towards an agile development approach. They are typically engaged in project-driven work versus a software product with an unending feature backlog. They also have to contend with shared resources, such as database administrators, network specialists and architects that may not be assigned to their projects full time.
Many of these organizations are moving from traditional iterative development to a hybrid methodology that incorporates some of the best ideas from agile, but fits with their culture and needs. For instance, they will take to heart the principles in the agile manifesto and introduce practices such as daily stand-up meetings, writing story-based requirements, targeting shorter development cycles and assigning a product owner. In addition, they will modify their traditional milestone-driven development to incorporate more planning and feedback loops to react to inevitable changes in project requirements.
These hybrid agile teams may also model user stories as tasks in a project plan (although they will measure progress in story points vs. task hours). They will work with resource managers to assign shared resources (such as DBAs) to tasks on their project. And they will report back
on progress to executives using standard project management metrics such as percent complete, scheduled finish date and project health.
There are lots of benefits to a hybrid agile methodology and many enterprise software development teams are adopting this approach. Adding agile practices over time is highly recommended so teams can absorb the changes while still delivering on their commitments. For these teams, we also think it’s the best way to get to some of the end goals of the agile movement: a focus on customer satisfaction, frequent software delivery, close co-operation between business people and developers, and creating an empowered culture with motivated individuals.