Agile Software
Agile Software
Discuss and Decide the suitability of agile process for the following projects
• mobile application for a bank
• ISRO invites bids for building fuel flow control software for next generation pslv
• ecommerce business application – like amazon, snapdeal
• university administration software
• robotic arms embedded software for automobile manufacturing unit
Teams:
• make team of two each
• discuss and present
U & P U. Patel Department of Computer Engineering
Subject Teacher:
Ms. Sneha Padhiar
Assistant Professor,
U & P U. Patel Department of Computer Engineering
11/22/2024 2
Traditional approach to managing software development
projects was failing far too often, and there had to be a
better way
11/22/2024 3
The Agile
Ensuring Approach
Product Adopting Agile
Quality
Agile
Managing Methodologies
Stakeholder
Engagement
Agile Unified
Leading An Process
Agile Team Agile Planning
The Agile
Ensuring Approach
Product Adopting Agile
Quality
Agile Unified
Leading An Process
Agile Team Agile Planning
The Agile Approach
• assumes that things will change
• make suitable adjustments
Agile project management
objectives
• respond to change
• uses resources effectively
• foster strong ties with customers
• create customer solutions
• increase capacity (to deliver more business value)
Continuous
Improvement Cross-functional
Teams
Scope Value
Constrains
Constrains
Cost Schedule Quality
Scope
Constrains
Cost Schedule
how agile project management
differs
1. high level project scope
2. multiple iterations
3. self-organizing teams
4. extensive customer involvement
roles unique to agile
11/22/2024 18
• A product owner creates a prioritized wish list called a product
backlog.
•During sprint planning, the team pulls a small chunk from the top
of that wish list, a sprint backlog, and decides how to implement
those pieces.
•The team has a certain amount of time — a sprint (usually two to
four weeks) — to complete its work, but it meets each day to
assess its progress (daily Scrum).
• Along the way, the Scrum Master keeps the team focused on its
goal.
•At the end of the sprint, the work should be potentially shippable:
ready to hand to a customer, put on a store shelf, or show to a
stakeholder.
• The sprint ends with a sprint review.
11/22/2024 19
scrum
• 10 – 15 minutes daily meetings
• what work & why
• what’s next
• blocked?
• fixed length iteration / sprint
• 2-weeks / 4-weeks
• agreed work items to complete
• planning occurs between sprints
• 2 type of backlogs
• product - includes every possible project requirement, all features, functions,
enhancements. It is single source of truth. changes can occur
• sprint – work items to be completed for a sprint. No changes preferred
• burndown chart for work item tracking / progress
11/22/2024 21
scrum
Manifesto for Agile Software
Development
• “We are uncovering better ways of developing software by doing it and helping others do
it. Through this work we have come to the value:
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
That is, while there is value in the items on the right, we value the items on the left more.”
PS: Please look at these 4 values and 12 Principles of Agile on Shared video on MS Team
Conversation of channel.
1. Active user involvement is imperative
2. The team must be empowered to make decisions
3. Requirements evolve but the timescale is fixed
4. Capture requirements at a high level
5. Develop small, incremental releases and iterate
11/22/2024 24
6. Focus on frequent delivery of products
7. Complete each feature before moving on to the next
8. Apply the 80/20 rule(The Pareto Principle, commonly referred to as the 80/20 rule, states that 80% of the effect comes from
20% of causes. Or, in terms of work and time management, 20% of your efforts will account for 80% of your results.
11/22/2024 25
eXtreme Programming
• A system of practices that a community of software developers is
evolving to address the problems of quickly delivering quality
software, and then evolving it to meet changing business needs.
• It aims to produce higher quality software, and higher quality of life
for the development team.
• XP is the most specific of the agile frameworks regarding appropriate
engineering practices for software development.
eXtreme…
11/22/2024 28
XP values
• Communication
• Simplicity
• Feedback
• Courage
XP practices
• The Planning Game* • Collective Ownership
• Small Releases • Continuous Integration
• Metaphor • 40-Hour Week
• Simple Design* • On-Site Customer
• Testing* • Coding Standards
• Refactoring* • Open workspace
• Pair Programming* • Daily Schema migration
The Planning Game
• Business writes a story describing desired
functionality
• Stories are written on index cards
• Development estimates stories
• Velocity determines number of stories per iteration
• Business splits and prioritizes stories and determines
the composition of releases
• Velocity is measured and adjusted every iteration
• Customer steers development
Testing
• Unit Tests and Functional Tests
• Test a little, code a little…
• “Test-first programming”
• Tests become the specification
• Tests give confidence in the system
• Tests give courage to change the system
Unit tests
Pair Programming
• Two people looking at
one machine, with one
keyboard and one mouse
• Two roles:
implementation and
strategy
• All production code is
written in pairs
Pair Programming Benefits
• 15% less time and better than 2 solo programmers
• Continuous code review: better design, fewer defects
• Confidence to add to or change the system
• Discipline to always test and refactor
• Teach each other how the system works (reduced
staffing risks)
• Learn from partner’s knowledge and experience
(enhances technical skills)
Simple design
11/22/2024 41
other methodologies of Agile
• crystal – based on colours of crystal hardness (clear, yellow, orange, red)
• feature dd
• Tdd(Test driven development)
• dsdm (dynamic systems development method)
• asd (adaptive systems development)
• unified process
Quiz time!
• What is the single most important thing that the agile process measures its
success by?
• Why does agile approach advocates acceptance of change and doing
adjustments on the fly?
• What needs to be done to get started on a project using agile?
• Present any experience that you may have in implementation of a project
that you did in your professional careers?
exercise
• Let’s try pair programming as advocated in XP
• make team of two each
• we are going to build a console application for movie ticket booking
• you can use any programming language that you want
The Agile
Ensuring Approach
Product Adopting Agile
Quality
Agile Unified
Leading An Process
Agile Team Agile Planning
Adopting an Agile
approach to project
management
Project Type
Organization
Customer Structure
Suitability of
Agile?
Team Organizational
Characteristics Culture
Project
Management
Process
• agile not suitable for certain kind of projects
• hybrid approach might be the way
Organization
Customer Structure
Suitability of
Agile?
Team Organizational
Characteristics Culture
Project
Management
Process
• Organizational structure
• how much an org structure support collaboration
• org structures
• hierarchical
• restricts open communication
• employees follow process and are managed
• co-operative
• work in teams
• co-op / collaboration encouraged
• hybrid
• begin with co-op and grow and then be hierarchical – establish balance b/w coop and
hierarchical
• Project based
• goals of projects aligned to business model
• best suited for agile
Project Type
Organization
Customer Structure
Suitability of
Agile?
Team Organizational
Characteristics Culture
Project
Management
Process
• Organizational culture
• trust
• openness
• responsibility
• adaptability
Project Type
Organization
Customer Structure
Suitability of
Agile?
Team Organizational
Characteristics Culture
Project
Management
Process
• Project Management process
• more flexible and informal – easier is the transformation to agile
• less emphasis on predefined criteria
• Dsdm(dynamic system development method) provides higher level of formality, may
facilitate transition
• requirement management is flexible and informal (telephone call can be used to gather
enough information and start project)
• configuration management
• release and build configurations are well defined
• configs well defined, but process flexible
Project Type
Organization
Customer Structure
Suitability of
Agile?
Team Organizational
Characteristics Culture
Project
Management
Process
• Team characteristics
• skill and experience
• strong skills & in different functional areas
• interpersonal skills for collaboration
• team size
• most suitable for small teams of upto 15 members
• divide large teams and determine how to cooperate
• team members location
• close on-going collaboration
• co-located teams considered ideal
Project Type
Organization
Customer Structure
Suitability of
Agile?
Team Organizational
Characteristics Culture
Project
Management
Process
• Customers
• must be willing to participate in development
• must be available to participate
• direct interaction between team and customer
• customer should be on-site
• activities of customer
• vision of product
• prioritizing
• reviewing
• help make decisions