Agile Methodologies

43
Agile Methods and Approaches – A Perspective TechGig Webinar, Date: 29 th February, 2012 Niranjan Nerlige V, M.Tech (IIT- B), PMI-ACP, CSP,CSM Founder ,Chief Consultant, Agile Coach and Trainer Exelplus Services, Bangalore. 1

Transcript of Agile Methodologies

Page 1: 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

Page 2: Agile Methodologies

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

Page 3: 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

Page 4: Agile Methodologies

Changing Business Scenario - Rapidity

4

Mobile Phones 10-15 years back

Latest Mobile Phones

Markets are very dynamic

Page 5: Agile Methodologies

Changing Business Scenario – Rapidity(Contd…)

5

TVs 10-15 years back

Latest TVs

End Users Needs are changing very fast

Page 6: Agile Methodologies

Changing Business Scenario – Rapidity( Contd…)

6

The changing times of banking industry doing Business

Page 7: Agile Methodologies

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

Page 8: Agile Methodologies

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

Page 9: Agile Methodologies

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

Page 10: Agile Methodologies

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.

Page 11: Agile Methodologies

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

Page 12: Agile Methodologies

Benefits Of Agile Methods in Software Development

13

Page 13: Agile Methodologies

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

Page 14: Agile Methodologies

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

Page 15: Agile Methodologies

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

Page 16: Agile Methodologies

Agile Methods & Approaches

17

Page 17: Agile Methodologies

Scrum Methodology

18

Page 18: Agile Methodologies

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

Page 19: Agile Methodologies

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

Page 20: Agile Methodologies

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

Page 21: Agile Methodologies

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

Page 22: Agile Methodologies

Extreme Programming

23

Page 23: Agile Methodologies

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

Page 24: Agile Methodologies

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

Page 25: Agile Methodologies

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

Page 26: Agile Methodologies

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

Page 27: Agile Methodologies

28

Page 28: Agile Methodologies

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

Page 29: Agile Methodologies

Why use Kanban in Software Development?

30

Page 30: Agile Methodologies

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?

Page 31: Agile Methodologies

Using a Kanban approach in software drops time-boxed

iterations in favor of focusing on continuous flow.

32

Page 32: Agile Methodologies

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

Page 33: Agile Methodologies

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

Page 34: Agile Methodologies

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

Page 35: Agile Methodologies

36

Page 36: Agile Methodologies

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

Page 37: Agile Methodologies

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”

Page 38: Agile Methodologies

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

Page 39: Agile Methodologies

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

Page 40: Agile Methodologies

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

Page 41: Agile Methodologies

Questions ?

42

Page 42: Agile Methodologies

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

Page 43: Agile Methodologies

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