68
Gino Marckx Director Agile Practice, EPAM Systems The Undocumented Agile Practice

The Undocumented Agile Practice Undocumented Agile Practice. ... Retrospective Self-Organizing Team ... Domain Driven Design Emergent Design / Evolutionary Design

Embed Size (px)

Citation preview

Gino MarckxDirector Agile Practice, EPAM Systems

The Undocumented Agile Practice

“ ”Agile doesn’t work for the majority of the companies

out there...

Once upon a time...

cba Resident on Earth - http://www.flickr.com/photos/infiniteache/5427836708

Let’s try this new thing called Agile!

cba RambergMediaImages - http://www.flickr.com/photos/rmgimages/4881824141 cb Richard Smith - http://www.flickr.com/photos/gocarts/3684754266

cba RambergMediaImages - http://www.flickr.com/photos/rmgimages/4881824141 cb Richard Smith - http://www.flickr.com/photos/gocarts/3684754266

Faster

Better

Cheaper

1. Support Agile Manifesto

We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

Individuals and interactions over processes and tools Working software over comprehensive documentation

Customer collaboration over contract negotiation 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.

Kent BeckMike Beedle

Arie van BennekumAlistair CockburnWard Cunningham

Martin Fowler

James GrenningJim HighsmithAndrew HuntRon Jeffries

Jon KernBrian Marick

Robert C. MartinSteve Mellor

Ken SchwaberJeff SutherlandDave Thomas

© 2001, the above authorsthis declaration may be freely copied in any form,

but only in its entirety through this notice.

Principles behind the Agile ManifestoWe follow these principles:

Our highest priority is to satisfy the customerthrough early and continuous delivery

of valuable software.

Welcome changing requirements, even late in development. Agile processes harness change for

the customer's competitive advantage.

Deliver working software frequently, from a couple of weeks to a couple of months, with a

preference to the shorter timescale.

Business people and developers must work together daily throughout the project.

Build projects around motivated individuals. Give them the environment and support they need,

and trust them to get the job done.

The most efficient and effective method of conveying information to and within a development

team is face-to-face conversation.

Working software is the primary measure of progress.

Agile processes promote sustainable development. The sponsors, developers, and users should be able

to maintain a constant pace indefinitely.

Continuous attention to technical excellence and good design enhances agility.

Simplicity--the art of maximizing the amount of work not done--is essential.

The best architectures, requirements, and designs emerge from self-organizing teams.

At regular intervals, the team reflects on how to become more effective, then tunes and adjusts

its behavior accordingly.

cb Matt Hutchinson - http://www.flickr.com/photos/hiddenloop/429289122

1. Support Agile Manifesto2. Hire Agile Champion

cba paddynapper - http://www.flickr.com/photos/28990363@N05/5889228468

1. Support Agile Manifesto2. Hire Agile Champion3. Train Team Members

Planning Game

Test Driven Development

Iterations

Retrospectives

ProductBacklog

Sprint Review

Daily Standups

Self-Organizing Team

Continuous IntegrationPair Programming

cb Dana Beveridge - http://www.flickr.com/photos/scissorfighter/4857071188 cb Jonathan Rubio - http://www.flickr.com/photos/jonathanrh/5757547657

Certified

cba Andrew Schwegler - http://www.flickr.com/photos/ajschwegler/525742850

1. Support Agile Manifesto2. Hire Agile Champion3. Train Team Members4. Be Agile

cba RambergMediaImages - http://www.flickr.com/photos/rmgimages/4881824141 cb Richard Smith - http://www.flickr.com/photos/gocarts/3684754266

Yes, but...

Successful Challenged Failed

12%

28%60%

16%

37%

47%

Traditional Agile

Perceived Project Success Rates

Copyright 2010 Scott W. Ambler - www.ambysoft.com/surveys

4%18%

41%

37%

Top Reasons to Adopt Agile“Faster Time to Market”

Copyright 2010 VersionOne - State of Agile Survey 2010

Highest ImportanceVery ImportantSomewhat ImportantNot Important at All

0 10 20 30Pair Programming

Burndown TrackingPotentially Shippable Software

Daily StandupsExecutable Specifications

Initial Estimate and ScheduleActive Stakeholder Participation

Retrospectives

Practices Tried and Abandoned Top 8 (out of 30)

Copyright 2009 Scott W. Ambler - www.ambysoft.com/surveys

Potentially Shippable Software

Principles behind the Agile ManifestoWe follow these principles:

Our highest priority is to satisfy the customerthrough early and continuous delivery

of valuable software.Welcome changing requirements, even late in

development. Agile processes harness change for the customer's competitive advantage.

Deliver working software frequently, from a couple of weeks to a couple of months, with a

preference to the shorter timescale.

Business people and developers must work together daily throughout the project.

Build projects around motivated individuals. Give them the environment and support they need,

and trust them to get the job done.

The most efficient and effective method of conveying information to and within a development

team is face-to-face conversation.

Working software is the primary measure of progress.

Agile processes promote sustainable development. The sponsors, developers, and users should be able

to maintain a constant pace indefinitely.

Continuous attention to technical excellence and good design enhances agility.

Simplicity--the art of maximizing the amount of work not done--is essential.

The best architectures, requirements, and designs emerge from self-organizing teams.

At regular intervals, the team reflects on how to become more effective, then tunes and adjusts

its behavior accordingly.

1. Support Agile Manifesto2. Hire Agile Coach3. Train Team Members4. Be Agile

Agile TransitionAgile Adoption

1. Support Agile Manifesto2. Hire Agile Champion3. Train Team Members4. Be Agile

We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

Individuals and interactions over processes and tools Working software over comprehensive documentation

Customer collaboration over contract negotiation 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.

Kent BeckMike Beedle

Arie van BennekumAlistair CockburnWard Cunningham

Martin Fowler

James GrenningJim HighsmithAndrew HuntRon Jeffries

Jon KernBrian Marick

Robert C. MartinSteve Mellor

Ken SchwaberJeff SutherlandDave Thomas

© 2001, the above authorsthis declaration may be freely copied in any form,

but only in its entirety through this notice.

By Ju

rgen

App

elo

- ht

tp://

ww

w.n

oop.

nl/2

009/

04/t

he-b

ig-li

st-o

f-agi

le-p

ract

ices

.htm

l

User Stories

Emergent Design/Evolutionary Design

Collective Code Ownership

Test Automation

Retrospective

Self-Organizing Team

RequirementsProduct Vision / Vision StatementProduct BacklogUser StoriesUse CasesUsage ScenariosPersonasPlanning PokerRequirement Prioritization

DesignArchitectural Spikes / Spike SolutionsDomain Driven DesignEmergent Design / Evolutionary DesignCRC CardsDesign by ContractSystem Metaphor

ConstructionCoding Style / Coding Guidelines / Coding StandardTest Driven DevelopmentBehavior Driven DevelopmentPair-Programming / PairingRefactoringCollective Code OwnershipDaily Builds / Automated Builds / Ten-Minute BuildsContinuous IntegrationCode Reviews / Peer ReviewsSoftware Metrics / Code Metrics & AnalysisSource Control / Version ControlIssue Tracking / Bug TrackingConfiguration ManagementFrequent Delivery / Frequent Releases

TestingUnit TestingSmoke Testing / Build Verification TestIntegration TestingSystem TestingExploratory TestingTest AutomationStorytesting / Acceptance Criteria / Acceptance Testing

ProcessTimeboxing / Fixed Sprints / Fixed Iteration LengthRelease PlanningIteration Planning / Planning Game / Sprint PlanningSprint BacklogTask BoardDefinition of Done / Done DoneDaily Stand-up Meeting / Daily ScrumVelocitySprint Review / Iteration DemoValue Stream MappingRoot Cause Analysis / 5 WhysBurn Down Charts / Burn Up ChartsBig Visible Charts / Information RadiatorsRetrospective / Reflection Workshop

OrganizationSmall TeamCross-Functional TeamSelf-Organizing Team / Scrum TeamColocated Team / Sitting Together / Common WorkspaceOn-Site Customer / Product OwnerScrum MasterSustainable PaceMove People AroundScrum of Scrums

User Stories

Emergent Design/Evolutionary Design

Collective Code Ownership

Test Automation

Retrospectives

Self-Organizing Team

A Small Piece of Functionality from the End-user’s Perspective

CardConversationConfirmation

“ ”Invitation to a Conversation

Alistair Cockburn

Conversation

User Stories

Emergent Design/Evolutionary Design

Collective Code Ownership

Test Automation

Retrospectives

Self-Organizing Team

Design for the Current Solution, Not for

Future Requirements

Keep It Simple and Stupid

You Ain’t GonnaNeed It

Conversation

Com

mit to

Team R

esultsUser Stories

Emergent Design/Evolutionary Design

Collective Code Ownership

Test Automation

Retrospectives

Self-Organizing Team

No Silos

Everyone Can Contribute to Any Part

of the Project

Conversation

Com

mit to

Team R

esults

Shared O

wnership

User Stories

Emergent Design/Evolutionary Design

Collective Code Ownership

Test Automation

Retrospectives

Self-Organizing Team

Testing ≠ Programming

cba Damien Pollet - http://www.flickr.com/photos/damienpollet/5048830734

Conversation

Com

mit to

Team R

esults

Shared O

wnership

Collaboration

User Stories

Emergent Design/Evolutionary Design

Collective Code Ownership

Test Automation

Retrospectives

Self-Organizing Team

Inspect and Learnfrom the Past

cb Dana Beveridge - http://www.flickr.com/photos/scissorfighter/4857071188

“”

Regardless of what we discover today, we understand and truly believe that

everyone did the best job they could, given what they knew at the time, their

skills and abilities, the resources available, and the situation at hand.

Norm Kerth

Conversation

Com

mit to

Team R

esults

Trust

Shared O

wnership

Collaboration

User Stories

Emergent Design/Evolutionary Design

Collective Code Ownership

Test Automation

Retrospectives

Self-Organizing Team

Self-organizing=

Motivated

Copyright by RSA Animate - http://comment.rsablogs.org.uk/2010/04/08/rsa-animate-drive

User Stories

Conversation

Emergent Design/Evolutionary Design

Com

mit to

Team R

esults

RetrospectivesTrust

Collective Code Ownership

Shared O

wnership

Test Automation

Collaboration

Self-Organizing Team

Motivation

Use

r St

orie

s

Conversation

Emer

gent

Des

ign/

Evol

utio

nary

Des

ign

Commit to Team Results

Ret

rosp

ectiv

es

TrustC

olle

ctiv

e C

ode

Ow

ners

hip

Shared Ownership

Test

Aut

omat

ion

Collaboration

Self-

Org

aniz

ing

Team

Motivation

Team Dynamics

Oxford Dictionaries

teamPronunciation: /tiːm/noun[treated as singular or plural]• a group of players forming one side in a competitive game or sport:the

village cricket teamhis team played well[as modifier] :team members

• two or more people working together:a team of researchers• two or more animals, especially horses, in harness together to pull a

vehicle:the abbey’s wagon and a team of horses are gone

verb• 1 [no object] (team up) come together as a team to achieve a common

goal:he teamed up with the band to produce the disc• 2 [with object] (usually team something with) match or coordinate a

garment with (another):a pinstripe suit teamed with a crisp white shirt• 3 [with object] harness (animals, especially horses) together to pull a

vehicle:the horses are teamed in pairs

• two or more people working together:a team of researchers

• 1 [no object] (team up) come together as a team to achieve a common goal:he teamed up with the band to produce the disc

It’s About How We Work Together to Achieve a

Common Goal

5. Team - Innocent Wonderment“Life is great!”

1. Alienated - Undermining“Life sucks”

3. Domination - Lone Warrior“I am great... and you are not”

2. Separated - Apathic Victim“My life sucks”

4. Partnerships - Tribal Pride“We are great... and you are not”

Leveraging Natural Groupsto Build a Thriving Organization

Dave Logan, John King& Halee Fischer-Wright

cba James DiBianco - http://www.flickr.com/photos/deebeephotography/5597423334

That is a bad idea

I want my idea to be chosen

What do they mean by that?

I don’t understand it

Will it help me?

Signal

Noise

cb Michiel Jelijs - http://www.flickr.com/photos/thewolf/3816968139

Some Tips...

Decision Making

1. Find out what you agree on

2. Resolve the differences

cb Sarah - http://www.flickr.com/photos/sarahreido/3120877348

Emotional Context

cbde Gino Marckx - Native Child and Family Services of Toronto 14th Annual Community Pow Wow

Feedback

cba Nick McPhee - http://www.flickr.com/photos/nics_events/2350462798

So...

Agile is Not AboutProcesses and Techniques

It’s About How You Work Together to Achieve a

Common Goal

It’s About How We Work Together to Achieve a Common Goal

cb Vestman - http://www.flickr.com/photos/vestman/3515340912

Gino MarckxDirector Agile Practice, EPAM Systems

Thank You!