40
Creating change from within The Agile Developer story By Dror Helper

Creating change from within - Agile Practitioners 2012

Embed Size (px)

DESCRIPTION

Faced with management that do not care about "being agile" what can a single developer do? Quite a lot! Every developer has the power to improve the organization he works in in small iterative steps – and I can show you how. If you want to make the change and don't know where to start – look no further, in this session I'll share my experience and show a few tips and tricks I learnt. As well as discuss the do and don'ts that can make all the. - How to be agile developer in a waterfall company. - Influencing people without formal authority. - Using the right practices that makes the difference - How to avoid alienating people - Discovering your allies - Know when to fight and when to "retreat" and cut your losses - Making a change without disrupting the daily routine - What being an agile evangelist is all about

Citation preview

Page 1: Creating change from within - Agile Practitioners 2012

Creating change from within

The Agile Developer storyByDror Helper

Page 2: Creating change from within - Agile Practitioners 2012

About.Me• Software Developer 9+ years

• Team’s technical lead

• TDD/Unit testing enthusiast

• Some SCRUM/Kanban background

• Blogger – http://blog.drorhelper.com

Page 3: Creating change from within - Agile Practitioners 2012

The problem with Agile

I don’t want to do this!

We don’t have time It would never work

in this project

Page 4: Creating change from within - Agile Practitioners 2012

So what can a single person do?

Page 5: Creating change from within - Agile Practitioners 2012

Let me tell you about the last year and

a half

Page 6: Creating change from within - Agile Practitioners 2012

The cast

Manager

Developer

Developer

Consultant Me

Page 7: Creating change from within - Agile Practitioners 2012

Team’s methodology• Unit tests – more or less

• Iteration tracking?

• Manual deploy builds – from developer’s PC

• Code reviews

Page 8: Creating change from within - Agile Practitioners 2012

My 1st week on the job

Page 9: Creating change from within - Agile Practitioners 2012

Let’s do TDD!

Page 10: Creating change from within - Agile Practitioners 2012

Analysis• Took two days to fix 40% of tests and make all of

the test run

• Find what are the main issues – and focus on themo Not readableo Using logic inside testo Testing too mucho Hand rolled mockso Scenarios hiding as unit testso Highly coupled code

Page 11: Creating change from within - Agile Practitioners 2012

Teach the team

And decide on next steps

Page 12: Creating change from within - Agile Practitioners 2012

CI server

Source Control

Build Server

There you go

What’s new?

Build Agents

Star

t wor

king

Build

artif

acts

Source Control

Commit

Page 13: Creating change from within - Agile Practitioners 2012

Immediate steps• Using MSTest• Write test before fixing bug• Fix existing tests when implementing new

features• Delete obsolete tests

Page 14: Creating change from within - Agile Practitioners 2012

Code reviews

Page 15: Creating change from within - Agile Practitioners 2012

Then came mocking• Hard to explain at the beginning• Instead show them!

o Free tools – low cost upfronto Commercial products

• Get rid of existing hand-rolled mocks

Page 16: Creating change from within - Agile Practitioners 2012

And excuses• “I didn’t have enough time so I didn’t write a

test”• Crisis mode• I cannot test it – so I won’t…• There’s no need to test everything • It’s much better to have one big test

• Remember not to be discouraged

Page 17: Creating change from within - Agile Practitioners 2012

Today• More than 3000 tests• Good code coverage• Most features are developed using TDD• CI server run all tests on commit

• Change code without fear

Page 18: Creating change from within - Agile Practitioners 2012

How to decide what to do?

Page 19: Creating change from within - Agile Practitioners 2012

Total cost of change

Cost of

Change

Participants

Effort (Time)

Cost (Money)

Previous investment

Emotional Value

Maintenance

Page 20: Creating change from within - Agile Practitioners 2012

The most difficult task

Replace existing tool or

methodology

Hard!

Page 21: Creating change from within - Agile Practitioners 2012

Your knowledge

Subject

domain

What you

know

Gap

Page 22: Creating change from within - Agile Practitioners 2012

Iteration tracking

Page 23: Creating change from within - Agile Practitioners 2012

In the beginning

Page 24: Creating change from within - Agile Practitioners 2012

Post-it + wall

Page 25: Creating change from within - Agile Practitioners 2012

Excel in shared folder

Page 26: Creating change from within - Agile Practitioners 2012

TFS + Work item manager

Page 27: Creating change from within - Agile Practitioners 2012

Tips and tricks

Page 28: Creating change from within - Agile Practitioners 2012

The power of code reviews

Page 29: Creating change from within - Agile Practitioners 2012

Effective Code reviews• Advise don’t force• Review the code not the person• It’s ok to discuss the good things as well

• You should get reviewed as well!• After a while team members can review each

other

Page 30: Creating change from within - Agile Practitioners 2012

Have the right attitude• Be positive• Don’t tell them what to so - suggest

improvements• Don’t force – convince• Be ready to change if proven wrong• Don’t be “that guy”

Page 31: Creating change from within - Agile Practitioners 2012

Communicate!• Email• Phone call• Face to face• Presentation• Coder reviews• Pair programming• Daily meetings

Page 32: Creating change from within - Agile Practitioners 2012

Create success record

Page 33: Creating change from within - Agile Practitioners 2012

Enlist Help Because You cannot do it all by yourself

Page 34: Creating change from within - Agile Practitioners 2012

Change is iterative• Hard to perform big changes overnight• Small incremental changes• Teach the team about the “boy scout rule”.

Page 35: Creating change from within - Agile Practitioners 2012

Be pragmatic!• Every action should have a purpose• If it doesn’t work – change it!• Names are not important – just what you do• Practices can be adapted for the team• Don’t be a strict task master

Know where to draw the line

Page 36: Creating change from within - Agile Practitioners 2012

Journey not a destination

Page 37: Creating change from within - Agile Practitioners 2012

Aftermath

Page 38: Creating change from within - Agile Practitioners 2012

Team growth opportunity/challenge

Page 39: Creating change from within - Agile Practitioners 2012

The end?• TDD & unit tests• CI server• Code reviews before commit• Automatic deployment• Task board and iterations• Better estimations• Faster time to deploy

Page 40: Creating change from within - Agile Practitioners 2012

Thank you