Agile software development -- also referred to simply as Agile
Agile is a term used to describe software development approaches that employ continual planning, learning, improvement, team collaboration, evolutionary development, and early delivery.
Agile development is a phrase used in software development to describe methodologies for incremental software development.
2. Introduction
■ Agile software development -- also referred to simply as Agile
■ Agile is a term used to describe software development approaches that
employ continual planning, learning, improvement, team collaboration,
evolutionary development, and early delivery.
■ Agile development is a phrase used in software development to
describe methodologies for incremental software development.
3. Agile Manifesto
The agile software development emphasizes on four core values.
1. Individual and team 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
4. Principles Of Agile
■ Customer Satisfaction
■ Working Software
■ Measure Of Progress
■ Late Changes AreWelcome
■ FaceTo Face Communication
■ Motivated Individuals
■ Technical Excellence
■ Simplicity
■ Self organizing
■ Regular Adoption
5. 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/review
6. Agile Methods:
Agile is an umbrella term for several methods and practices.
■ Scrum
■ Extreme Programming (XP)
■ Dynamic Software Development Method (DSDM)
■ Feature Driven Development (FDD)
■ Adaptive Software Development (ASD)
■ Behavior Driven Development (BDD)
■ Kanban
7. SCRUM
■ Scrum is a subset ofAgile. It is a lightweight process framework for agile development,
and the most widely-used one.
■ SCRUM is an agile development process focused primarily on ways to manage tasks in
team-based development conditions.
■ Scrum is adaptable, fast, flexible and effective agile framework that is designed to
deliver value to the customer throughout the development of the project.
■ The primary objective of Scrum is to satisfy the customer’s need through an environment
of transparency in communication, collective responsibility and continuous progress.
■ Scrum relies on a self-organizing, cross-functional team.
8. Phases in scrum
There are three phases in Scrum.
1. The initial phase is an outline planning phase where you establish the general objectives for
the project and design the software architecture.
2. This is followed by a series of sprint cycles, where each cycle develops an increment of the
system.
3. The project closure phase wraps up the project, completes required documentation such as
system help frames and user manuals and assesses the lessons learned from the project.
9. Extreme Programming (XP)
■ This type of methodology is used when customers are constantly changing demands or
requirements, or when they are not sure about the system's performance.
■ The XP develops software keeping customer in the target.
■ In this type of methodology, releases are based on the shorter cycles called Iterations.
■ Each iteration includes phases like coding, unit testing and system testing where at
each phase some minor or major functionality will be built in the application.
11. Dynamic Systems Development Method
■ DSDM focuses on Software projects that are characterized by tight budgets and
schedules.
■ It focuses on frequent delivery of product cycles, and development is iterative and
incremental.
■ The essential features of DSDM are that users must be actively connected, and teams
have been given the right to make decisions.
DSDM’s success is due to the philosophy :
“That any project must be aligned to clearly defined strategic goals and focus upon early
delivery of real benefits to the business.”
12. Phases of DSDM
■ Feasibility Phase: In the feasibility phase, the analysis of the technical, financial, and
workforce aspects happens.
■ Business study Phase: In this stage, the identification of business aspects of the project
takes place.
■ Functional Model Iteration: A functional prototype gets created in this stage, wherein a
model of one requirement after another is built incrementally.This functional prototype
then checked for quality as well as for the scope of improvement by technical experts and
at times by the end-users.
■ Design and Build Phase: Here in this stage software development starts products will be
created and deployed in small iterations. In each iteration: decide which functionality is to
be delivered first based on priority, design that functionality, coding it and then, deploy
the functionality.This process goes in a cycle for each iteration, and one functionality gets
delivered at the end of each iteration.
■ Implementation phase: In the previous stage, we did the deployment in small iterations,
but here the product as a whole will get operational.After this stage, the product will be
ready to get launched into the market.
13. Advantage(Pros) of Agile Method:
■ Frequent Delivery
■ Face-to-FaceCommunication with clients.
■ Efficient design and fulfils the business requirement.
■ Anytime changes are acceptable.
■ It reduces total development time.
14. Disadvantages(Cons) of Agile Model:
■ Due to the shortage of formal documents, it creates confusion and crucial decisions
taken throughout various phases can be misinterpreted at any time by different team
members.
■ Due to the lack of proper documentation, once the project completes and the
developers allotted to another project, maintenance of the finished project can
become a difficulty.
A product backlog is a list of the new features, changes to existing features, bug fixes, infrastructure changes or other activities that a team may deliver in order to achieve a specific outcome.
Each iteration of a scrum is known as Sprint
“Lightweight” means that the overhead of the process is kept as small as possible, to maximize the amount of productive time available for getting useful work done.
User requirements are expressed as scenarios or user stories.
A release planning meeting is used to create a release plan, which lays out the overall project.