The first Agile principle dictates that early and continuous software delivery breeds customer satisfaction, while principle No. 7 states that working software is the primary measure of progress.
Payfone SVP of Technology Greg Bonin said he relies heavily on these directives as his team works to eliminate fraud associated with logging onto a mobile device or desktop. The framework touches on topics ranging from minimizing work to the benefit of face-to-face communication. The methods as outlined in the Manifesto for Agile Software Development include the following:
12 Agile Principles for Software Development
- Customer satisfaction by early and continuous delivery of valuable software
- Welcome changing requirements, even in late development
- Deliver working software frequently (weeks rather than months)
- Close, daily cooperation between business people and developers
- Projects are built around motivated individuals, who should be trusted
- Face-to-face conversation is the best form of communication (co-location)
- Working software is the primary measure of progress
- Sustainable development, able to maintain a constant pace
- Continuous attention to technical excellence and good design
- Simplicity (the art of maximizing the amount of work not done) is essential
- Best architectures, requirements and designs emerge from self-organizing teams
- Regularly, the team reflects on how to become more effective and adjusts accordingly
Bonin relies less on the idea that changing requirements, even late in the development process, is beneficial –– otherwise known as the second Agile principle. Instead, he emphasizes working toward a foundation of consistency.
The Agile Manifesto lists 12 agile principles. That’s a lot. Of these 12, which ones are most important to your team and why?
The most important Agile principles to me are No. 1 and No. 7. Having a constant focus on what functionality of yours the client is using is totally critical to avoid wasted effort. Often, although your software may have 20 different features, only one or two of them is critical to your clients’ success. This is especially true for Payfone’s business.
Principle No. 7 is closely tied to this objective, as moving from working state from working state in your software allows you to clearly understand what impacts your feature development will have on your clients and allow for rapid improvement of the most critical features.
Once requirements and priorities are set for a particular sprint, we try our hardest not to change them.’’
Which Agile principles does your team ignore, and why?
Although I agree in concept with principle No. 2, it can often be used as an excuse for not making clear decisions. Mistakes happen and requirements are wrong. But we always strive to be as precise as possible on the first go-around. Once requirements and priorities are set for a particular sprint, we try our hardest not to change them. This gives the team consistency and prevents scope creep. It also allows us to hold each other accountable for completing our commitments.
To me, the key benefit of Agile is being able to commit to a certain small set of enhancements for a short time period of time while maintaining the flexibility to change priorities between sprints.