by Iain Ingram
When we look at traditional project management we are often reminded of the constraints of the “Iron Triangle”.
Traditional approach: Fixed scope = no room for error
Traditional project management is focused on a fixed scope and plan, and cost and time are estimated. We’ve all seen projects run over budget, and this is a result of the Iron Triangle being fixed on scope. The other two legs, resources and time, are then more variable and can increase estimated budgets. Because of a natural aversion to the risk of going over on time and cost, quality of the final product can suffer.
Traditional project management does not allow for any flexibility in software development. It’s a linear process, where requirements are specified at the beginning of a project and the evaluation of results occurs at the end. All efforts point towards one end goal: fulfilling the scope. The project is essentially passed from the client to the project manager and their team, and then back to the client.
As software development has evolved, so has project management. While traditional project management might work for some industries, it has proven to be less effective for software development. A better way to collaborate with customers and respond to changing needs was required. Out of this, Agile was born.
Agile approach: Managing fixed time and costs through sprints
Agile project management still focuses on the software that needs to be delivered, but on high level requirements that are regularly groomed and refined as the project moves along. An Agile approach allows the development team to fix the time commitment and make the scope variable. It also enables projects to incorporate customer feedback and update project scopes, including adding fixes and features. Agile also gives teams the opportunity to fix any bugs before deployment. We have all seen test phases added to project plans, yet very few show the bug fix phase.
The key focuses for Agile projects are producing a minimum viable product (MVP), and continuous integration, building up to a complete solution instead of operating within a fixed scope. An MVP has just enough features to test and evaluate during development. The overall project is broken down into smaller phases called sprints where solutions are iterated upon, released, and adjusted. Then once they are approved, they are deployed to the next phase of development. In each sprint, the MVP is improved upon and undergoes testing for features, integration, and security. Every sprint has an evaluation phase, and results are delivered continuously throughout the project. This allows for flexibility for teams to collaborate with customers (or stakeholders) as the solution is being developed, before significant time and costs are sunk into features that may not work or be deemed unnecessary. After several sprints, the solution is ready for deployment.
Because both cost and time are fixed, development teams deliver value at a known cadence. The delivery cycle allows clients greater transparency into what in progress and when the software will be ready for deployment. A non-linear project progression allows for the adaptation of a plan instead of abandoning it all together if it is not part of the original scope. Agile allows clients to end up with a solution that is closer to what they need because they are more involved in the development process. By breaking down the fixed time and resources into sprints, both can be managed as the estimated scope (or features) of the project are built out.
At Vertical Motion, we follow the Agile project management method because it allows us to work closely with our clients to analyze their business needs and create the best solutions to fulfill them. Do you have plans for a new software development project? Contact us today to get started!