Ce343 Software Engineering
Ce343 Software Engineering
Subject Teacher:
Dr. Ashwin Makwana
Date 20 th July, 2021
11/26/2021 1
What we have seen Last Week
11/26/2021 2
U & P U. Patel Department of Computer Engineering
Agile Lecture-01
Software Engineering Practice
The Agile
Ensuring Approach
Product Adopting Agile
Quality
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
Subject Teacher:
Dr. Ashwin Makwana
Date 21 st July, 2021
11/26/2021 17
What we have seen Last Week
11/26/2021 18
agile methodologies
• scrum
• extreme programming
• lean development
Today’s Agenda:
1. Scrum
2. Manifesto of Agile (4 Values + 12 Principles)
3. eXtreme Programming
4. Suitability of Agile? (Agile Project Management)
11/26/2021 20
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
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.
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…
Taking proven practices to the extreme
• If testing is good, let everybody test all the time
• If code reviews are good, review all the time
• If design is good, refactor all the time
• If integration testing is good, integrate all the time
• If simplicity is good, do the simplest thing that could
possibly work
• If short iterations are good, make them really, really
short
Where XP is appropriate:
http://www.extremeprogramming.org/when.html
11/26/2021 26
XP values
• Communication
• Simplicity
• Feedback
• Courage
U & P U. Patel Department of Computer Engineering
Subject Teacher:
Dr. Ashwin Makwana
Date 26 th July, 2021
11/26/2021 28
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
Agile Unified
Leading An Process
Agile Team Agile Planning
Adopting an Agile approach
Suitable or Not?
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 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
Exercise
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