During these challenging economic times there is a dramatic increase in the need of organizations to adapt the software delivery lifecycle processes to the rapid changes often imposed on them. Leadership is making the decision to transition its development organization – not than just small teams but large numbers of engineers, working on a broad portfolio of development projects from many different locations around the world — to a more agile approach as part of an effort to vastly improve performance, be more responsive to customers and improve quality. However, there are many challenges that an established software organization faces when shifting to Agile.
Let’s have a look at some major considerations that any enterprise making an Agile shift must tackle:
- Empowering self-managing teams in a distributed environment
- Measuring the benefits
- Applying Agile in a heterogeneous tooling environment
- Planning in an Agile world
- Quality in Agile – A new paradigm for QA
- Managing a successful transition
Empowering Self-Managing Teams in a Distributed Environment
As an organization begins scale its Agile efforts, teams needed a better way to collaborate, share information and manage their work. The whiteboards, corkboards, post-its and index cards used by many Agile teams are fine for those that are co-located, but they can't scale as more teams make the transition. Self-managing teams make several decisions and changes in their “plans” each day, and keeping everyone on the same page and providing cross-project visibility is becoming increasingly difficult.
An enterprise project management and execution application that supports both Agile and traditional models of development is required. As waterfall, iterative and agile projects will co-exist, they all need to be managed at the same time using the same metrics. A lightweight, easy-to-use project management tool that sits on top of traditional ALM tools can help to plan releases and sprints, manage the backlog and user stories, and collaborate with burn down charts and corkboards. It is important to support the way Agile teams work, empowering them to be more effective at their jobs while automatically giving management and executives visibility into their progress. Agile teams need a daily “workbench” where they can chart progress against the daily plan, keep updated on changes, and stay on the same page throughout the execution of the sprint, so the teams can be more efficient.
Empowering teams in such a way will also significantly reduce the time and effort teams spend communicating with customers and business stakeholders. Rather than having several conversations with a customer to update them on sprint progress, teams can involve their customers in their processes, including them in the sprint reviews which are conducted using the team boards, backlogs and burn down charts.
Measuring the Benefits
The biggest fear in going Agile is that you will lose control. But, the reality is that you never really had control in the first place. Project managers build schedules, but there is really no connection between these dates and windows and what is going on underneath. To achieve the ultimate goal of its Agile transformation – to get better at predictably delivering high-quality software – it is necessary to get visibility into processes, establish a baseline for performance and be able to measure progress.
Plenty of data is already collected from the tools the teams use. However, only by putting an infrastructure in place can teams constantly analyze current and historical data across all of the organization’s projects, and present actionable information that delivers true value. (This data can include key ALM metrics, including quality trends such as defects, code coverage, and test automation, as well as performance trends such as team velocity and schedule variance.) Capturing and exposing metadata from test automation tools and including it in meaningful ways will add another quality dimension to the metrics. Automatically collected data from the tools teams can be used to manage their work, and can help managers and executives avoid unpleasant surprises, prioritize and make quick decisions. Instead of spending two weeks working with their reports to gather status information and create PPT decks for monthly operations reviews, executives can get the relevant information at their fingertips – all the time.
Applying Agile within a Heterogeneous Tooling Environment
Most enterprises use a mix of tools and processes