We continue to see the adoption of Agile development methodologies by corporations both large and small in the US and EMEA. It is an approach that continues to produce significant results and in a time where quality and ROI are questionable regarding software development projects, an Agile approach has proven to be a welcome change.
You need to check out www.offshoreagile.com for more information. While you are browsing make sure you also look at our re-designed website www.starsoftlabs.com
For those of you new to Agile who have have heard that perhaps it is a passing thing or you're just not sure the content below is from our site and helps provide a better understanding so please read it, pass it along to colleagues and certainly let us know if we can answer any questions.
Dispelling the Myths
Agile development is not a silver bullet, nor is it equally suitable for every organization and project. However, it is a viable paradigm which is forcing the industry to re-think traditional approaches to software development and learn new ideas and techniques. As Agile development is gaining more recognition and mindshare, and more companies are making the transition, it becomes increasingly important to address the common misconception that hinder its adoption and prevent companies from achieving its benefits.
“Agile Development is Undisciplined”
A lot of managers think Agile means, “We've got a bunch of people running around not documenting anything and not doing any planning”. Skeptics fear that an agile approach is nothing more than an excuse for developers to avoid documentation, while requiring heroic efforts on the part of a few developers who hack together a compromised solution without clear guidance, control, or governance. Anyone who has seen an experienced Agile team in action knows this to be very untrue. Agile practices such as pair programming, test-driven development, refactoring, continuous integration not only are demanding of the individual but also require a shared commitment on the part of the entire team. In fact, continuous delivery of working software every few weeks or days quite possibly is the ultimate discipline for the software industry.
“Agile Teams Do Not Plan”
This myth stems from a lack of understanding of Agile’s incremental approach to planning. Most Agile teams spend as much time planning their projects as do non-agile teams – or more. However, this planning effort is spread throughout an entire project, rather than being compressed into a separate phase in the beginning. Detailed project plans created up front often quickly fall out of sync with the realities of a project, and significant effort is spent reconciling the original plans to these current realities. The Agile approach accepts this volatility and replaces detailed, up-front planning with continual, incremental planning (release level, iteration level, and daily task / individual team member level planning). This approach enables the team to efficiently adapt to change and incrementally optimize their plans as new information becomes available. Also, as teams begin to learn what they can deliver on a daily, weekly, and monthly basis, they get more accurate with longer-range planning.
“Agile Development is Unpredictable”
This misconception is based on the fact Agile teams rarely use Microsoft Project or Gantt charts. Agile methodologies are fundamentally different in their approach to forecasting. Instead of detailed, up-front, speculative plans with high-level, they use feature-driven plans that acknowledge the inherent uncertainty of software development projects. Because of the rapid, iterative nature of Agile development, teams are able to quickly accumulate valuable historical data to support and validate their short- and long-term plans. By replacing prediction and speculation with historical facts, teams are able to forecast with much greater accuracy what they will be able to deliver over time. Agile teams are constantly planning, estimating, prioritizing, and delivering against the plan. As a result, a team’s ability to produce reliable forecasts increases, providing all stakeholders with clear visibility into the development process and, as a result, a much higher degree of predictability.
Agile use simple concepts such as velocity and burndown charts for forecasting. The chart above reflects the velocity, the amount of work remaining as of each day during an iteration, and the overall change in scope of the work within the iteration. By looking at this chart, anyone can instantly see if the team is on track and will be able to complete the desired scope by the end of the iteration. The team can use this information to adjust their current activities, as well as to calibrate the planning process for the next iterations.
“Agile Development Does Not Scale”
While it is true that Agile development generally recommends smaller projects, shorter delivery time frames, and smaller teams, this does not mean Agile is not suitable for large development efforts. Agile methods simply promote taking large projects and breaking them down into a coordinated series of smaller projects staffed by smaller, cross-functional teams. At the same time, some Agile methods (especially Scrum) support linear scalability and can be used by large teams. StarSoft has experience with Agile projects that involve teams of 60+ people and hundreds of man-years of effort, and are distributed across several locations and time zones. Clearly, a large Agile projects will face very real challenges in terms of communication, integration, architectural design and standards, and decision making among the teams, but these challenges can be and have been successfully solved before.
“Agile Is Not For Real … It’s Just a Fad”
Is Agile development “all sizzle and no steak” as the critics claim? Very simply, it’s not. According to a recent report by Forrester Research, Agile development processes are already in use in 14% of North American and European enterprises, and another 19% of enterprises either are interested in adopting Agile or already are planning to do so. Agile development has been adopted and successfully used by many of the world’s leading technology companies, including Microsoft, Sun, IBM, Siemens, Symantec, Yahoo, Google, and many others. Other companies and organizations that use Agile include Federal Reserve Bank, Allstate Insurance, BT, Capital One, and Fannie Mae.
Enterprise IT organizations are finding that turning to Agile processes they can reduce time to market, improve quality, and strengthen their alignment with business stakeholders. These are not characteristics of a fad, but rather business criteria based on real life business results.