Skip to content

Agile Methodology

Initial days waterfall was standard. But following the waterfall method for software development would often lead to late delivery of projects, and sometimes it is still incomplete. Sometimes wrong product with wrong features was delivered. Till the time the product is ready to launch, many things get changed and the product gets outdated and becomes irrelevant to the market.

So, in 2001 Mike Beedle, Jeff Sutherland, Ken Schwaber, Robert C. Martin, and many others came up with an idea to deliver and develop the software in small increments fulfilling the requirements in a short period, delivering more value, learning from them and keep going. Developing and sustaining these complex products, resulted in a new method called Agile Methodology which the group mentioned in a “Manifesto for Agile Software Development”. This manifesto became the foundation for modern project development.

Definition

The Agile methodology is a way to manage a project by breaking it up into several stages. It involves constant collaboration with stakeholders and continuous improvement at every stage. Once the work begins, teams cycle through a process of planning, executing, evaluating, reviewing, launching, and again planning through iteration till the final product is released. The product delivered in its early stage is called a Minimal Viable Product( MVP) is available to the market for feedback, which is necessary for further development. Thus, improvement and changes occurring in smaller chunks increase productivity, reality check, learning curve, and a better product.

Agile Method

The agile method thus saved developers from unnecessary and irrelevant tasks. But how to keep track of it? How frequently you can allow changes during development?

The manifesto engraves four values that cater to such biases. The manifesto explains these values further with the help of twelve principles.

Agile’s Values

The Manifesto for Agile Software Development based their new methodology on these four values :

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

Agile’s Principles

Thus, based on values, agile manifesto further explained the method using following twelve principles:

  1. Customer satisfaction by early and continuous delivery of valuable software.
  2. Welcome changing requirements, even in late development.
  3. Deliver working software frequently (weeks rather than months)
  4. Daily cooperation between business people and developers
  5. Projects are built around motivated individuals, who should be trusted to get the job done.
  6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
  7. Working software is the primary measure of progress.
  8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
  9. Continuous attention to technical excellence and good design enhances agility.
  10. Simplicity—the art of maximizing the amount of work not done—is essential.
  11. Best architecture, requirements, and designs emerge from self-organizing teams.
  12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

Advantages of Agile Methodology

  • Client-focused - It is a client-focused process. It makes sure that the client is continuously involved during every stage.
  • Quality-focused - Since the development occurs in small chunks, thus ensures the quality of the development is maintained.
  • Team-focused - Agile teams are extremely motivated and self-organized, so it is likely to provide a better result from the development projects.
  • Adaptable to changes - The process is completely based on incremental progress. Therefore, the client and team know exactly what is complete and what is not. This reduces risk in the further development process.
  • Minimal Viable Product in a short frame of time - Adoption of agile method delivers MVP(Minimal Viable Product) for the customers to use. After feedback and according to the changes required, features of the product are enhanced.

Limitations of Agile Methodology

  • It is not useful method for small development projects.

  • Cost of implementing an agile method is little more compared to other development methodologies.

Agile Methodologies Frameworks

Abiding by agile values and principles, the methodology is further divided into many frameworks suiting the requirements of software development and they are:

  • Scrum
  • Kanban
  • Lean
  • Crystal
  • Extreme Programming (XP)
  • Adaptive Project Framework (APF)
  • Feature Driven Development(FDD)
  • Dynamic Systems Development Method(DSDM)
  • Agile Unified Process(AUP)
  • Scaled Agile Framework(SAFe)
  • and many more.

We will be discussing about Scrum framework only. Since they all are based on same principles, understanding one framework will help others to grasp easily.

Let’s get started, then!