How to Build a Strong Agile Product Development Process

January 01, 2018
Developing a custom software project, whether for internal use or a customer-facing app, can be an opportunity to drive significant innovation and value for your brand. But bringing a project through from ideation to completion can be a long, arduous process that doesn’t always end happily: A recent report from Innotas found that software projects have a failure rate of 50 percent.

While having a strong team in place is a big factor in beating the odds, process optimization is also crucial. It’s important to ensure that your team is aligned on goals, and the developers and product managers are working together to build a product that incorporates the key features that are achievable within the project budget -- focusing on building a Minimum Viable Product (MVP), rather than shooting for the moon and falling far short.

How can you build a flexible, highly iterative, collaborative process that will enable your team to meet its business goals on time and on budget? It starts by adopting the Agile project management framework.

From Waterfall to Agile

Waterfall, a project management framework for software development that was engineered in the 1970s, focuses on a highly phased approach to product development. Clear project milestones are laid out at the start of the engagement, and the team has a fully-fleshed image of the product they are working to build right from the start.

While this approach seems ideal in many industries, it’s fallen short when it comes to software development. Quite often, a project stakeholder won’t have a clear picture of what the product should ultimately achieve until different variables are explored. Developers will hit bugs along the way that increase the project cost, and there’s no opportunity to revamp the feature list along the way to keep the budget in check. Development teams and product management teams don’t communicate in between stages, leading to poor communication and missed expectations.

While the Waterfall framework is clearly an improvement on using no structure around the project at all, there’s a modern alternative that many companies have moved to in recent years: The Agile/scrum methodology.

Why Agile works

While companies can customize the Agile approach with their own standards, there are a set of basic principles that generally come into play, including:

Project sprints
Rather than committing to a long-term project vision, team members work in brief “sprints” with a specific outcome in mind for each session. Sprints are generally no more than a month long, but typically run for two weeks at a time. During a sprint, the product development team will work collaboratively to complete a set of features, which will have been coded, tested, and integrated into the product. At the end of the sprint, the team will demonstrate the features to the product management team, and integrate any feedback for revisions into the next sprint cycle.

Standup meetings
During the course of a sprint,  teams meet together at a set time on a daily basis, with each employee sharing what they did the previous day, what they plan to accomplish that day, and whether there are any roadblocks standing in their way. This creates a clear and transparent system of accountability, enabling team members to collaborate to solve problems while being trusted to work independently. Within the group, an individual known as the ScrumMaster facilitates the sprint meetings and provides support to the group, but doesn’t serve in a traditional management role.

User stories
Typically, in the Scrum methodology, product developers focus on the concept of “user stories” while building a product, in contrast to focusing solely on the features. This is designed around the user experience, and focuses on the different ways that a user may engage with the product. For instance, if you run a company that is developing software for online salon booking services, “book a haircut” might be one user story; “change your appointment time” is another; and “pay for your appointment with a credit card,” is yet another. Each of these features will require coding, testing, and product integration; the product development team will slate a series of user stories to be completed within each sprint session.

Frequent iterations
Unlike in Waterfall, Agile methodology doesn’t move smoothly from the start to the finish line. Instead, the project stakeholders analyze progress and problems along the way, incorporating feedback into the subsequent development cycle. This means, if a particular feature has been far more difficult to integrate than previously thought, the feature list can be revised with workarounds to allow the team to stay on budget, or if the project stakeholders identify new high-priority features, they can be incorporated in place of lower-priority features.

Overall, the Agile methodology allows for a far more transparent, collaborative approach to software development. You’ll have a strong sense of what your development team is working on at all times, and can provide useful feedback between sprints so that you’ll be able to guide the project along the way.

When choosing a software development team to partner with, make sure that you understand their project management approach, and that you’re comfortable with their philosophy. Embarking on a software development project is a big journey -- before settling in, make sure it’ll be a comfortable ride.

Download the e-book from Redtech on how you can accelerate innovation at your company.

* Creative Commons image by Dave Rosenblum
 Agile, Development, Outsourcing, QA