The Heart Of Agile

13
Kulawat Wongsaroj [email protected] @kluak110 Bangkok Barcamp 3 May 23 2009 The Heart of Agile

description

 

Transcript of The Heart Of Agile

Page 1: The Heart Of Agile

Kulawat [email protected]

@kluak110

Bangkok Barcamp 3May 23 2009

The Heart of Agile

Page 2: The Heart Of Agile

What do you think the heart of Agile is?What do you think the heart of Agile is?

• Iteration?• User Story?• Test Driven Development?• Pair Programming?• Planning Poker?• Embracing Change?

Page 3: The Heart Of Agile

In early 2001, a group of industry experts in light-weight process like XP, Scrum, FDD, Crystal, DSDM, and etc, formed the Agile Alliance and created

The Manifesto of the Agile Alliance.

We are uncovering better ways of developingsoftware 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.

agilemanifesto.org

Page 4: The Heart Of Agile

Responding to change over following a planResponding to change over following a plan

The following events takes place in the middle of the last iteration between 3pm and 4pm

• The Boss : I already promised to the customer that we will have these features too. They are really small. We can add them right?

• Dev Lead : What? Umm … Probably but it has to be next iteration.• The Boss : What are you talking about? This is the last iteration! Aren’t

you guys supposed to embrace changes?• Dev Lead : Errr … If you want to add more stories now, we have to move

some stories out of this iteration. • The Boss : That is not acceptable. We are professional! Move your lazy

asses and just get them all done in before this Friday!

Commitment does not come from the ones who actually do the work

Estimate does not come from the ones who actually do the work

Velocity of the team now become higher than normal

Freeze your iteration scope!Context Switching is expensive.

Many little things do add up.

The team eventually working late hours for the rest of the iteration to get them all done. However, since then, adding stories in the middle of iterations has become the norm.

Page 5: The Heart Of Agile

13 51 1

31 2

2155

Iteration 1 Iteration 2 Iteration 3Velocity=10 Velocity=10 Velocity=10

HIGH PRIORITY LOW PRIORITYRelease

I really need these 2 new reports

Have flexible Release Plan butfreeze Iteration Plan before it starts Have flexible Release Plan butfreeze Iteration Plan before it starts

Freeze! Freeze!

Page 6: The Heart Of Agile

Working software over comprehensive documentation Customer collaboration over contract negotiationWorking software over comprehensive documentation Customer collaboration over contract negotiation

The following events takes place in a conference call between two dev teams. One provides web services and the other one write consume them (e.g. customer). Their time zones are 12 hours differences.

• Consumer Dev : Let’s spec out all the interfaces in the detailed design spec• Provider Dev : Sure. That would definitely be helpful.• Consumer Dev : After you sing off the spec to commit that this is the final spec. It should

takes us about 3 months to finish all the work.• Provider Dev : Sign off?• Consumer Dev : Yes. That is normal process, right? Then if you need to change, you have

to submit a change request.• Provider Dev : Err.. Can’t we drop you our code each iteration instead? Then you can work

with the real interface and we would know right away if the integration works.• Consumer Dev : No we can’t. We have our own internal process. Well it should be fine as

long as we do our spec right at the beginning.

Provider Team keeps producing drops in each iteration but cannot integrate with the consumer until 3 months later. They found all kinds of problems during the integration and spends 2 more months to fix them.

Communicate with highest bandwidth possible

Integrate As Early As Possible with the Working Software

Have documents only when they are needed

Page 7: The Heart Of Agile

Individuals and interactions over processes and toolsIndividuals and interactions over processes and tools

• Agile values Individuals and Interactions over process and tools therefore Agile is not just a process

• IMO, Individuals and Interactions is the heart of Agile. It is all about people.

• Individuals (with “s”) = Team• It may be not too difficult to learn how to

– use User Story for requirement and estimate in Story Point

– plan the work in Iteration with Velocity

• It is NEVER easy to build a team

Page 8: The Heart Of Agile

ที�มคุ�ณเป็นอย่ างน��บ้�างไหม – Your team is like this?ที�มคุ�ณเป็นอย่ างน��บ้�างไหม – Your team is like this?

• “ เป็ลี่��ย่นอ�กแลี่�ว เป็ลี่��ย่นที�กว�น ว�นน��น จะเอาอย่ างง�� ว�นน��จะเอาอย่ างง��น จะ

เอาย่�งไงก�นแน (วะ)”

• “class น��ผมไม ได้�ที า เลี่ย่ไม กลี่�าแตะ ผมเลี่ย่เขี�ย่นใหม เลี่ย่ ด้�กว าอ�กนะ”

• “ ผมไม กลี่�าแก�อ ะ เด้�$ย่วม�นพั�งหมด้เสี่��ย่งเป็ลี่ า”

• “ ถ้�าจะเอาต�องแก�เย่อะนะ รื้)�อใหม หมด้ เลี่ย่ ป็ะผ�ไป็ก อนลี่ะก�น เว*รื้+คุเหม)อนก�น”

• “ ก,รื้- �นะว าม�นผ*ด้ แต ผมไม อย่ากไป็ว าไป็ แก� code เขีาหรื้อก เด้�$ย่วม�นงอน”

• “When will they stop changing their minds?”

• “I didn’t write this class so I do not want to touch it. I’d rather rewrite the whole thing.”

• “I am afraid I might break something if I change that code.”

• “It will take time to fix it properly. Let’s bandage it for now.”

• “I know his code is wrong but I do not want him to be mad at me for fixing his code.”

Page 9: The Heart Of Agile

So what do we need to build an agile team?So what do we need to build an agile team?

Ownership

Commitment

TeamCollective

CodeOwnership

PlanningPokers

with

Whole Team

(Rotating)Pair

Programming

Simplicity

DailyStand-UpMeeting

Retrospective

ContinuousIntegration

TestDriven

Development

Refactor

CodingStandard

Page 10: The Heart Of Agile

The CollectiveThe Collective

• Collective Code Ownership• You can just throw a new

staff into the collective• CMM retains knowledge

with documentation while Agile retains knowledge within the collective

• It is the team building, making people happy, people is retained, so is knowledge

Resistance is Futile… You will be Assimilated!

Page 11: The Heart Of Agile

Team vs SuperstarsTeam vs Superstars

Team= Ant Army

Superstar= Egomaniac

Page 12: The Heart Of Agile

The Key is Letting Go of Your Ego!The Key is Letting Go of Your Ego!

• อน�ตตา – ไม่�ม่�อั�ตตา หาเจ�าขีองม*ได้�

• เป็.า : code เป็�นขอังที�ม่ ไม ใช่ ขีองสี่ วนต�ว

• ใคุรื้จะแก� code ตรงไหนก็�ได้�• Individual Code Ownership คุ)อ

ม�นรื้- �ขีองม�นอย่- คุนเด้�ย่ว, bug เธอัไม่�ใช่� bug ฉั�น,

• Pair ที าให� feature เก*ด้ใหม จากน��นก,ฝาก็ให�ที�ม่เลี้��ยงด้� ให�เต*บ้โตแลี่ะแขี,งแกรื้ ง

• อั�ตตาคื!อัศั�ตร�ขีองคุวามสี่ าเรื้,จในการื้ที า Pair

• Code is owned by team, not each individual

• Anyone is free (and comfortable) to change any line of code at any time

• It is not your bugs, or my bugs, it is ours bugs

• Pair gives birth to a new feature and then it is nurtured by the collective

• Ego is the enemy of pair programming

Page 13: The Heart Of Agile

If you are going to read one Agile bookIf you are going to read one Agile book

Special thanks my Agile evangelists@proteusguy@korn4d