Agile
❑Extreme Programming (XP)
❑Scrum
S K Goel VESIT
Software Development Methodologies:
Waterfall Model
The waterfall model is a relatively linear sequential design approach for
certain areas of engineering design. In software development, it tends to
be among the less iterative and flexible approaches, as progress flows in
largely one direction ("downwards" like a waterfall) through the phases of
conception, initiation, analysis, design, construction, testing, deployment
and maintenance.
This is a traditional way of software development.
S K Goel VESIT
Problems with Waterfall Model:
S K Goel VESIT
Software Development Methodologies:
What is Agile?
Agile is an iterative approach to software development under which
requirements and solutions evolve through the collaborative effortof self-
organizing cross-functional teams and their customer(s).
It advocates adaptive planning, evolutionary development, early delivery,
and continuous improvement, and it encourages rapid and flexible
response to change.”
S K Goel VESIT
Why Agile:
•Faster Time to Market
•Early Delivery of Customer Value
•Early and Frequent Testing
•Transparency and Visibility
•Early Risk Identification and Mitigation
•Improves Return on Investment
•Accommodates change easily
•Early and Regular Process Improvement
•Breaks complex projects into smaller logical chunks
S K Goel VESIT
History of Agile:
In 2001, seventeen software developers met at a resort inSnowbird,Utahto
discuss these lightweight development methods, including among others.
Together they published the Agile manifesto (http://agilemanifesto.org).
Agile Manifesto:
We are uncovering better ways of developing software by doing it and
helping others do it. Through this work we have come to value:
•Individuals and interactions overprocesses and tools
•Working software over comprehensive documentation
•Customer collaboration overcontract negotiation
•Responding to change overfollowing a plan
That is, while there is value in the items on the right, we value the items on
the left more.
S K Goel VESIT
Agility
Important in Agility
S K Goel VESIT
Agility and cost of change
S K Goel VESIT
What is an Agile Process
An agile SW process is characterized in a manner that addresses a number of key
assumptions
1.It is difficult to predict the priorities of a customer and also which sw requirement
persist and which will change.
2.2.For many types of sw , design and construction are interleaved
3.Analysis, design , construction and testing are not as predictable
How do we create a process that can manage unpredictability?
Ans: Process of Adaptability……
But Continuous Adaption without forward progress accomplishes a little….Hence
Agile Process model must adapt Incrementally, to accomplish incremental adoption
continuous feedback of customer is required , for this operational prototype is
required ,
S K Goel VESIT
Principles of Agile:
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.
S K Goel VESIT
Various Agile Methods in Market:
•Scrum –Widely used
•Kanban –JIT –Reduce
Waste
•Extreme Programming (XP)
•Pair Programming
•Feature Driven Development
•Crystal
•Dynamic Systems
Development Method
•Agile Unified Process
S K Goel VESIT
Human Factors in Agile Development
Competence-Swrelated skills, Knowledge of process
Common Focus-deliver a working swIncrement to customer within time
promised
Collaboration-Among team members and other stakeholders
Decision making ability-Team is given Autonomy
Fuzzy Problem Solving ability-Today problem may not be tomorrow (but
Lesson learn may be benefit to the team later)
Mutual Trust And Respect
Self Organization-a. for the work itself b. process with best fit in the
environment c. work schedule
S K Goel VESIT
Agile Process models
13
14
Extreme Programming
(XP)
▪XP uses an object oriented approach.
▪XP has 4 framework activities:-Planning,
Design, Coding and testing.
➢XP Planning
Begins with the creation of user stories
Agile team assesses each story and assigns a
cost
Stories are grouped to for a deliverable increment
A commitmentis made on delivery date
After the first increment project velocityis used to
help define subsequent delivery dates for other
increments
15
16
➢XP Design
Follows the KIS principle
Encourage the use of CRC cards
For difficult design problems, suggests the creation of spike
solutions—a design prototype
Encourages refactoring —an iterative refinement of the internal
program design
➢XP Coding
Recommends the construction of a unit testfor a store before
coding commences
Encourages pair programming
➢XP Testing
All unit tests are executed daily
Acceptance testsare defined by the customer and executed to
assess customer visible functionality
Example:
Develop a Product –Generic
Steps Involved.
1.Identify What do you need in a product.
2.How to build the product
3.Gather a team and required resources
4.Team Works on Building a prototype
5.Test the product that is developed
6.Build the complete Product
S K Goel VESIT
Video: Scrum
https://www.youtube.com/watch?v=2Vt7Ik8Ublw
https://www.youtube.com/watch?v=iJ_sl6J8PRg
S K Goel VESIT
Scrum:
• Scrum: Iterative and incremental Agile software development
framework for managing software projects and product or application
development.
• Sprint: Time-boxed iteration during which a potentially releasable
product Increment is created.
• Design, Build and Test activities are performed within the Sprint.
• Sprint Duration:
Can be between 2-4 weeks; typically it is 4 weeks.
• Optimal SCRUM team size is 7-10 empowered and self-organizing
members.
S K Goel VESIT
Scrum Rules:
S K Goel VESIT
S K Goel VESIT
S K Goel VESIT
S K Goel VESIT
Scrum Roles:
Scrum Master:
•Facilitating (not participating in) the daily stand-up
•Setting up retrospectives, sprint reviews or sprint planning sessions
•Removing obstacles that affect the team
•Walking the product owner through more technical user stories
•Encouraging collaboration between the Scrum team and product owner
Product Owner
•Contributes to Product vision and managing Product backlog.
•Define the features of the product.
•Decide on release date and content.
•Be responsible for the profitability of the product.
•Prioritize features according to market value .
Team –Co-located, Size should be 7 to 9 members
•Cross-functional:
•Programmers, testers, user experience designers, Leads etc.
•Teams are self-organizing
S K Goel VESIT
Scrum Ceremonies:
Sprint Planning:
A Sprint begins with a Sprint planning meeting and ends with a Sprint
Review and Retrospective meetings.
Daily Stand Up: A Huddle. A short organizational meeting that is held each
day.Limited to 15 minutes long, and is referred to as a stand-up, or a daily
scrum. Each team member has to answer the following three questions:
1) What did you do yesterday?
2) What will you do today?
3) Are there any impediments in your way? ( Impediment Log)
•Not for Problem Solving
Sprint Review: A meeting with project Stakeholders to demonstrate the
completed solution capabilities from that Sprint
Sprint Retrospective: A meeting with the Project Team to reflect on the
experiences of the Sprint
S K Goel VESIT
S K Goel VESIT
S K Goel VESIT
S K Goel VESIT
S K Goel VESIT
S K Goel VESIT
S K Goel VESIT
S K Goel VESIT
S K Goel VESIT
S K Goel VESIT
S K Goel VESIT
S K Goel VESIT
S K Goel VESIT
S K Goel VESIT
Scrum Lifecycle:
S K Goel VESIT
S K Goel VESIT
S K Goel VESIT
Terms used in Agile:
Product Backlog: List of user stories(features) that product should have. It includes Epic, Stories,
Bug and Non Functional Requirements along with the priority. It has requirements of what that is
going be build , sorted by importance.
Sprit Backlog – Is a Subset of Product backlog and has stories prioritised for the sprint.
Epic : Features at a high level
User Story: A granular requirement of a feature.
e.g.As an internet banking customer I wantto see a rolling balance for my everyday accounts so
that I know the balance of my account after each transaction is applied
Rule - INVEST - Independent ,Negotiable, Valuable, Estimable, Small, Testable.
Priority - MoSCoW(Must Have, Should Have, Could Have, Won’t have)
Acceptance criteria: Are a set of statements, each with a clear pass/fail result, that specify both
functional and non-functional requirements, and are applicable at the Epic, and Story Level
•The rolling balance is calculated for each transaction
Definition of Done
In order to be able to decide when an activity from the Sprint Backlog is completed, the
Definition of Done (DoD) is used. It is a comprehensive checklist of necessary activities that ensure
that only truly done features are delivered, not only in terms of functionality but in terms of quality
as well.
S K Goel VESIT
Estimations in Scrum.
Story Point:
Story points are used to express the size of user story. = Effort X Complexity X Uncertainty
Numbers from Fibonacci sequence is used to represent story points
•It’s a relative estimation based on individual's gut feel
•Story Points does not have any ‘unit’
•Planning poker is a popular method used for estimating
A. Each team member
•Reads the user story
•Privately picks up a poker card
•All members display card at once
B. There will be variation in estimates !
C. If the estimations are close; team quickly discuss and agree upon a value
D. If the variation is too wide then rationale for lowest and highest estimate are discussed
E. Team repeats step A
S K Goel VESIT
Scrum Metrices:
Team Velocity:
Amount of work completed by team in last completed sprint. I.e. Sum of
story points delivered in the recent sprint.
Burn down chart is a graphical representation of work left to do versus time.
The outstanding work (or backlog) is often on the vertical axis, with time
along the horizontal. That is, it is a run chart of outstanding work. It is useful
for predicting when all of the work will be completed.
Burn up chart:
This is used to track progress of the release, Amount of work completed so
far in the release.
S K Goel VESIT
Tools Used widely in industry for Agile Projects
Jira by Atlassian –Can create sprint boards, Manage Product backlog etc.
Trello by Atlassian –Used primarily for Kanban boards
Asana –Agile Project Management tool
Version One –By Agile Enterprises
Mingle –ThoughtWorksInc
S K Goel VESIT
Review :
Video: Scrum
https://www.youtube.com/watch?v=2Vt7Ik8Ublw
https://www.youtube.com/watch?v=iJ_sl6J8PRg
S K Goel VESIT