0% found this document useful (0 votes)
55 views55 pages

Ce343 Software Engineering

The document discusses Agile software development practices like Scrum, eXtreme Programming (XP), and the Manifesto for Agile Software Development. It describes key aspects of Scrum like sprints, daily stand-up meetings, and product and sprint backlogs. It outlines values and practices of XP like test-driven development, pair programming, small releases, and on-site customers. The document also discusses roles in Agile projects and when Agile approaches like XP are most suitable.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
55 views55 pages

Ce343 Software Engineering

The document discusses Agile software development practices like Scrum, eXtreme Programming (XP), and the Manifesto for Agile Software Development. It describes key aspects of Scrum like sprints, daily stand-up meetings, and product and sprint backlogs. It outlines values and practices of XP like test-driven development, pair programming, small releases, and on-site customers. The document also discusses roles in Agile projects and when Agile approaches like XP are most suitable.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 55

U & P U.

Patel Department of Computer Engineering

CE343 SOFTWARE ENGINEERING


Chapter 2 Agile Software development

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 Risk Developing


Management Agile Mindset
AGILE PROCESS
Agile
Managing Methodologies
Stakeholder
Engagement

Agile Unified
Leading An Process
Agile Team Agile Planning
The Agile
Ensuring Approach
Product Adopting Agile
Quality

Agile Risk Developing


Management Agile Mindset
AGILE PROCESS
Agile
Managing Methodologies
Stakeholder
Engagment

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

Agile Project Management

Business Short Iterations


Priorities &
Customer Value
Incremental
Approach
project plan
• scope
• cost
• AGILE PROJECT PLAN
• schedule
• DETAILED ENOUGH TO GET STARTED WITH
• activities FIRST ITERATION OF WORK
• deliverables • FOCUSES ON WHICH PRODUCT FEATURES
• milestones TO DEVELOP AND WHEN

• • DOES NOT DESCRIBE ACTIVITIES IN DETAIL


resources
Traditional Iron Triangle Agile Triangle

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

• PROJECT LEADER (INSTEAD OF MANAGER)


• FOCUS ON HOW TEAM CAN ACHIEVE ITS GOALS
• COACH
• MORE EXPLICIT LEADERSHIP EARLY IN PROJECT’S LIFE
• HELPS TEAM INTERACT WITH REST OF THE ORGANISATION
• ALSO A BUSINESS ANALYST
Roles …
• business analyst
• if a task is taking longer than expected, BA ensures customer
understands why
• manage project requirements effectively
• helps manage relationship between onsite customer & other team
members
• helps customer know constrains of the team
roles …
• scrum master
• measure progress using tools like burndown chart and scrum task boards
• ensure project moving in right direction (acts like sheep dog -> guide & guard)
• if delay occurs, sm’s job is to determine the cause and rectify if possible
• take leadership role if team isn’t self regulating
• conduct stand-up meetings
• layers of scrum masters for larger teams
roles …
• product owner / manager
• customer representative
• documenting vision of the product
• sharing vision with stakeholders
• gathering stakeholders feedback to use in generating user stories
• prioritising release planning
• be available to work on product iteration
U & P U. Patel Department of Computer Engineering

CE343 SOFTWARE ENGINEERING


Chapter 2 Agile Software development

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

• Dynamically changing software requirements


• Risks caused by fixed time projects using new technology
• Small, co-located extended development team
• The technology you are using allows for automated unit and
functional tests
• Where not appropriate?? http://wiki.c2.com/?
WhenIsXpNotAppropriate

11/26/2021 26
XP values

• Communication
• Simplicity
• Feedback
• Courage
U & P U. Patel Department of Computer Engineering

CE343 SOFTWARE ENGINEERING


Chapter 2 Agile Software development

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

Do the simplest thing that could possibly work

• Passes all the tests


• No duplicate code
• States every intention
• Fewest possible classes and methods
Refactoring
• Design becomes everybody’s daily business
• Continuously improve quality of the code
• Unit Tests and Pair Programming give courage
• Code Refactoring is the process of clarifying and simplifying the design of
existing code, without changing its behavior. 
• Agile teams are maintaining and extending their code a lot from iteration to
iteration, and without continuous refactoring, this is hard to do.
Result:
• Fast development speed
• Code becomes easy to change
Why XP works
• Light-weight: discipline without bureaucracy
• Under stress, people do what is easiest
• All XP practices have short-term benefits as well as long-
term benefits
• Development as a Conversation
• The code is the documentation
• XP is fun
Who benefits from XP?
Programmers: Customers:
• get clear requirements • get most business
& priorities value first
• can do a good job • get accurate feedback
• can make technical • can make informed
decisions business decisions
• don’t work overtime • can change their mind
XP
• programmer focussed, disciplined
• rapid releases
• small self directed team of programmers
• estimate programming task based on customer provided user stories
• …-> simplicity of design -> Testing -> Refactoring -> Feedback ->…
• Principles of XP
• pair programming
• sustainable pace (not encouraged to work more than 40 hours a week. work 40
hrs consistently)
• ongoing automated testing
• TDD (test driven development)
other methodologies of Agile[Assignment-1]
• crystal – based on colours of crystal hardness (clear, yellow, orange, red)
• feature dd (Feature-Driven Development )
• Tdd(Test driven development)
• dsdm (dynamic systems development method)
• asd (adaptive systems development)
• unified process
Exercise/Activity follow in SGP [Assignment-2]
• 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 Risk Developing


Management Agile Mindset
AGILE PROCESS
Agile
Managing Methodologies
Stakeholder
Engagment

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

• How to determine if agile is suitable?


• Project Type
• high level of internal un-certainty
• highly creative work
• well defined outcome (agile not suitable)
• Before moving to agile, consider
• criticality of the project – if impact of failure is very high, consider
hybrid approach
• safety and security are primary requirements – not suitable
Project Type

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

You might also like