Confessions of an Agile Addict


Published on

Video and slides synchronized, mp3 and slide download available at

Ole Friis Østergaard discusses software development addictions: becoming aware of them, controlling them, getting rid of bad habits by admitting them and changing through practice. Filmed at

Ole Friis Østergaard is a software developer at Silverbullet. He thinks he's an Agile developer, doing server-side, client-side, mobile, etc., and teaching TDD. Twitter: @olefriis

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

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Confessions of an Agile Addict

  1. 1. Confessions ofan Agile AddictOle Friis Ø
  2. 2. News & Community Site• 750,000 unique visitors/month• Published in 4 languages (English, Chinese, Japanese and BrazilianPortuguese)• Post content from our QCon conferences• News 15-20 / week• Articles 3-4 / week• Presentations (videos) 12-15 / week• Interviews 2-3 / week• Books 1 / monthWatch the video with slidesynchronization on!
  3. 3. Presented at QCon Londonwww.qconlondon.comPurpose of QCon- to empower software development by facilitating the spread ofknowledge and innovationStrategy- practitioner-driven conference designed for YOU: influencers ofchange and innovation in your teams- speakers and topics driving the evolution and innovation- connecting and catalyzing the influencers and innovatorsHighlights- attended by more than 12,000 delegates since 2007- held in 9 cities worldwide
  4. 4. Me?Programmer interested ingood developmentpracticesiOSAndroidGrailsRuby RailsSinatraTDDJavaScriptJavaGroovyHTML5AngularSCRUMKanban
  5. 5. Not me?FamousThought leaderExtrovertExpert on everythingSeasoned speakerNative English-speakingDrug addictPsychiatrist
  6. 6. YouDeveloper/ProgrammerAgile Want to enjoy your jobWant to evolveWant to learn
  7. 7. The point?Get addicted to the right stuff.Love your work.Feel great about yourself.Be agile.
  8. 8. The planWhats an addiction?Agile practicesAgile addictionsMe! Me! Me!
  9. 9. Session Code3374
  10. 10. Addictions
  11. 11. About addictionsThere are habits and addictions.Habit: Something you "just do".Addiction: You feel it in your guts if youremissing it for too long.
  12. 12. About addictionsThere are habits and addictions.Habit: Something you "just do".Addiction: You feel it in your guts if youremissing it for too long.Impaired control, continued use despiteconsequences, and denial...
  13. 13. ExamplesDrugs
  14. 14. ExamplesRunning
  15. 15. ExamplesSexImage from Wikipedia
  16. 16. Agile Practices
  17. 17. Test-Driven DevelopmentSpecify before you codeMakes you write fewer bugsHelps you design better systemsGives you tools to document behaviourHelps managing risk when refactoringStill a very rare sight (at least in Denmark)
  18. 18. Doing RetrospectivesYou and your team sit down an hour or two anddiscuss what happened in the past sprintYou focus on getting a little bit better in the nextsprint, by not repeating past mistakes and bystrengthening your successesMaybe you add in an experiment to the comingsprint?
  19. 19. Pair ProgrammingYou pair up with a teammateOne at the keyboard, another "driving"Leads to better designLeads to more shared knowledgeLeads to better personal interactions on teamLeads to "less cheating"
  20. 20. Cross-Functional TeamsTheres no "one guy" who knows how to do onethingEverybody can join in on different parts of thesystem
  21. 21. Speaking to customers"Agile" is mostly about feedbackUltimately, the best feedback is from whomeveris going to use your productThe sooner, the better
  22. 22. Not everybody agreesTests are in principle "muda" (waste)Badly written tests are of no valueBadly written tests are a pain to refactorThe "beyond TDD" movementPair programming takes two instead of onePair programming requires communication skillsPair programming "is not for everybody"Customer doesnt always see the whole picture
  23. 23. And this is not allFocusing on flowSystems thinkingContinuous Integration...
  24. 24. About Cross-FuntionalTeams...You do know what this is, and how to fix it,right?<<<<<<< HEAD:my_program.rbif (is_ok)=======if (!is_invalid)>>>>>>> my_branch:my_program.rb
  25. 25. How Does ThatRelate?!?Be Agile for your Own Sake
  26. 26. You hate code reviews...Its like meetings: They split up your dayThey rip you out of contextYou dont really take the time necessary tounderstand all the code and testsAnd, actually, its often too late to fix theunderlying problems with the code
  27. 27. you pair program!Code review is part of the deal
  28. 28. You hate bad atmosphere...Colleagues who dont speak togetherNot feeling welcome in the office
  29. 29. you do retrospectives!An amazing way to get things going smoothlyMore often than not, there are simple,underlying reasons for problems on a teamJust talking about it helps - fixing it is evenbetter
  30. 30. From a famous guy..."My wife has often said that Im creatively co-dependant and that basically, inorder for my creative mind to be engaged at 100%, I need everybody in thevicinity to be in a good mood, to be happy and to be comfortable; negativeenergy pulls on me creatively.So if someones uncomfortable or having a bad day in the room, I feel theneed to perk that person up and try to make them laugh. It seems like thisis a beautiful, Jesus-like, selfless act, when in actuality, a huge part of it isvery selfish and needy on my part"- Will Smith from Wikipedia
  31. 31. Youre addicted to positivefeedback...Isnt that what we go to work for?Were simple creatures
  32. 32. we speak tocustomers!Surely, not everything from them sounds sweetBut try starting a dialog, and youll find that theyare extremely thankful for the simple fact thatyou listen to themOften very simple improvements make yourcustomer the sweetest person in the world
  33. 33. Youre a social being...Sitting alone in a cubicle is a sad lifeYou get no input, you dont evolve
  34. 34. you pair up!Pair programming is for all social beingsYou get to know your colleagues much betterYou fight, you cry, you laugh... and get loads ofinput all the time
  35. 35. Youre addicted to hot-fixingGives fame and kudos saving the productionsystems from disasterThe boss considers you a vital resourceYoure a hero!Its a great rush
  36. 36. you write crappy codeHot fixes means doing a quickndirty jobBeing the only person alive who can mend thecode gives a bit of status...and if it works, why change?
  37. 37. Youre afraid of critique...Critique hurtsCustomers dont always understand the deeperworkings of softwareYour colleagues have other ways of doing stuff
  38. 38. you dont speak tocustomersTheir opinion often gets in the wayIt takes a lot of effort to explain your point ofview
  39. 39. ...and you dont pairprogramTheres so much arguing going onYoull lose half of your discussions
  40. 40. Me! Me! Me!
  41. 41. Havent been agile all mylife...Start of my career: Waterfall-only companyFelt bad about some things, but thought thiswas the way to be professionalGot introduced later to agile practices, and itresonated with me. Why?
  42. 42. Becoming aware of my ownaddictionsWe all have a number of addictionsFinding out which takes reflectionIve thought a bit about what a sad person I am
  43. 43. I die if I sit by myself in acorner!Would never be able to work from home(regularly)Need to chatNeed to discuss ideas and solutions
  44. 44. I pair programGives me so much professional inputI learn something new each dayKeeps my motivation going...and turns colleagues into friends
  45. 45. When starting a new task......I always start by asking "How do I test this?"After several years practising TDD, Ive becomeaddictedIt just feels plain wrong to edit code withouttests - my guts twist
  46. 46. TDD and flossing yourteethTesting is like flossing your teeth (Kent Beck) -you might not get the full benefit right away, butin time youll be sorry if you dontI floss my teeth, and its become ahabit/addiction just like brushing my teeth
  47. 47. TDD vs. slot machines"Traditional coding" has been compared to sittingby a slot machineYou seldom win, but when you do, your brainreleases enough endorphins that youll keep goingTDD at first seems slower, but keeps the rhythmgoing
  48. 48. Messy kitchenI cannot work in a messy kitchenNeed to clean up before cookingNeed to clean up while cookingFeel claustrophobic otherwiseSame with code
  49. 49. Controlling yourAddictions
  50. 50. Embrace change...You want to get rid of your bad addictionsKeep your good addictionsAnd maybe collect a few good addictions?
  51. 51. First step: Reflect & AdmitDo any of the mentioned addictions resonatewith you?Should they?Is there anything youd like to change?
  52. 52. Then... practice!!It takes time to change your perceptionIt takes persistenceSome like "cold turkeys", some like gradualchangeBe open about it, tell your colleagues!!
  53. 53. Luckily...There is no reason to be embarrassed aboutyour "agile addictions".
  54. 54. Some of my addictionsTest-Driven DevelopmentContinuous IntegrationPair ProgrammingBeing Cross-FunctionalRunningWinter SwimmingFruitCoffeeVitamin DFlossing my teeth
  55. 55. Agile: I do it formyself!
  56. 56. But remember...Dont Do Drugs!
  57. 57. A Few ReferencesKent Beck: Ease at Work: time: and Chefs: