Confessions of an Agile Addict Ole Friis stergaard - - PowerPoint PPT Presentation

confessions of an agile addict
SMART_READER_LITE
LIVE PREVIEW

Confessions of an Agile Addict Ole Friis stergaard - - PowerPoint PPT Presentation

Confessions of an Agile Addict Ole Friis stergaard of@silverbullet.dk @olefriis www.silverbullet.dk Me? Grails JavaScript iOS Java Programmer interested in good development Android Sinatra practices Groovy Angular Ruby Rails


slide-1
SLIDE 1

Confessions of an Agile Addict

Ole Friis Østergaard

  • f@silverbullet.dk
@olefriis www.silverbullet.dk
slide-2
SLIDE 2

Me?

Programmer interested in good development practices

iOS Android Grails Ruby Rails Sinatra TDD JavaScript Java Groovy HTML5 Angular SCRUM Kanban
slide-3
SLIDE 3

Not me?

Famous

Thought leader Extrovert Expert on everything Seasoned speaker Native English-speaking Drug addict Psychiatrist
slide-4
SLIDE 4

You

Developer/ Programmer

Agile Want to enjoy your job Want to evolve Want to learn
slide-5
SLIDE 5

The point?

Get addicted to the right stuff. Love your work. Feel great about yourself. Be agile.

slide-6
SLIDE 6

The plan

What's an addiction? Agile practices Agile addictions Me! Me! Me!

slide-7
SLIDE 7

Session Code

3374

slide-8
SLIDE 8

Addictions

slide-9
SLIDE 9

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.

slide-10
SLIDE 10

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...

slide-11
SLIDE 11

Examples Drugs

slide-12
SLIDE 12

Examples Running

slide-13
SLIDE 13

Examples Sex

Image from Wikipedia
slide-14
SLIDE 14

Agile Practices

slide-15
SLIDE 15

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)

slide-16
SLIDE 16

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?

slide-17
SLIDE 17

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"

slide-18
SLIDE 18

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

slide-19
SLIDE 19

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

slide-20
SLIDE 20

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

slide-21
SLIDE 21

And this is not all

Focusing on flow Systems thinking Continuous Integration ...

slide-22
SLIDE 22

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

slide-23
SLIDE 23

How Does That Relate?!?

Be Agile for your Own Sake

slide-24
SLIDE 24

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

slide-25
SLIDE 25

...so you pair program!

Code review is part of the deal

slide-26
SLIDE 26

You hate bad atmosphere...

Colleagues who don't speak together Not feeling welcome in the office

slide-27
SLIDE 27

...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

slide-28
SLIDE 28

From a famous guy...

"My wife has often said that I'm creatively co-dependant and that basically, in

  • rder 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
slide-29
SLIDE 29

You're addicted to positive feedback...

Isn't that what we go to work for? We're simple creatures

slide-30
SLIDE 30

...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

slide-31
SLIDE 31

You're a social being...

Sitting alone in a cubicle is a sad life You get no input, you don't evolve

slide-32
SLIDE 32

...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

slide-33
SLIDE 33

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

slide-34
SLIDE 34

...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?

slide-35
SLIDE 35

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

slide-36
SLIDE 36

...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

slide-37
SLIDE 37

...and you don't pair program

There's so much arguing going on You'll lose half of your discussions

slide-38
SLIDE 38

Me! Me! Me!

slide-39
SLIDE 39

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?

slide-40
SLIDE 40

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

slide-41
SLIDE 41

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

slide-42
SLIDE 42

...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

slide-43
SLIDE 43

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

slide-44
SLIDE 44

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

slide-45
SLIDE 45

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

slide-46
SLIDE 46

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

slide-47
SLIDE 47

Controlling your Addictions

slide-48
SLIDE 48

Embrace change...

You want to get rid of your bad addictions Keep your good addictions And maybe collect a few good addictions?

slide-49
SLIDE 49

First step: Reflect & Admit

Do any of the mentioned addictions resonate with you? Should they? Is there anything you'd like to change?

slide-50
SLIDE 50

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!!

slide-51
SLIDE 51

Luckily...

There is no reason to be embarrassed about your "agile addictions".

slide-52
SLIDE 52

Some of my addictions

Test-Driven Development Continuous Integration Pair Programming Being Cross-Functional Running Winter Swimming Fruit Coffee Vitamin D Flossing my teeth
slide-53
SLIDE 53

Agile: I do it for myself!

slide-54
SLIDE 54

But remember... Don't Do Drugs!

  • f@silverbullet.dk
@olefriis www.silverbullet.dk
slide-55
SLIDE 55

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