You can’t manage an agile software project the way you manage traditional software projects, otherwise your project will be agile in name only. You can adopt some of the language of agile development, and even some of the techniques, without being agile in common sense of the word: quick, adaptable, resourceful, etc.
Management techniques from other industries, such as construction, don’t work well for software projects. You’ve probably heard worn-out metaphors comparing constructing software to constructing a building. “You can’t build a skyscraper the same way you build a dog house, and you can’t build a large software project the way you build a small one.” While that’s true, building a large software project is not like building a doghouse or a skyscraper.
When some aspect of physical construction becomes repetitive, we get better at estimating how long it will take. When some aspect of software development becomes repetitive, we automate it and start working at a new level of abstraction. Software development innovates rapidly, keeping us from ever gaining enough experience to make it highly predictable.
Planning an agile software project may seem more difficult because you have to come to grips with uncertainty. However, that uncertainty was there all along. Agile methods just make the existing uncertainty easier to see. By acknowledging and adjusting to the uncertainty surrounding a software project, agile methods actually reduce the overall uncertainty and make better forecasts.
We can help you understand and mitigate the uncertainty in your software projects. We bring a combination of experience in agile software development leadership and experience in using mathematical tools for making the best decisions in the face of uncertainty.
To find out how we can help your software projects succeed, please call or email to discuss your project.