Agile Development Methodologies

Agile Development




Welcome to the Agile Development Methodologies Blog. We hope to write practical and educational articles about Agile project management methodologies and their real world applications.

What is Agile Development

Agile methodologies are an alternative to waterfall or traditional software development practices. Agile methodologies usually have the following characteristics in common: they are iterative, collaborative, and they are built around self organizing teams.

The Agile Manifesto

In February 2001, seventeen software developers met at the Snowbird resort in Utah to discuss lightweight development methods. They published the Manifesto for Agile Software Development:

“We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value:

Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan

That is, while there is value in the items on
the right, we value the items on the left more.”

The 10 Principles of the Agile Manifesto

The Agile Manifesto is based on ten principles[1]:

  1. Customer satisfaction by early and continuous delivery of valuable software.
  2. Welcome changing requirements, even in late development.
  3. Working software is delivered frequently (weeks rather than months).
  4. Close, daily cooperation between business people and developers.
  5. Projects are built around motivated individuals, who should be trusted.
  6. Face-to-face conversation is the best form of communication (co-location).
  7. Working software is the principal measure of progress.
  8. Sustainable development, able to maintain a constant pace.
  9. Continuous attention to technical excellence and good design.
  10. Simplicity—the art of maximizing the amount of work not done—is essential.

Agile Versus Waterfall

Agile has become the new normal, when it comes to software development lifecycles, with over 67% of organizations using some type of Agile framework [3].

Agile versus Waterfall

Agile Methodologies

Common Elements

There are many agile development methods that espouse the tenets of the Agile Manifesto. Over a series of articles we will go over the different methods and discuss their practical real world application as well as their pros and cons.

Most agile development methodologies have the following features:

 

elements of agile

List of Agile Development Methodologies

Scrum: Is a lightweight process framework for agile development, and the most widely-used one. Scrum is a  flexible team-centric process where the development team works as a unit to reach a common goal. Scrum follows the agile principles, and contains the concepts of sprint, product backlog and product owner.

Scrum is facilitated by a scrum master, who is accountable for removing impediments to the ability of the team to deliver the product goals and deliverables. The scrum master is not a traditional team lead or project manager, but acts as a buffer between the team and any distracting influences.

As displayed by the Google trends chart below, Scrum is the most popular agile development methodology in use today with Kanban coming in a far second.

 Popularity of Agile Development Methodologies

Kanban 

Kanban as applied to software development is a pull-based planning and execution method.  Rather than planning work items up front and pushing them into the work queue of a team, the team signals when they are ready for more work and pulls it into their queue.

Extreme Programming (XP)

XP is a disciplined approach to delivering high-quality software quickly and continuously. It promotes high customer involvement, rapid feedback loops, continuous testing, continuous planning, and close teamwork to deliver working software at very frequent intervals, typically every 1-3 weeks.

PRINCE2 

PRINCE2 stands for PRojects In Controlled Environments version 2. The methodology encompasses quality management, control and organization of a project with consistency and review to align with the objectives. PRINCE2 is a certification program for practitioners in the methodology who are accredited, qualified through training.

Lean Software Development 

Lean Software Development owes much of its principles and practices to the Lean Enterprise movement and the practices of companies like Toyota. Lean eliminates waste by selecting only the truly valuable features for a system, prioritizing those selected, and delivering them in small batches. It emphasizes the speed and efficiency of development workflow, and relies on rapid and reliable feedback between programmers and customers.

Crystal Clear Methods

The Crystal methodology is one of the most lightweight, adaptable approaches to software development.This Crystal family addresses the realization that each project may require a slightly tailored set of policies, practices, and processes in order to meet the project’s unique characteristics.

Dynamic Systems Development Method (DSDM)

DSDM methodology has evolved and matured to provide a comprehensive foundation for planning, managing, executing, and scaling agile and iterative software development projects. DSDM is based on nine key principles that primarily revolve around business needs/value, active user involvement, empowered teams, frequent delivery, integrated testing, and stakeholder collaboration.

Reference

[1] The Agile Manifesto 

[2] Beck, Kent; et al. (2001). “Principles behind the Agile Manifesto”. Agile Alliance.

[3] Survey: Is agile the new norm? http://techbeacon.com/survey-agile-new-norm




Leave a Reply

Your email address will not be published. Required fields are marked *