Agile software development has made its way into complex enterprise environments, but keeping the process in-house may be too expensive.
Agile development has been around for a long time, but it has become hot only in recent years. Early adopters of this incremental, rapid software development method have seen the competitive advantages Agile can bring through faster time-to-market and better products.
But, these early adopters had an advantage over most traditional companies that made implementing Agile much easier for them. Most were high-tech product companies, e-commerce properties, and ISVs, companies that typically do not have legacy environments, older technologies to deal with, or a need to set corporate cultures. They could set up Agile teams without the constraints that most enterprises face. As more traditional businesses embrace Agile development, new challenges will emerge, including:
How to set up an Agile team structure and environment that will work for your company
How to get the most value out of Agile development while controlling costs
The first step to successful Agile delivery for newbies is to understand that Agile adoption is a long process and a cookie-cutter approach typically fails; what works for one company may not work for yours.
Because Agile development involves a great deal of change, management conflicts can arise, so a big-bang approach is not recommended. At Mindtree, we advise new entrants into Agile development to follow a maturity roadmap with the following stages.
Step One: Improvising – Test out a minimum set of Agile practices in a few areas to get your feet wet. You don't need to set up full Agile pods and state-of-the-art tools. What is important is that you get business and IT working together to define business objectives and scope. The ultimate goal is to create a backlog of work to be delivered in an Agile fashion. You can try some sprints to see how it goes and what gaps exist.
Step Two: Practicing – Implement a larger subset of Agile engineering practices in a few areas. The goal here is to release high-quality software in a rapid manner, but you don't have to be operating in pure Agile mode, meaning your sprints can be monthly instead of every two weeks. What's most important is to establish good testing processes, as you can't move to the next level without building effective testing into the Agile process.
Step Three: Streamline – Become really good at Agile in a few areas, and to make this happen you will need your infrastructure plans, communication plans, and processes all in place. This will enable you to move quickly with high-quality output.
Step Four: Governance – Bring a governance model to measure success, compliance, and improvement.
Step Five: Expand – Spread Agile across other areas in your organization and bring tools (e.g., Agile Lifecycle Management), testing accelerators, and quantitative techniques to achieve overall maturity. The most important aspect of this phase is making sure corporate culture is aligned to becoming a mature Agile software development shop. You will need Agile coaches to teach others as you expand the offering internally, and you will need a vision to support what Agile means for your organization, so that everyone is on the same page.
The rate at which your organization moves up the Agile maturity roadmap depends on a number of factors, including organizational readiness, the ability to manage change, the technology areas being considered, the involvement of your business users, your infrastructure, and the quality of the IT services partners you choose.