Agile Methodologies
-
Upload
niranjan-nerlige-v-csmcsppmi-acpspc -
Category
Software
-
view
146 -
download
1
Transcript of Agile Methodologies
Agile Methods and Approaches – A Perspective
TechGig Webinar, Date: 29th February, 2012
Niranjan Nerlige V, M.Tech (IIT- B), PMI-ACP, CSP,CSMFounder ,Chief Consultant, Agile Coach and TrainerExelplus Services, Bangalore.
1
2
NIRANJAN NERLIGE V, M.TECH(IIT-B), PMI-ACP, CSP, CSMFOUNDER, AGILE COACH, CONSULTANT AND TRAINER•His main interests are providing Consulting, Coaching, Mentoring and Training in Agile Methodologies, Transitioning to Agile Successfully, Scrum Project Management, CMMI-Agile(Hybrid Process Model adoption), Project Management, Software Estimation Techniques, Project Management (Traditional and Agile).•17 Years of Experience in Software Quality Assurance, Deployment of Software Development Processes and 2.5 Years as a Consultant and Entrepreneur•He is Agile Certified Practitioner (PMI-ACP) from PMI, Certified Scrum Master (CSM) and holds Certified Scrum Professional (CSP) certification from Scrum Alliance. •He has been a Consultant to eRevMax Software in Kolkota. He has coached, consulted on Scrum implementation and conducted Scrum workshops in this organisation..•He has been a Consultant and Trainer to Ion Idea for Agile –Scrum Process adoption and development of Agile project management in-house tool •Currently , He is
– Consultant, Agile Coach and Trainer to IpInfusion for Agile-CMMI implementation– Consultant for Arbitron– Regular trainer for Agile and Scrum project management in Yahoo .– Regular Trainer for Oracle-Hyderabad in Agile– Regular Trainer for Symphony Services in Agile, Estimation etc.
•Trained more than 1000 people in Agile Methodologies
Contents
• Why Agility?• Business Case for Agility• Traditional Approach v/s Agile Approach• Agile Values• Agile Benefits• Current Applicability of Agile• Agile Frameworks and approaches
– Scrum – XP– Kanban– Lean – Agile
• Variations In Agile Methods – Selecting an Approaches
3
Changing Business Scenario - Rapidity
4
Mobile Phones 10-15 years back
Latest Mobile Phones
Markets are very dynamic
Changing Business Scenario – Rapidity(Contd…)
5
TVs 10-15 years back
Latest TVs
End Users Needs are changing very fast
Changing Business Scenario – Rapidity( Contd…)
6
The changing times of banking industry doing Business
Why Agility?
7
Rapidity of Business changes
Rapidity of Business changes
need for agility to respond more
effectively to change.
need for agility to respond more
effectively to change.
Any Enterprise that aspires to respond in real time must have the ability to be agile when needed
Any Enterprise that aspires to respond in real time must have the ability to be agile when needed
Business Case for Agile
8
Agile methodologies change the face of software development
People Over ProcessesPeople Over Processes
ROI and time-to-market. Increase in ROI as well as reduce time-to-market. (incremental working software)
Increase in ROI as well as reduce time-to-market. (incremental working software)
Customers see quality, productivity and turn-around time as a risk in Offshore development
build trust and confidence as the customer is part of the team - (customer collaboration & embracing change)
build trust and confidence as the customer is part of the team - (customer collaboration & embracing change)
Agile Methods
Stresses customer satisfactionEmphasizes team work - enable groupware style developmentAllows agile programmers communicate with their customers and fellow programmers quite regularly and empowers them to confidently respond to changing customer requirements, even late in the life cycle
Stresses customer satisfactionEmphasizes team work - enable groupware style developmentAllows agile programmers communicate with their customers and fellow programmers quite regularly and empowers them to confidently respond to changing customer requirements, even late in the life cycle
Agile Methods are successful because, They
The Traditional Approach
10
Requirements Gathering
Design
Development
Testing
Rework
Documentation, Signoffs, Handoff
Documentation, Signoffs, Handoff
Documentation, Signoffs, Handoff
Documentation, Signoffs, Handoff
Job Function A Job Function B Job Function C Job Function D Job Function E
Niranjan Nerlige V, Copy Right Protected
• Linear• Sequential phases• Directed teams
separated by specialty (phase)
• Feedback at end
• Linear• Sequential phases• Directed teams
separated by specialty (phase)
• Feedback at end
Agile: Incremental & Iterative Software Development
11
Feature ADesign Develop Test Rework
Feature BDesign Develop Test Rework
Feature CDesign Develop Test Rework
Feature DDesign Develop Test Rework
Feature EDesign Develop Test Rework
Cross-Functional Team (Designers, Developers, Testers)
Niranjan Nerlige V, Copy Right Protected
Benefits of iterative development:• Early mitigation of high risks • Early visible progress.• Early feedback, user engagement,
and adaptation, leading to a system that more nearly meets the needs of the various stakeholders.
• Managed complexity – no compounding of complexity by postponing the implementation phase.
• Learning within an iteration.
Benefits of iterative development:• Early mitigation of high risks • Early visible progress.• Early feedback, user engagement,
and adaptation, leading to a system that more nearly meets the needs of the various stakeholders.
• Managed complexity – no compounding of complexity by postponing the implementation phase.
• Learning within an iteration.
Agile Methods which are in Wide-Spread use are• Extreme Programming (Kent Beck)• Scrum (Ken Schwaber, Jeff Sutherland, Mike Beedle)• Crystal (Alistair Cockburn)• DSDM (Arie van Bennekum)• Feature-Driven Development (Jeff De Luca)• Lean Development (Bob Charette)• Adaptive Software Development (Jim Highsmith
Agile Methods in Wide Spread Use
12
Agile Umbrella
Scrum XP RUPLeanDSDMFDD
More…
• Extreme Programming (Kent Beck)• Scrum (Ken Schwaber, Jeff Sutherland,
Mike Beedle)• DSDM (Arie van Bennekum)• Feature-Driven Development (Jeff De
Luca)• Lean Development (Bob Charette)• Crystal (Alistair Cockburn)• Adaptive Software Development (Jim
Highsmith)
• Extreme Programming (Kent Beck)• Scrum (Ken Schwaber, Jeff Sutherland,
Mike Beedle)• DSDM (Arie van Bennekum)• Feature-Driven Development (Jeff De
Luca)• Lean Development (Bob Charette)• Crystal (Alistair Cockburn)• Adaptive Software Development (Jim
Highsmith)
Niranjan Nerlige V, Copy Right Protected
“All models are wrong, some are useful…..”George Box, industrial statistician
“All models are wrong, some are useful…..”George Box, industrial statistician
Benefits Of Agile Methods in Software Development
13
Business Value
14
100
90
80
70
60
50
40
30
20
10
0
Bu
sin
ess
Val
ue
%
Month 1 Month 2 Month 3 Month 4 Month 5 Month 6
Niranjan Nerlige V, Copy Right Protected
Source: Thanks to Pete Deemer
Uncertainty and Risk
15
100
90
80
70
60
50
40
30
20
10
0
Un
cert
ain
ty a
nd
Ris
k %
Month 1 Month 2 Month 3 Month 4 Month 5 Month 6
Niranjan Nerlige V, Copy Right Protected
Source: Thanks to Pete Deemer
Where Agile Methods is being used for
16Niranjan Nerlige V, Copy Right Protected
• Large – Scale enterprise software projects• Consumer software products• US FDA approved software for X-Rays, MRIs• High availability systems(99.99%)• Financial Payment applications• Large database applications• Embedded systems• CMMI Level 5 organizations• Multi Location development• Sustenance and Maintenance Projects• Non-Software Projects
Agile Methods & Approaches
17
Scrum Methodology
18
Antithesis of Agile Dynamics
19
sequential progress; disparate roles; accountability & ownership issues
Agile: Scrum -team moves as one unit
Term used in Japan in 1987 to describe hyper-productive development
Term used in Japan in 1987 to describe hyper-productive development
The Essence of Scrum
20Niranjan Nerlige V, Copy Right Protected
Definition of Scrum“Scrum…is a framework within which you can employ various processes andtechniques…within which complex products can be developed”-Ken Schawber, ScrumGuide,, May 2009
Definition of Scrum“Scrum…is a framework within which you can employ various processes andtechniques…within which complex products can be developed”-Ken Schawber, ScrumGuide,, May 2009
Scrum Basics
21
Daily 15-minute“Stand-up” Meeting
The Team1-4 Weeks
Product Owner
1
2
3
4
5
6
7
8
Prioritized Listof Requirements
(product back log)
Team MakesCommitmentfor the Sprint (Sprint Backlog)
Sprint Review
ScrumMaster
Input from End-Users,Customers, Team andOther Stakeholders
Team Selects How Much ToCommit To Do By Sprint’s End
Potential ShippableProduct Increment
Niranjan Nerlige V, Copy Right Protected
Benefits of Scrum
22
Benefits of Scrum•Targets Product Owner’s functions-of-value•Focus on team communications•Frequent demonstrations for early feedback from stakeholders•Team spirit •Sense of accomplishment
Benefits of Scrum•Targets Product Owner’s functions-of-value•Focus on team communications•Frequent demonstrations for early feedback from stakeholders•Team spirit •Sense of accomplishment
Remember the following
•Sprint is not a “mini- waterfall”•Must result in quality,, demonstrable value to Product Owner•Beware of defect build-up (aka technical debt)•Thinking “smaller” chunk of work aka “user stories” to demonstrate in each sprint is challenging at times.•Each sprint should have requirements, design, development, and testing activities
Remember the following
•Sprint is not a “mini- waterfall”•Must result in quality,, demonstrable value to Product Owner•Beware of defect build-up (aka technical debt)•Thinking “smaller” chunk of work aka “user stories” to demonstrate in each sprint is challenging at times.•Each sprint should have requirements, design, development, and testing activities
Extreme Programming
23
Extreme Programming• A collection of best practices – each done to the
“extreme”• Sounds extreme, but very disciplined• Created by Kent Beck, Ward Cunningham, Ron
Jeffries • Adds specific engineering practices to Scrum’s
project management approach• A tough target to hit but highly productive if
you do
24
Scrum works well as a wrapper around Extreme Programming
Scrum works well as a wrapper around Extreme Programming
Extreme programming(XP)
• Twelve practices
– Based on what has worked on projects, taking them to extreme
• If something is good why not do it all the time?
• Small teams (under 20)
• Onsite customer presence
• Planning game
– Negotiate requirements in form of stories captured on index cards
• 2 to 3 weeks iteration
• Scales well for smaller team
– But, a competent smaller team is better than a large team following heavier methodologies
• Deemphasizes documentation
25Niranjan Nerlige V, Copy Right Protected
XP PracticesCustomer Practices
26
On Site CustomerOn Site Customer
Small ReleasesSmall Releases
Quality Practices
MetaphorsMetaphors
Test Driven developmentTest Driven
development
Simple DesignSimple Design
RefactoringRefactoring
Pair ProgrammingPair Programming
Planning GamePlanning Game
Sustainable PaceSustainable Pace
Collective OwnershipCollective Ownership
Coding StandardsCoding Standards
Continuous Integration
Continuous Integration
Choose Extreme Programming if
• …you have loosely-defined or volatile requirements• …you have or can develop strong engineering skills and practices• …customers can be involved on a daily (hourly) basis• …Suitable for small teams (Upto 12 Nos)- Small teams are more
flexible, and better able to adapt to change than fifty- or one-hundred-person programming behemoths.
• … Strong Commitment to XP (from the top echelon of executives all the way down and Customers)
27
28
Kanban Cards Limit Excess Work In Progress
• Kanban literally means “visual card,” “signboard,” or “billboard.”
• Toyota originally used Kanban cards to limit the amount of inventory tied up in “work in progress” on a manufacturing floor
• Not only is excess inventory waste, time spent producing it is time that could be expended elsewhere
• Kanban cards act as a form of “currency” representing how WIP is allowed in a system.
29
Why use Kanban in Software Development?
30
Time-boxed iterative development has challenges
Common problems include:• Short time-boxes give more frequent opportunity to measure
progress and inspect software but force development items to be smaller
• Smaller development items are often too small to be valuable and difficult to identify
• Chances of sacrificing Quality often suffers as testers race to complete work late in the development time-box
31
Why use Kanban in Software Development?
Using a Kanban approach in software drops time-boxed
iterations in favor of focusing on continuous flow.
32
Kanban in a nutshell
33
Visualize the workflowSplit the work into pieces, write each item on a card and put on the wallUse named columns to illustrate where each item is in the workflow.Limit WIP (work in progress) Assign explicit limits to how many items may be in progress at each workflow state.Measure the lead time (average time to complete one item, sometimes called “cycle time”), Optimize the process to make lead time as small and predictable as possible
Visualize the workflowSplit the work into pieces, write each item on a card and put on the wallUse named columns to illustrate where each item is in the workflow.Limit WIP (work in progress) Assign explicit limits to how many items may be in progress at each workflow state.Measure the lead time (average time to complete one item, sometimes called “cycle time”), Optimize the process to make lead time as small and predictable as possible
This simple process flow has the steps: 1.Analysis 2.Development3.Test4.Deployment5.Done
Kanban – When to choose?
• Scrum, XP more rules to follow, whereas Kanban less rules to follow• Beware of less rules, it shouldn’t drive you to “ whatever you can do”• Used when time to completion is more important than time boxed
iterations
34
Source: Scrum and Kanban by Henrik Kniberg
Kanban – How to choose
• Kanban is applied even for few people working in small projects , where as Scrum requires 7 people and + 2 or -2 .
• More suitable in support environment where less people are involved
35
36
Lean –Agile Software Development
37
Lean software development is a translation of Lean manufacturing and Lean IT principles and practices to the software development domain. Adapted from the Toyota Production System, a pro-lean subculture is emerging from within the Agile community.
Lean software development is a translation of Lean manufacturing and Lean IT principles and practices to the software development domain. Adapted from the Toyota Production System, a pro-lean subculture is emerging from within the Agile community.
Select the Minimum Marketable features that makes sense to users and deploy
Select the Minimum Marketable features that makes sense to users and deploy
Lean Principles applied on Software Development
38
1) Eliminate waste2) Amplify learning3) Decide as late as possible4) Deliver as fast as possible5) Empower the team6) Build integrity in7) See the whole
1) Eliminate waste2) Amplify learning3) Decide as late as possible4) Deliver as fast as possible5) Empower the team6) Build integrity in7) See the whole
Unnecessary code and functionality Delay in the software development process Unclear requirements Insufficient testing, leading to avoidable
process repetition Bureaucracy Slow internal communication
Unnecessary code and functionality Delay in the software development process Unclear requirements Insufficient testing, leading to avoidable
process repetition Bureaucracy Slow internal communication
Running tests as soon as the code is written.
Avoid writing adding more documentation Requirements gathering could be simplified
- UI screens Usage of short iteration cycles
Running tests as soon as the code is written.
Avoid writing adding more documentation Requirements gathering could be simplified
- UI screens Usage of short iteration cycles
Delay decisions as much as possible until they can be made based on facts and not on uncertain assumptions and predictions
Delay decisions as much as possible until they can be made based on facts and not on uncertain assumptions and predictions
The sooner the end product is delivered without considerable defect, the sooner feedback can be received, and incorporated into the next iteration.
The sooner the end product is delivered without considerable defect, the sooner feedback can be received, and incorporated into the next iteration.
The lean approach favors the aphorism "find good people and let them do their own job," encouraging progress, catching errors, and removing impediments, but not micro-managing
The lean approach favors the aphorism "find good people and let them do their own job," encouraging progress, catching errors, and removing impediments, but not micro-managing
The complete and automated building process should be accompanied by a complete and automated suite of developer and customer tests
The complete and automated building process should be accompanied by a complete and automated suite of developer and customer tests
“Think big, act small, fail fast; learn rapidly” “Think big, act small, fail fast; learn rapidly”
Lean –Agile Software Development for an Enterprise Agility
•While Scrum is effective at the team level, Enterprise Agility requires an Enterprise view. •Trying to build an holistic view from pieces is not nearly as effective as driving from the Enterprise to begin with. •Lean provides guidance in both "optimizing the whole" as well as "respecting people" to create a balance of effective team working on Enterprise goals . `
39
While Scrum has caught on in the industry, many companies are finding scaling it to be problematic
Lean –Agile Software Development for an Enterprise AgilityLean Agile Software development to maximize realized business value, requires:•Managing how product enhancements are initiated •Giving guidance for product managers to work together to perform product portfolio management •Managing dependencies between the software development organization and the other groups which it works with •Managing dependencies across the software development organization •Integrating development and QA roles to increase quality of software and eliminate waste •Deciding on engineering practice standards across software development teams
40
/Scrum/ Agile
Summary - Selecting an Approach
41
Factor XP Scrum Scrum-Lean Kanban Lean thinking
Keeping team intact Prescribed Prescribed
Use time-boxed intervals Yes Yes Yes No
Prioritize users stories across a team
Yes Yes Yes No
When to release completed work
At the end of selected iteration
At the end of selected iteration
At the end of selected iteration
Whenever at the discretion of team
Works in Support Environment
No No No Yes Yes
Co-Located Teams No guidance No guidance Use fast-flexible-flow to create optimal flow
Manage with appropriate WIP limits
Use fast-flexible-flow to create optimal flow
Support for the product-management organization
No No Yes Partial Yes
Code Quality Yes Not discussed
Use a workflow that increases quality
Use a workflow that increases quality
Use a workflow that increases quality
Questions ?
42
List of References
• Selecting a development Process by Mike Cohn, Mountain Goat Software
• Scrum and Kanban from Trenches by Henrik Kniberg
• Lean-Agile Software Development by Alan Shalloway, Guy Beaver and James R.Trott
43
Thank You For Your Time …………..
Niranjan Nerlige V, M.Tech ( IIT, Bombay), PMI-ACP, CSP ,CSMFounder, Chief Consultant , Trainer and Agile CoachExelplus ServicesA1, Samhita Vista, 1st Main,Pai Lay Out, Bangalore-560016Mobile: 99000 55943E-Mail: [email protected]: www.exelplus.com
Global Excellence Through Innovative solutions
44