What is Agile Model

The meaning of Agile is swift or versatile.”Agile process model” refers to a software development approach based on iterative development. Agile methods break tasks into smaller iterations, or parts do not directly involve long term planning. The project scope and requirements are laid down at the beginning of the development process. Plans regarding the number of iterations, the duration and the scope of each iteration are clearly defined in advance.

Each iteration is considered as a short time “frame” in the Agile process model, which typically lasts from one to four weeks. The division of the entire project into smaller parts helps to minimize the project risk and to reduce the overall project delivery time requirements. Each iteration involves a team working through a full software development life cycle including planning, requirements analysis, design, coding, and testing before a working product is demonstrated to the client.

Main factors of Agile

Phases of Agile Model:

Following are the phases in the Agile model are as follows:

  1. Requirements gathering
  2. Design the requirements
  3. Construction/ iteration
  4. Testing/ Quality assurance
  5. Deployment
  6. Feedback

Agile Manifesto

Agile manifesto details of the value and principles of agile process

Some of the values mentioned in the agile manifesto are

Individuals and Interactions OVER Process and tools

Process and tools are important in software development which cannot be skipped however this model is more focused on the individuals and interactions

Working products OVER Comprehensive Documentation

The main goal is to achieve the output rather than putting too much effort on writing documentation like in waterfall model

Customer Collaboration OVER Contract Negotiation

A project must have contract and negotiations, however customer collaboration is also considered very important to keep them updated with the current progress

Responding to Changes OVER Following a plan

we might not have a rigid plan like in waterfall methodologies, based on scenarios changes, we may required to change our directions, and move faster.

Agile Principles

There are 12 principles in agile model that needed to be followed

  1. Customer Satisfaction

    You need to satisfy customer through early and quickly delivery of the product

  2. Welcome Change

    Changes needs to be addressed even late in the development process

  3. Deliver Frequently

    Ensure software is delivered frequently, focusing on a shorter timescale

  4. Work together

    Developers and business individuals need to work together through the course of the project

  5. Motivated Team

    Project needs to be built around motivated individuals and they must be trusted to get the job done

  6. Face to Face

    Face to face conversation is the most efficient means of communication

  7. Working Software

    Working software is the primary measure of the progress

  8. Constant pace

    The Agile process promotes sustainable development

  9. Good Design

    Agility can be improved by focusing on technical excellence and good design

  10. Simplicity

    The amount of work that’s not being done needs to be minimized. Simplicity doesn’t means less, extra processes should be minimized

  11. Self organization

    Self organized team provide the best architecture, requirements and design. Coming together, discussing and resolving together is the key factor

  12. Reflect and adjust

    Effectiveness can be improved by the team regularly effecting on it

Advantages of Agile

Agile Methodologies

  1. XP (extreme programming)
    1. It is a framework that enables teams to create high quality software and improves their quality
    2. It enables software development with appropriate engineering practices
    3. When it is applicable?
      1. Changing software requirements
      2. To handle risks caused due to new technology
      3. Work with small, extended development team
      4. To use technology to allow automated unit and functional tests
  2. Kanban
    1. The method is used to design, manage and improve the flow of the systems
    2. Organizations can visualize flow of work and limiting their work in progress
    3. When it is applicable?
      1. It can be used in situations where work is arrived in unpredictable fashion.
      2. It is also used to deploy work immediately without waiting work for other work items
  3. Lean
    1. In Lean, values are always in customer prospective.
    2. Lean is a set tools and principles that is aim to identify and remove waste to increase the process development
    3. It focus on maximizing value to client ensuring waste is minimized
    4. When it is applicable
      1. Lean’s principles apply to any sector where there’s waste of any form
  4. Scrum
    1. Scrum is a framework that is used by teams to establish a hypothesis, try it out, reflect on the experience and adjust
    2. It is used to enable teams to incorporate practices from other frameworks depending upon the team’s requirements.
    3. When it is applicable
      1. It is used when cross-functional teams are working on product development when work is split into more than one one 2-4 week interactions
  5. Crystal
    1. Crystal is a approach to software development that focuses on people and their interactions , rather than tools and processes
    2. It is aimed to streamline processes and improve optimization
    3. It works on the principle that projects are unique and dynamic. Each requiring its specific methods
    4. When it is applicable?
      1. It focuses on strengthening team communication
      2. It also focuses on continuous integration, active user involvement and configurable processes
Muhabbat Ali

© 2024 Portfolio

LinkedIn 𝕏 GitHub