SlideShare uma empresa Scribd logo
1 de 57
Confessions of
an Agile Addict
Ole Friis Østergaard
of@silverbullet.dk
@olefriis
www.silverbullet.dk
InfoQ.com: News & Community Site
• 750,000 unique visitors/month
• Published in 4 languages (English, Chinese, Japanese and Brazilian
Portuguese)
• 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 / month
Watch the video with slide
synchronization on InfoQ.com!
http://www.infoq.com/presentations
/agile-addict-confessions
Presented at QCon London
www.qconlondon.com
Purpose of QCon
- to empower software development by facilitating the spread of
knowledge and innovation
Strategy
- practitioner-driven conference designed for YOU: influencers of
change and innovation in your teams
- speakers and topics driving the evolution and innovation
- connecting and catalyzing the influencers and innovators
Highlights
- attended by more than 12,000 delegates since 2007
- held in 9 cities worldwide
Me?
Programmer interested in
good development
practices
iOS
Android
Grails
Ruby Rails
Sinatra
TDD
JavaScript
Java
Groovy
HTML5
Angular
SCRUM
Kanban
Not me?
Famous
Thought leader
Extrovert
Expert on everything
Seasoned speaker
Native English-speaking
Drug addict
Psychiatrist
You
Developer/
Programmer
Agile Want to enjoy your job
Want to evolve
Want to learn
The point?
Get addicted to the right stuff.
Love your work.
Feel great about yourself.
Be agile.
The plan
What's an addiction?
Agile practices
Agile addictions
Me! Me! Me!
Session Code
3374
Addictions
About addictions
There are habits and addictions.
Habit: Something you "just do".
Addiction: You feel it in your guts if you're
missing it for too long.
About addictions
There are habits and addictions.
Habit: Something you "just do".
Addiction: You feel it in your guts if you're
missing it for too long.
Impaired control, continued use despite
consequences, and denial...
Examples
Drugs
Examples
Running
Examples
Sex
Image from Wikipedia
Agile Practices
Test-Driven Development
Specify before you code
Makes you write fewer bugs
Helps you design better systems
Gives you tools to document behaviour
Helps managing risk when refactoring
Still a very rare sight (at least in Denmark)
Doing Retrospectives
You and your team sit down an hour or two and
discuss what happened in the past sprint
You focus on getting a little bit better in the next
sprint, by not repeating past mistakes and by
strengthening your successes
Maybe you add in an experiment to the coming
sprint?
Pair Programming
You pair up with a teammate
One at the keyboard, another "driving"
Leads to better design
Leads to more shared knowledge
Leads to better personal interactions on team
Leads to "less cheating"
Cross-Functional Teams
There's no "one guy" who knows how to do one
thing
Everybody can join in on different parts of the
system
Speaking to customers
"Agile" is mostly about feedback
Ultimately, the best feedback is from whomever
is going to use your product
The sooner, the better
Not everybody agrees
Tests are in principle "muda" (waste)
Badly written tests are of no value
Badly written tests are a pain to refactor
The "beyond TDD" movement
Pair programming takes two instead of one
Pair programming requires communication skills
Pair programming "is not for everybody"
Customer doesn't always see the whole picture
And this is not all
Focusing on flow
Systems thinking
Continuous Integration
...
About Cross-Funtional
Teams...
You do know what this is, and how to fix it,
right?
<<<<<<< HEAD:my_program.rb
if (is_ok)
=======
if (!is_invalid)
>>>>>>> my_branch:my_program.rb
How Does That
Relate?!?
Be Agile for your Own Sake
You hate code reviews...
It's like meetings: They split up your day
They rip you out of context
You don't really take the time necessary to
understand all the code and tests
And, actually, it's often too late to fix the
underlying problems with the code
...so you pair program!
Code review is part of the deal
You hate bad atmosphere...
Colleagues who don't speak together
Not feeling welcome in the office
...so you do retrospectives!
An amazing way to get things going smoothly
More often than not, there are simple,
underlying reasons for problems on a team
Just talking about it helps - fixing it is even
better
From a famous guy...
"My wife has often said that I'm creatively co-dependant and that basically, in
order for my creative mind to be engaged at 100%, I need everybody in the
vicinity to be in a good mood, to be happy and to be comfortable; negative
energy pulls on me creatively.
So if someone's uncomfortable or having a bad day in the room, I feel the
need to perk that person up and try to make them laugh. It seems like this
is a beautiful, Jesus-like, selfless act, when in actuality, a huge part of it is
very selfish and needy on my part"
- Will Smith
http://www.darkhorizons.com/features/1312/will-smith-for-men-in-black-2
Image from Wikipedia
You're addicted to positive
feedback...
Isn't that what we go to work for?
We're simple creatures
...so we speak to
customers!
Surely, not everything from them sounds sweet
But try starting a dialog, and you'll find that they
are extremely thankful for the simple fact that
you listen to them
Often very simple improvements make your
customer the sweetest person in the world
You're a social being...
Sitting alone in a cubicle is a sad life
You get no input, you don't evolve
...so you pair up!
Pair programming is for all social beings
You get to know your colleagues much better
You fight, you cry, you laugh... and get loads of
input all the time
You're addicted to hot-
fixing
Gives fame and kudos saving the production
systems from disaster
The boss considers you a vital resource
You're a hero!
It's a great rush
...so you write crappy code
Hot fixes means doing a quick'n'dirty job
Being the only person alive who can mend the
code gives a bit of status
...and if it works, why change?
You're afraid of critique...
Critique hurts
Customers don't always understand the deeper
workings of software
Your colleagues have other ways of doing stuff
...so you don't speak to
customers
Their opinion often gets in the way
It takes a lot of effort to explain your point of
view
...and you don't pair
program
There's so much arguing going on
You'll lose half of your discussions
Me! Me! Me!
Haven't been agile all my
life...
Start of my career: Waterfall-only company
Felt bad about some things, but thought this
was the way to be professional
Got introduced later to agile practices, and it
resonated with me. Why?
Becoming aware of my own
addictions
We all have a number of addictions
Finding out which takes reflection
I've thought a bit about what a sad person I am
I die if I sit by myself in a
corner!
Would never be able to work from home
(regularly)
Need to chat
Need to discuss ideas and solutions
...so I pair program
Gives me so much professional input
I learn something new each day
Keeps my motivation going
...and turns colleagues into friends
When starting a new task...
...I always start by asking "How do I test this?"
After several years practising TDD, I've become
addicted
It just feels plain wrong to edit code without
tests - my guts twist
TDD and flossing your
teeth
Testing is like flossing your teeth (Kent Beck) -
you might not get the full benefit right away, but
in time you'll be sorry if you don't
I floss my teeth, and it's become a
habit/addiction just like brushing my teeth
TDD vs. slot machines
"Traditional coding" has been compared to sitting
by a slot machine
You seldom win, but when you do, your brain
releases enough endorphins that you'll keep going
TDD at first seems slower, but keeps the rhythm
going
Messy kitchen
I cannot work in a messy kitchen
Need to clean up before cooking
Need to clean up while cooking
Feel claustrophobic otherwise
Same with code
Controlling your
Addictions
Embrace change...
You want to get rid of your bad addictions
Keep your good addictions
And maybe collect a few good addictions?
First step: Reflect & Admit
Do any of the mentioned addictions resonate
with you?
Should they?
Is there anything you'd like to change?
Then... practice!!
It takes time to change your perception
It takes persistence
Some like "cold turkeys", some like gradual
change
Be open about it, tell your colleagues!!
Luckily...
There is no reason to be embarrassed about
your "agile addictions".
Some of my addictions
Test-Driven Development
Continuous Integration
Pair Programming
Being Cross-Functional
Running
Winter Swimming
Fruit
Coffee
Vitamin D
Flossing my teeth
Agile: I do it for
myself!
But remember...
Don't Do Drugs!
of@silverbullet.dk
@olefriis
www.silverbullet.dk
A Few References
Kent Beck: Ease at Work: http://www.youtube.com/playlist?
list=PLE9763518A2765373
100% time: http://cemerick.com/2013/02/15/100-time/
Programmers and Chefs: http://www.codinghorror.
com/blog/2006/05/programmers-and-chefs.html

Mais conteúdo relacionado

Mais de C4Media

Mais de C4Media (20)

High Performing Teams Act Like Owners
High Performing Teams Act Like OwnersHigh Performing Teams Act Like Owners
High Performing Teams Act Like Owners
 
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to JavaDoes Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
 
Service Meshes- The Ultimate Guide
Service Meshes- The Ultimate GuideService Meshes- The Ultimate Guide
Service Meshes- The Ultimate Guide
 
Shifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CDShifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CD
 
CI/CD for Machine Learning
CI/CD for Machine LearningCI/CD for Machine Learning
CI/CD for Machine Learning
 
Fault Tolerance at Speed
Fault Tolerance at SpeedFault Tolerance at Speed
Fault Tolerance at Speed
 
Architectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep SystemsArchitectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep Systems
 
ML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.jsML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.js
 
Build Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerBuild Your Own WebAssembly Compiler
Build Your Own WebAssembly Compiler
 
User & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix ScaleUser & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix Scale
 
Scaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's EdgeScaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's Edge
 
Make Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home EverywhereMake Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home Everywhere
 
The Talk You've Been Await-ing For
The Talk You've Been Await-ing ForThe Talk You've Been Await-ing For
The Talk You've Been Await-ing For
 
Future of Data Engineering
Future of Data EngineeringFuture of Data Engineering
Future of Data Engineering
 
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreAutomated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
 
Navigating Complexity: High-performance Delivery and Discovery Teams
Navigating Complexity: High-performance Delivery and Discovery TeamsNavigating Complexity: High-performance Delivery and Discovery Teams
Navigating Complexity: High-performance Delivery and Discovery Teams
 
High Performance Cooperative Distributed Systems in Adtech
High Performance Cooperative Distributed Systems in AdtechHigh Performance Cooperative Distributed Systems in Adtech
High Performance Cooperative Distributed Systems in Adtech
 
Rust's Journey to Async/await
Rust's Journey to Async/awaitRust's Journey to Async/await
Rust's Journey to Async/await
 
Opportunities and Pitfalls of Event-Driven Utopia
Opportunities and Pitfalls of Event-Driven UtopiaOpportunities and Pitfalls of Event-Driven Utopia
Opportunities and Pitfalls of Event-Driven Utopia
 
Datadog: a Real-Time Metrics Database for One Quadrillion Points/Day
Datadog: a Real-Time Metrics Database for One Quadrillion Points/DayDatadog: a Real-Time Metrics Database for One Quadrillion Points/Day
Datadog: a Real-Time Metrics Database for One Quadrillion Points/Day
 

Último

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 

Confessions of an Agile Addict

  • 1. Confessions of an Agile Addict Ole Friis Østergaard of@silverbullet.dk @olefriis www.silverbullet.dk
  • 2. InfoQ.com: News & Community Site • 750,000 unique visitors/month • Published in 4 languages (English, Chinese, Japanese and Brazilian Portuguese) • 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 / month Watch the video with slide synchronization on InfoQ.com! http://www.infoq.com/presentations /agile-addict-confessions
  • 3. Presented at QCon London www.qconlondon.com Purpose of QCon - to empower software development by facilitating the spread of knowledge and innovation Strategy - practitioner-driven conference designed for YOU: influencers of change and innovation in your teams - speakers and topics driving the evolution and innovation - connecting and catalyzing the influencers and innovators Highlights - attended by more than 12,000 delegates since 2007 - held in 9 cities worldwide
  • 4. Me? Programmer interested in good development practices iOS Android Grails Ruby Rails Sinatra TDD JavaScript Java Groovy HTML5 Angular SCRUM Kanban
  • 5. Not me? Famous Thought leader Extrovert Expert on everything Seasoned speaker Native English-speaking Drug addict Psychiatrist
  • 6. You Developer/ Programmer Agile Want to enjoy your job Want to evolve Want to learn
  • 7. The point? Get addicted to the right stuff. Love your work. Feel great about yourself. Be agile.
  • 8. The plan What's an addiction? Agile practices Agile addictions Me! Me! Me!
  • 11. About addictions There are habits and addictions. Habit: Something you "just do". Addiction: You feel it in your guts if you're missing it for too long.
  • 12. About addictions There are habits and addictions. Habit: Something you "just do". Addiction: You feel it in your guts if you're missing it for too long. Impaired control, continued use despite consequences, and denial...
  • 17. Test-Driven Development Specify before you code Makes you write fewer bugs Helps you design better systems Gives you tools to document behaviour Helps managing risk when refactoring Still a very rare sight (at least in Denmark)
  • 18. Doing Retrospectives You and your team sit down an hour or two and discuss what happened in the past sprint You focus on getting a little bit better in the next sprint, by not repeating past mistakes and by strengthening your successes Maybe you add in an experiment to the coming sprint?
  • 19. Pair Programming You pair up with a teammate One at the keyboard, another "driving" Leads to better design Leads to more shared knowledge Leads to better personal interactions on team Leads to "less cheating"
  • 20. Cross-Functional Teams There's no "one guy" who knows how to do one thing Everybody can join in on different parts of the system
  • 21. Speaking to customers "Agile" is mostly about feedback Ultimately, the best feedback is from whomever is going to use your product The sooner, the better
  • 22. Not everybody agrees Tests are in principle "muda" (waste) Badly written tests are of no value Badly written tests are a pain to refactor The "beyond TDD" movement Pair programming takes two instead of one Pair programming requires communication skills Pair programming "is not for everybody" Customer doesn't always see the whole picture
  • 23. And this is not all Focusing on flow Systems thinking Continuous Integration ...
  • 24. About Cross-Funtional Teams... You do know what this is, and how to fix it, right? <<<<<<< HEAD:my_program.rb if (is_ok) ======= if (!is_invalid) >>>>>>> my_branch:my_program.rb
  • 25. How Does That Relate?!? Be Agile for your Own Sake
  • 26. You hate code reviews... It's like meetings: They split up your day They rip you out of context You don't really take the time necessary to understand all the code and tests And, actually, it's often too late to fix the underlying problems with the code
  • 27. ...so you pair program! Code review is part of the deal
  • 28. You hate bad atmosphere... Colleagues who don't speak together Not feeling welcome in the office
  • 29. ...so you do retrospectives! An amazing way to get things going smoothly More often than not, there are simple, underlying reasons for problems on a team Just talking about it helps - fixing it is even better
  • 30. From a famous guy... "My wife has often said that I'm creatively co-dependant and that basically, in order for my creative mind to be engaged at 100%, I need everybody in the vicinity to be in a good mood, to be happy and to be comfortable; negative energy pulls on me creatively. So if someone's uncomfortable or having a bad day in the room, I feel the need to perk that person up and try to make them laugh. It seems like this is a beautiful, Jesus-like, selfless act, when in actuality, a huge part of it is very selfish and needy on my part" - Will Smith http://www.darkhorizons.com/features/1312/will-smith-for-men-in-black-2 Image from Wikipedia
  • 31. You're addicted to positive feedback... Isn't that what we go to work for? We're simple creatures
  • 32. ...so we speak to customers! Surely, not everything from them sounds sweet But try starting a dialog, and you'll find that they are extremely thankful for the simple fact that you listen to them Often very simple improvements make your customer the sweetest person in the world
  • 33. You're a social being... Sitting alone in a cubicle is a sad life You get no input, you don't evolve
  • 34. ...so you pair up! Pair programming is for all social beings You get to know your colleagues much better You fight, you cry, you laugh... and get loads of input all the time
  • 35. You're addicted to hot- fixing Gives fame and kudos saving the production systems from disaster The boss considers you a vital resource You're a hero! It's a great rush
  • 36. ...so you write crappy code Hot fixes means doing a quick'n'dirty job Being the only person alive who can mend the code gives a bit of status ...and if it works, why change?
  • 37. You're afraid of critique... Critique hurts Customers don't always understand the deeper workings of software Your colleagues have other ways of doing stuff
  • 38. ...so you don't speak to customers Their opinion often gets in the way It takes a lot of effort to explain your point of view
  • 39. ...and you don't pair program There's so much arguing going on You'll lose half of your discussions
  • 41. Haven't been agile all my life... Start of my career: Waterfall-only company Felt bad about some things, but thought this was the way to be professional Got introduced later to agile practices, and it resonated with me. Why?
  • 42. Becoming aware of my own addictions We all have a number of addictions Finding out which takes reflection I've thought a bit about what a sad person I am
  • 43. I die if I sit by myself in a corner! Would never be able to work from home (regularly) Need to chat Need to discuss ideas and solutions
  • 44. ...so I pair program Gives me so much professional input I learn something new each day Keeps my motivation going ...and turns colleagues into friends
  • 45. When starting a new task... ...I always start by asking "How do I test this?" After several years practising TDD, I've become addicted It just feels plain wrong to edit code without tests - my guts twist
  • 46. TDD and flossing your teeth Testing is like flossing your teeth (Kent Beck) - you might not get the full benefit right away, but in time you'll be sorry if you don't I floss my teeth, and it's become a habit/addiction just like brushing my teeth
  • 47. TDD vs. slot machines "Traditional coding" has been compared to sitting by a slot machine You seldom win, but when you do, your brain releases enough endorphins that you'll keep going TDD at first seems slower, but keeps the rhythm going
  • 48. Messy kitchen I cannot work in a messy kitchen Need to clean up before cooking Need to clean up while cooking Feel claustrophobic otherwise Same with code
  • 50. Embrace change... You want to get rid of your bad addictions Keep your good addictions And maybe collect a few good addictions?
  • 51. First step: Reflect & Admit Do any of the mentioned addictions resonate with you? Should they? Is there anything you'd like to change?
  • 52. Then... practice!! It takes time to change your perception It takes persistence Some like "cold turkeys", some like gradual change Be open about it, tell your colleagues!!
  • 53. Luckily... There is no reason to be embarrassed about your "agile addictions".
  • 54. Some of my addictions Test-Driven Development Continuous Integration Pair Programming Being Cross-Functional Running Winter Swimming Fruit Coffee Vitamin D Flossing my teeth
  • 55. Agile: I do it for myself!
  • 56. But remember... Don't Do Drugs! of@silverbullet.dk @olefriis www.silverbullet.dk
  • 57. A Few References Kent Beck: Ease at Work: http://www.youtube.com/playlist? list=PLE9763518A2765373 100% time: http://cemerick.com/2013/02/15/100-time/ Programmers and Chefs: http://www.codinghorror. com/blog/2006/05/programmers-and-chefs.html