A sigh of relief for software developers

From handling complexities to delivering output on time, Agile Methodology has become a positive cause of relief in the life of software developers.

But what is agile?

Cambridge Book of Dictionary defines Agile as:

Agile

UK  /ˈædʒ.aɪl/ US  /ˈædʒ.əl/

adjective (MANAGEMENT)

used for describing ways of planning and doing work in which it is understood that making changes as they are needed is an important part of the job

 

And what is AGILE METHODOLOGY?

Agile methodology is neither a set of rules nor of guidelines but it is a set of principles that one should follow and practice in order to deliver the desired result efficiently. It helps to govern a team in a manner that lives up to the expectations of its clients as it encourages flexibility, adaptability, communication and continuous supervision on the ongoing work. 

History

In the 1990s, 17 software developers started working on developing a lightweight model which in future can help them solve generic complexities faced by them regularly. Eventually, in 2001, those 17 developers met again in a resort in Utah, U.S and finalised the Agile Development Methods by publishing Agile Manifesto. Those seventeen developers were: Kent Beck, Ward Cunningham, Dave Thomas, Jeff Sutherland, Ken Schwaber, Jim Highsmith, Alistair Cockburn, Robert C. Martin, Mike Beedle, Arie van Bennekum, Martin Fowler, James Grenning, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, and Steve Mellor. 

AGILE MANIFESTO 

 

12 Principles

  • Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.

  • Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.

  • Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.

  • Business people and developers must work together daily throughout the project.

  • Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.

  • The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.

  • Working software is the primary measure of progress.

  • Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.

  • Continuous attention to technical excellence and good design enhances agility.

  • Simplicity–the art of maximizing the amount of work not done–is essential.

  • The best architectures, requirements, and designs emerge from self-organizing teams.

  • At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

 

4 Core 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

How does Agile work?

agile methodology

Various Methods to perform Agile Testing/Methodology

  • Scrum

Scrum is inspired by rugby match and therefore, the tasks and the team is handled in the same way. It delves on how to manage tasks in accordance with the team-based development environment and highly recommends that a team must include 7-9 people only. The whole team consists of three major roles: Product Owner, Scrum Master and Development Team.

   

  • Crystal Methodologies

Further based on three concepts:

Chartering: This phase is involved in creating a development team, strategizing an initial plan and establishing a feasible development methodology.

Cyclic Delivery: Consists of two-three delivery cycles where the team performs, refines and adapts the released plan.

Wrap up: This stage involves deployment of the model into the user- environment, collecting reviews and analysis feedback for your reports. 

 

 

  • Dynamic Software Development Method (DSDM)

Works on RAD (Rapid Application Development) where both the user and the developing team stay highly active. Also, the developing team is enabled with the power to take decisions to boost up the delivery process. The techniques followed are Time Boxing, MoSCow Rules and Prototyping. 

 

  • Feature Driven Development (FDD)

Like the name itself suggests, the team pays high attention to each and every feature and specifies a time for every domain. A short phase is devoted to every domain where the team achieves the results by following targets: domain object modeling, development by feature, class ownership, feature teams, inspection, configuration management, regular builds and visibility of progress and results. 

 

  • Lean Software Development

Based on the principle “just in time production” where the emphasis is giving on speeding the process and minimising the cost alongside. The process evolves around seven steps: eliminating waste, amplifying learning, leaving decisions for the last stage, early delivery, empowering the team, building integrity and optimizing the whole. 

 

  • Extreme Programming

This technique best suits the user or the product owner as this technique releases product model at every checkpoint where the user provides its feedback and the system is designed in a manner where the changes can be implemented easily. The shorter cycles in this process system are called iteration and run on a 14days cycle followed by the following phases: planning, analysis, designing, execution, wrapping and closure. 

 

  • Kanban

It originates from a Japanese word that means cards that contain all the information. This type of method primarily provides all the necessary information related to the product. This type of technique is best suited for the software testing models made using agile testing.