Agile model

Agile model

Introduction

Agile model is a software development approach based on iterative and incremental model. It focuses on process adaptability and customer satisfaction.

Agile means the ability to respond to change. Agile model is an iterative and incremental process that collaborates directly with the customers. This model can be adopted by both individuals or organizations. You can make changes anytime you need. Agile Methods break the big project into small incremental processes.

These process are provided in iterations. Each iteration last only one to three weeks. Each iteration involves a team working through a software development life cycles with its developmental phases. After that, a new iteration will start. The most important endeavor for developing the Agile model is to make easy and rapid project achievements.

 Agile believes that each and every project needs to be handled differently. The customer can see how their product is being built. The main problem in building the project is risk. Agile model can easily handle the risk properly. The diagram below represents the agile model.

agile model


Development phase of agile model

  • Phase 1: Requirement
  • Phase 2: Design
  • Phase 3: Development
  • Phase 4: Integration and Testing
  • Phase 5: Deployment
  • Phase 6: Review

The popular agile methods:

  • Scrum
  • Crystal
  • Dynamic Software Development Method(DSDM)
  • Feature Driven Development(FDD)
  • Lean Software Development
  • eXtreme Programming(XP)

The Agile Manifesto

A manifesto is a public declaration of policy and aims.

There are 4 key values and 12 principles of agile

The four keys are:

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

The 12 principles of agile manifesto are:

  1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
  2. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
  3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
  4. Business people and developers must work together daily throughout the project.
  5. Build projects around motivated individuals. Give them the environment and support they need, and trust them 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. The best architectures, 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.

Benefits

  • It is driven by customer description of what is required.
  • Easy to control and flexibility for developers.
  • Promotes teamwork and cross training.
  • You can save your time and money.
  • Software changes can be made during the development.
  • The best form of communication is face to face conversation.
  • It provides proper attention to technical excellence and design.
  • The product is delivered frequently after developed.

Drawbacks

  • It is high-cost model than other development methodology.
  • Useful for large projects.
  • More risk of sustainability, maintainability and extensibility.
  • Expert project members are requiring in decision making process.
  • Not analyzing the requirement properly may lead project go off track.
  • There is a lack of strength on necessary designing and documentation.
  • Insufficient documentation can lead to troubles in testing.