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:
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.
[Should you diversify your outsourcing portfolio? Read Why One Outsourcing Provider Is Not Enough.]
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.
In addition to figuring out how to adopt Agile principles to your organization, the next challenge becomes how to make the most of the value while controlling the costs. One of the 12 Agile principles is to have teams co-located. While this is an ideal situation, it tends to drive up the cost of development. To control costs, companies are now experimenting with hybrid Agile teams distributed at onshore, nearshore, or offshore locations to get high productivity and quality while controlling costs.
Outsourcing providers have become very competent at providing distributed Agile development offerings. These are services that help unify a global workforce connected through strong delivery tools like videoconferencing. Distributed Agile development can help companies control costs, but a number of issues need to be addressed to make it work smoothly:
Team structure – While it's not required, it does help to have a couple people from the distributed team onsite to help with communication, coordination, requirements gathering, and so forth. Mindtree typically recommends that a project manager and business analyst from the onshore, nearshore, or offshore team (whichever outsourcing model is being used) remain onsite.
Culture – There needs to be some team "norming" so that the distributed teams understand the culture, work styles, and expectations.
Communication and coordination – A communication plan is required to ensure complete coordination between the teams, especially when time-zone differences are involved.
Infrastructure – To create a high level of productivity and communication, a number of infrastructure necessities should be available to the team, including videoconferencing, high-speed connectivity, web conferencing, and online meetings.
IT outsourcing (ITO) companies are continuously evolving their Agile offerings as more Agile work is outsourced to keep costs down. But not all ITO companies are the same, so pick your partner wisely -- and most importantly, carefully pick the location where the work will be done. The location of the teams is important because the foundation of mature Agile development is good communication, so teams needs to be accessible and highly responsive in order to be productive.
Agile development is not for every company, but for those that make the best use of it -- and that often means outsourcing -- the advantages of reduced time-to-market and quality can be significant.
Scott Staples is the co-founder and president, Americas, at IT consulting and services company, Mindtree. Scott brings over 24 years of experience in IT consulting and client management.
Can the trendy tech strategy of DevOps really bring peace between developers and IT operations -- and deliver faster, more reliable app creation and delivery? Also in the DevOps Challenge issue of InformationWeek: Execs charting digital business strategies can't afford to take Internet connectivity for granted.
◄ Previous article
|Back to the index of articles||Next article ►|
◄ Previous article
|Back to the index of articles||Next article ►|
All third party contents appearing here are supported with references to appropriate web sites so we don't think that we are violating anybody's copyright or even demonstrating impoliteness. In fact this is rather a promotion. In any case, if you are the owner of any content that appears on our site and find this fact undesirable, please notify.