What is agile?
Agile is a project management methodology that uses short development cycles called “sprints” to focus on continuous improvement in the development of a product or service.
Although incremental software development methods go as far back as 1957, agile was first discussed in depth in the 1970s by William Royce who published a paper on the development of large software systems. Later in 2001, the Agile Manifesto, a “formal proclamation of four key values and 12 principles to guide an iterative and people-centric approach to software development,” was published by 17 software developers. These developers gathered together to discuss lightweight development methods based on their combined experience.
The principles of agile
There are 12 key principles that still guide agile project management today.
- Customer satisfaction is always the highest priority and is achieved through rapid and continuous delivery.
- Changing environments are embraced at any stage of the process to provide the customer with a competitive advantage.
- A product or service is delivered with higher frequency.
- Stakeholders and developers collaborate closely on a daily basis.
- All stakeholders and team members remain motivated for optimal project outcomes, while teams are provided with all the necessary tools and support, and are trusted to accomplish project goals.
- Face-to-face meetings are deemed the most efficient and effective format for project success.
- A final working product is the ultimate measure of success.
- Sustainable development is accomplished through agile processes whereby development teams and stakeholders are able to maintain a constant and ongoing pace.
- Agility is enhanced through a continuous focus on technical excellence and proper design.
- Simplicity is an essential element.
- Self-organizing teams are most likely to develop the best architectures and designs and to meet requirements.
- Regular intervals are used by teams to improve efficiency through fine-tuning behaviors.
Agile methodology adoption
Although designed originally for the software industry, many industries now use agile when developing products and services because of the highly collaborative and more efficient nature of the methodology. The following table shows adoption rates of the agile methodology in a variety of leading industries, as shown in the 11th Annual State of Agile survey by Version One.
|Industry||Agile adoption rate|
|Software (ISV)||23 percent|
|Financial services||14 percent|
|Professional services||12 percent|
The benefits of agile
Agile was originally developed for the software industry to streamline and improve the development process in an effort to rapidly identify and adjust for issues and defects. It provides a way for developers and teams to deliver a better product, in a faster manner, through short, iterative, interactive sessions/sprints. In the era of digital transformation, with many companies migrating to a digital workplace, agile is a perfect fit for organizations looking to transform how they manage projects and operate as a whole. Agile can help ensure company-wide process and methodological alignment. In terms of business benefits, both the digital workplace and agile provide:
- Increased flexibility
- Increased productivity
- Increased transparency
- Higher quality deliverables
- Decreased risk of missed objectives
- Increased stakeholder engagement and satisfaction
Advantages of agile for project management
In the project management field, agile provides project teams, sponsors, project leaders and customers many project-specific benefits, including:
- More rapid deployment of solutions
- Reduced waste through minimization of resources
- Increased flexibility and adaptability to change
- Increased success through more focused efforts
- Faster turnaround times
- Faster detection of issues and defects
- Optimized development processes
- A lighter weight framework
- Optimal project control
- Increased focus on specific customer needs
- Increased frequency of collaboration and feedback
The drawbacks of agile
As with any other methodology, agile is not well-suited for every project, and sufficient due diligence is always recommended to identify the best methodology for each unique situation. Agile may not work as intended if a customer is not clear on goals, the project manager or team is inexperienced, or if they do not function well under significant pressure. Throughout the development process, agile favors the developers, project teams and customer goals, but not necessarily the end user’s experience. Due to its less formal and more flexible processes, agile may not always be easily absorbed within larger more traditional organizations where there are significant amounts of rigidity or flexibility within processes, policies, or teams. It may also face problems being used with customers who similarly have rigid processes or operating methods.
Popular agile methodologies
Within agile there are some frequently used or popular methods, with Scrum, Kanban, and Lean being the most popular. Some agile methods include:
- Lean (LN)
- Dynamic System Development Model, (DSDM)
- Extreme Programming (XP)
- Adaptive software development (ASD)
- Agile Unified Process (AUP)
- Crystal Clear methods
- Disciplined agile delivery
- Feature-driven development (FDD)
- RAD(Rapid Application Development)
Agile project management and Scrum
Scrum is a powerful framework for implementing agile processes in software development and other projects. This highly adopted framework utilizes short iterations of work, called sprints, and daily meetings, called scrums, to tackle discrete portions of a project in succession until the project as a whole is complete. There are three key roles within Scrum: the Scrum master, product owner, and Scrum team members:
- The product owner creates and prioritizes a product backlog (work to be done).
- Teams select items from the backlog and determine how to complete the work.
- Work must be completed within a sprint (usually two to four weeks).
- The Scrum master meets with teams briefly each day to get progress updates.
- Sprint reviews are conducted at the end of each sprint.
- The process starts again until all work or backlog is complete.