Creating useful software is a craft. There is no black and white formula for success. Yet, there are certain Agile engineering practices that, if used thoughtfully, have shown to repeatedly add value to a business.
In this article, I’ll share 4 specific ways that your business can benefit today from Agile Engineering practices.
(If we use the basic formula of Scrum + Extreme Programming (XP) = Agile, I am referring to the XP piece of the equation when I say Agile Engineering Practices. Things like Test Driven Development, Pair Programming, & Continuous Integration.)
In a brilliantly simple blog post, James Shore claims:
"Scrum is easier and less threatening than XP(Extreme Programming), so I see a lot more people starting out with Scrum. On the downside, the teams that start with Scrum tend to struggle more than the teams that start with XP. The XP teams experience more pain starting out, but then get to a high performance state within the first year."
Yet often, a VP of Engineering or CTO will approach me and say “I want my engineering team to get better at Agile engineering practices so that we can go faster.”
I agree with James Shore that XP is a struggle at first, which in fact goes counter to the idea that Agile helps teams move faster. In fact, XP has a steep learning curve, and by it’s nature, learning takes time and learning XP is achieved by going slower than a team that isn’t doing any learning.
So, if “going faster” isn’t the true value of Agile engineering practices, then what is?
I believe that the true business value of Agile engineering practices is that they allow a company to embrace change in a way that actually becomes a competitive advantage.
Why? As we enter 2014, the argument could logically be made that all, if not most, companies are technology companies. If that’s true, then it would follow that the companies that can best leverage the process of building software are the ones that will succeed in the next decade.
It is, of course, true that there are many competitive advantages to be gained outside of software and that will remain true. For example, the hedge fund that can best leverage a mathematical formula for tomorrow’s stock predictions will have a competitive advantage. And, the retail store that can best leverage fabrics and colors to predict tomorrow’s fashion will have a competitive advantage. But, with 24/7 connectivity and global information sharing, the minute you have a truly good idea is the minute your competitors know about it. Which brings us full circle back to the idea that the companies that can best leverage the process of building software are the ones that will have the advantage over their competitors.
Let’s say that an Education company called Acme Aces is using Test Driven Development (TDD), Continuous Integration and Pair Programming.
The engineering team is working on a project that will bring grading tests on iPads to K-12 classrooms. One day, word comes down that a new Ed Tech Starup has entered the market and is offering a service that doesn’t exist in the market – Individual student grading from the iPads shared with parents.
What’s Acme Aces to do? Luckily, Acme Aces knows their code is solid, since it’s covered with Tests thanks to TDD.
And, they are also confident that no one person is off in the corner writing code that’s not integrated with the rest of the system, thanks to Continuous Integration.
Thanks to pair programming, knowledge isn’t silo’d and there’s a healthy cross functional team where every developer knows all pieces of the code base.
Acme Aces Management decides to be aggressive and aims to have their own version of the iPad grading to parents available for the new school year. With the confidence that TDD, Pair Programming and Continuous Integration bring, the team can incorporate this change quickly. The team finishes their current sprint and use the planning phase of the next sprint to reset the priorities.
Acme Aces can swiftly incorporate management’s change in plans and capitalize on the change in the market so that they have a competitive advantage.
Specifically, 4 business advantages Acme Aces has today are, they can:
1. Turn on a dime
In a matter of days, the new feature is prioritized, scoped, and moved to the top of the prioritization list and is being worked on by the team.
2. Re-allocate development team members
Those best equipped to work on the new feature can be dedicated to it. Since pair programming and collective code ownership allow team members to rotate and work on various parts of the code, the project isn’t held up by any one rock star who’s too busy on something else. The whole team can morf to the new requirements.
3. Avoid having to scrap months of work
Because the code they have completed is production ready code that’s high quality, bug free, integrated and functional.
4. Have confidence that the code already built represents the most important pieces of the project
Thanks to the fact that the engineering team has been working closely with the business side to prioritize their work every 2 weeks.
The value of Agile engineering practices has moved beyond the engineering team and is clearly beneficial for the entire business. Have questions about the best way to implement Agile engineering practices for your team? Ask any questions you have, I can help and will gladly bat around ideas over coffee or drinks.