Iterate or Fail?
Agile development techniques have been more and more adopted by IT organizations trying to seek faster time-to-market and to reduce business risk thru frequent iterations & customer feedback. At least, that’s the promise, and mostly we find that it’s true.
If you are looking at moving in this direction, there are a few things to consider, in addition to embracing the manifesto. A few of the key things to consider include adopting a product management mentality, and the putting in place the correct tooling & processes for continuous development.
When using Agile development techniques, including Extreme Programming (XP), it’s best (if not required) to shift towards a product management model with dedicated product owners which can provide thought on features and guide the team towards meeting the right business goals. Although there is a self-directed team in place, the product owner needs to drive feature prioritization and also break deadlock that may exist during the process.
In making a shift, it’s possible to retrain your existing project managers or business analysts to act in a product manager/owner capacity. It’s best to keep seasoned people around that are familiar with the company’s business process, if they are open and willing to adapt to a new methodology, and we have found that most people are. Also, there is still a requirement to manage & resolve issues & risks in an agile environment, and we find project managers are excellent at this.
If an organization is attempting to drive further innovation, adopting a continuous development & deployment framework (otherwise known as continuous delivery) is also important. Even larger companies originally thought to be less innovative, including the likes of Ford & Home Depot, are starting to build native-cloud applications rapidly and iteratively. Platforms like Pivotal Cloud Foundry, a leader in this space, are at the forefront of this adoption. These types of frameworks/platforms can assist in moving ideas from concept thru production deployment in a matter of hours. Also, traditional infrastructure costs can be lowered dramatically.
With correct tooling & processes, continuous delivery can be done for the smallest of user stories & product enhancements. However, this doesn’t have to be done for the sake of doing it. The tempo for delivery should be aligned to the business value that is brought by the product enhancement, and readiness for users to consume it. (Here is a good post with more information if interested.)
Not every organization is cut out to employ agile development techniques, nor is it required. In cases where you are working with one or more external organizations as part of a software development process, leveraging Agile development techniques can be painful if not downright impossible. In these cases, it’s best to have well-documented requirements which can be traceable and where you can hold the vendor’s feet to the fire for delivery. Also, if there is little change in your organization, agile development may not add a lot of value over a traditional waterfall approach.
However, in today’s world, very few organizations can afford not to move towards leveraging agile development techniques. Competition alone mandates improving customer experience and removing waste wherever possible. Speed to market is also crucial where business stakeholders want to see rapid results from the dollars they invest in IT. As such, adopting agile development techniques is not a choice of “if”, but “when”, and making sure the correct organization roles, processes & tools are in place to maximize the benefits. So, when will your company make the move?
– Darron Olson, Principal & Founding Member