Agile Methodology
Introduction
Since the start of the recession, the information technology industry has been facing unprecedented challenges caused not only by the market contraction, but also by the inefficiencies and quality issues associated with the development process. The latest Standish Chaos report mentions that nearly 68 % of IT projects either failed or are in a challenged state, ¹ which means they were either cancelled or delayed or over budget or delivered less than the promised functionality. Considering these facts, many organizations get excited about the promise that Agile methodology holds. Advocates claim that the Agile approach reduces project risk by increasing visibility into the development process and responsiveness to evolving requirements. The Agile approach also aims to deliver high quality software in less time using fewer resources compared to the traditional waterfall approach.
While these are valid claims and can be achieved by doing Agile projects right, organizations may realize that implementing Agile methodology has its own set of challenges. These challenges vary depending on the organization and the stage of Agile adoption process. Like other innovations, Agile methodology adoption also occurs in the following five stages, ² awareness, interest, evaluation, trial, and adoption.
Agile Methodology – A Quick Overview
Agile methodology is a project management approach used mainly in software development. Agile aims to handle the unpredictability of development by building software through incremental, iterative cycles. Over the years many different methodologies based on Agile principles have evolved and the most popular among these are:
Definitions:
Sprint is a two to four week period during which Agile teams deliver “potentially shippable work.”
Refactoring is improving code without changing its overall behavior.
Product backlog is a list of features and requirements for a project or product. Work in product backlog is typically expressed in the form of user stories.
User stories are product requirements expressed from the perspective of the end user.
Product owner manages the relationship between a Scrum team and the business stakeholders. The product owner facilitates the definition of the features that support the project goals.
Backlog grooming is the process for adding feature requests to or removing feature requests from the backlog. During backlog grooming the feature requests are prioritized and a target sprint is assigned.
Planning poker is a consensus-based technique