Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

The Heart Of Agile


Published on

Published in: Technology, Business
  • Be the first to comment

The Heart Of Agile

  1. 1. The Heart of Agile Kulawat Wongsaroj @kluak110 Bangkok Barcamp 3 May 23 2009
  2. 2. What do you think the heart of Agile is? • Iteration? • User Story? • Test Driven Development? • Pair Programming? • Planning Poker? • Embracing Change?
  3. 3. 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 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.
  4. 4. Responding to change over following a plan Estimate does not come from the Commitment does not come from ones who actually do the work the ones who actually do the work 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? Ummyour iteration to be next iteration. Freeze … Probably but it has scope! • The Boss : What are you talking about? is expensive. Aren’t Context Switching This is the last iteration! you guys supposed to embrace changes? • Dev Lead : Many you wantthings do add up. have to move Errr … If little to add more stories now, we 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! The team eventually working late hours for the rest Velocity of the of the iteration to get them all done. However, since team now become then, adding stories in the middle of iterations has higher than normal become the norm.
  5. 5. Have flexible Release Plan but freeze Iteration Plan before it starts HIGH PRIORITY LOW PRIORITY Release 1 1 1 1 1 2 5 5 5 3 3 2 I really need these 2 Freeze! Freeze! new reports Iteration 1 Iteration 2 Iteration 3 Velocity=10 Velocity=10 Velocity=10
  6. 6. Working 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. Communicate with highest bandwidth possible • 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 theAs Possible with the final spec. Integrate As Early spec to commit that this is the It should takes us about 3 months to finish all the work. • Provider Dev : Sign off? Working Software • Consumer Dev : Yes. That is normal process, right? Then if you need to change, you have to submit a change request. when they are needed Have documents only • 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.
  7. 7. Individuals 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
  8. 8. ทีมคุณเป็นอย่างนี้บ้างไหม – Your team is like this? • “เปล่ยนอีกแล้ว เปล่ยนทุกวัน วันนั ้น ี ี • “When will they stop changing จะเอาอย่างงี ว ้ ั นนี้จะเอาอย่างงันจะ minds?” ้ their เอายังไงกันแน่ (วะ)” • “I didn’t write this class so I do • “class นี้ผมไม่ได้ทำา เลยไม่กล้าแตะ 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 แก้ code เขาหรอก เด๋ียวมันงอน” do not want him to be mad at me for fixing his code.”
  9. 9. So what do we need to build an agile team? Simplicity Refactor (Rotating) Pair Coding Ownership Programming Standard Test Driven Development Collective Continuous Code Integration Team Ownership Daily Stand-Up Meeting Commitment Planning Retrospective Pokers with Whole Team
  10. 10. The 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!
  11. 11. Team vs Superstars Superstar = Egomaniac Team = Ant Army
  12. 12. The Key is Letting Go of Your Ego! • อนัตตา – ไม่มีอัตตา • Code is owned by team, not each individual หาเจ้าของมิได้ • Anyone is free (and • เป้า : code เป็นของทีม comfortable) to change ไม่ใช่ของส่วนตัว any line of code at any • ใครจะแก้ code ตรงไหน time ก็ได้ • It is not your bugs, or my bugs, it is ours bugs • Individual Code Ownership คือ มันรู้ของมันอยู่คนเดียว, • Pair gives birth to a new feature and then it is bug เธอไม่ใช่ bug nurtured by the collective ฉัน, • Ego is the enemy of pair • Pair ทำาให้ feature เกิดใหม่ programming จากนั้นก็ฝากให้ทมเลี้ยง ี ดู ให้เติบโตและแข็งแกร่ง • อัตตาคือศัตรูของความ สำาเร็จในการทำา Pair
  13. 13. If you are going to read one Agile book Special thanks my Agile evangelists @proteusguy @korn4d