Ayce

Blog

Agile Methodology

Waterfall Model:

Waterfall Model is a sequential model that divides software development into pre-defined phases. Each phase must be completed before the next phase can begin with no overlap between the phases. Each phase is designed for performing specific activity during the SDLC phase. 

Advantages:
  • This model is simple and easy to understand and use.
  • It is easy to manage due to the rigidity of the model – each phase has specific deliverables and a review process.
  • In this model phases are processed and completed one at a time. Phases do not overlap.
  • Waterfall model works well for smaller projects where requirements are clearly defined and very well understood.
Disadvantages
  • No working software is produced until late during the life cycle.
  • High amounts of risk and uncertainty.
  • Not a good model for complex and object-oriented projects.
  • Poor model for long and ongoing projects.

The waterfall model involves teams following a series of steps, and only going forward after the previous steps are completed.

What is Agile?

Agile is a set of principles used in project management and software development. (Agile is a set of methods and practices that focuses on iterative development.)

Evaluation of the requirements, plan, and results take place continuously. This allows teams to respond to changes quickly.

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

Principles:

Customer satisfaction working Software
Welcome change Constant Pace
Delivery Frequently Good Design
Work Together Simplicity
Motivated Team Self-organization
Face to Face Reflect and Adjust

Advantages:

  1. In Agile methodology the delivery of software is unremitting.
  2. The customers are satisfied because after every Sprint working feature of the software is delivered to them.
  3. Customers can have a look of the working feature which fulfilled their expectations.
  4. If the customer has any feedback or any change in the feature then it can be accommodated in the current release of the product.

Disadvantages: 

  1. In Agile methodology the documentation is less.
  2. Sometimes in Agile methodology the requirement is not very clear hence it’s difficult to predict the expected result.
  3. In few of the projects at the starting of the software development life cycle it’s difficult to estimate the actual effort required.
  4. It is not useful for small development projects.
 

Agile Methodologies 

Extreme Programming (XP) 

  • It is a framework that enables teams to create high-quality software and improves their quality of life.
  • It enables software development with the appropriate engineering practices.

Kanban

  • This method is used to design, manage and improve the flow of systems.
  • Organizations can visualize their flow of work and limiting their work in progress.

Lean

  • Lean is a set of tools and principles that aims to identify and remove waste to increase the speed of process development.
  • It focuses on maximizing value to the client, ensuring waste is minimized.

Scrum

  • Scrum is a framework that is used by teams to establish a hypothesis, try it out, reflect on the experience and adjust.
  • It is used to enable teams to incorporate practices from other frameworks depending on the team’s requirements.

Crystal

  • Its focus is on strengthening team communication.

What is Scrum?

Scrum is a framework that enables teams to work together.

With Scrum, teams can:

  1. Learn from experiences
  2. self organize working on problems
  3. To reflect on their Victories
  4. And their losses to improve

Scrum Framework:

What is Agile Project Management?

APM is a way by which a project can be managed by breaking it into several stages or sprints.

Principles:

  1. High Product Quality
  2. High Customer Satisfaction
  3. Reduced Risk
  4. Better and Faster ROI

What are User stories?

User stories are an agile software development/ project management tool that provides users with simple, natural language explanations of one or more features written from the end-user’s perspective.

User Stories Advantages:

  1. Delivers high quality content
  2. Eases collaboration with team members
  3. Helps understand users better
  4. Improves transparency
  5. Reduced risks
  6. Support iterative development

INVESTing in user stories

Independent – Stories should be independent of one another so that each of them can be developed and delivered separately.

Negotiable – stories should be discussable and should be open for negotiation

Valuable – Stories must ensure there’s value being added to the customers

Estimable – The stories must be estimable and can be divided into tasks.

Small – Stories shouldn’t be too big and should be complete in about 40 hours or 3 to 4 days

Testable – They should have an acceptance  criteria that can be tested to check if they fulfil the customer’s needs.

3C’s of users stories:

Card – It’s provide written description of the story.

Conversation – This represents discussion between users, team, product owners, etc.

Confirmation – These represent condition that need to be satisfied to ensure that the story.

User story Map:

  • It’s arrange user stories based on priority along the horizontal axis.
  • On the vertical axis, they’re represented based on increasing levels of sophistication.

User story map advantages:

  1. Helps with prioritizing work
  2. The focus is on user value
  3. Roadblocks are highlighted
  4. Helps with prioritizing work
  5. Ensuring team unity
  6. The focus is on user value

Frameworks

  1. Large – Scale Scrum(LeSS)
  2. Scaled Agile Framework(SAFe)
  3. Disciplined Agile(DAD)
  4. Scrum at scale
  5. Nexus Scrum
  6. Spotify model

Scaled Agile Framework(SAFe)

Software Development Life cycle:

Agile Vs Waterfall:

Life Cycle:

It’s continuous iteration life cycle model for developing and testing a software

Linear sequential life cycle model for developing and testing software

Rigidity:
Flexible way of building S/W

Structured way of S/W development

Collaboration:
Agile model is a highly collaborative approach towards S/W development, yielding a better output.

Waterfall model is least flexible and follows a sequence of steps, not allowing the team to collaborate

Process:

The entire process of development is divided into sprints

The software development process is broken down into several phases

Changes:

In the Agile approach, the changes may be made even after the initial planning is completed

In the Waterfall approach, the development requirements cannot be changed once the project development begins

We can summarize the differences between XP and Scrum as follows:

Aspects

Practices

XP

Scrum

Iteration Length

Whether to allow modification of requirements

1-2 weeks

1-2 weeks

 

Handle Changes with an Iteration

Whether the demand is strictly in accordance with the priority

It can be replaced with other requirements when a need is not implemented, but the implementation time is equal.

Scrum is not allowed to do this. Once the iteration is completed, no changes are allowed, and Scrum Master is strictly checked.

Priority of Features

Whether the demand is strictly in accordance with the priority

Yes

No need to

Engineering Practices

Whether to adopt strict engineering methods to ensure progress or quality

Very strict

Require developers to be conscious

Scrum vs. Agile:

Methodology

Agile is a set of principles that’s iterative and incremental in nature


Scrum is an implementation of the agile methodology

Leadership

Project head takes care of all tasks and is vital to the project


There’s no leader, the scrum master and the team addresses the issues. It involves cross functional, self-organizing teams

Flexibility

Changes cannot be handled frequently


It enables teams to react to changes quickly

Delivery

The methodology requires frequent delivery to the end user


With sprints, builds are delivered to clients for feedback

Collaboration

Face to face interactions take place between cross-functional teams


Daily stand-up meetings help with collaboration

Design

The design and execution is simple


The design and execution can be innovative and experimental

Scrum vs. Kanban:

Cadence
The process is divided into time constrained iterations


Event-driven, instead of timeboxed

Release Methodology
Releases take place at the end of each sprint


Releases take place in the form of continuous delivery

Changes
Changed cannot be made during the sprint


changes can be made at any time

Metric
Velocity is the default metric used in planning and process improvement


Lead time is default metric used for planning and process improvement

Teams
Cross-functional teams are a mandatory requirement


Specialist teams are required, and cross-functional teams are optional

Adding new items
Items cannot be added in between an iteration


New items can be added, if there’s capacity available

Job Roles
Has 3 major job roles:
Product Owner
Scrum master
Scrum team


specific job roles haven’t been set up

Representation
The scrum board needs to be reset after each sprint


The Kanban board stays persistent throughout the project

Project Length
It is better suited for long running projects

Kanban works better for projects that are expected to finish in a shorter period