legacy code is fear @codecamp iasi 25 10 2014

36
Legacy Code is Fear www.mozaicworks.com

Upload: adi-bolboaca

Post on 13-Jul-2015

82 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Legacy Code is Fear @Codecamp Iasi 25 10 2014

Legacy Code is Fear

www.mozaicworks.com

Page 2: Legacy Code is Fear @Codecamp Iasi 25 10 2014

Me

Adi BolboacăProgrammer

Organizational & TechnicalTrainer & Coach www.mozaicworks.com

Page 3: Legacy Code is Fear @Codecamp Iasi 25 10 2014

Legacy code scenario

Current situation vs Better situation

Not knowing what the actual code doesVs

Gradually understanding the code and changing it to the minimum

www.mozaicworks.com

Page 4: Legacy Code is Fear @Codecamp Iasi 25 10 2014

Legacy code scenario

Reasons why to change existing code:

Fix a bugAdd a feature

Have automated tests for the system core

www.mozaicworks.com

Page 5: Legacy Code is Fear @Codecamp Iasi 25 10 2014

Legacy code scenario

Reasons why not to change existing code:

It looks uglyI would like to see nicer code

I want to update to newest framework...

www.mozaicworks.com

Page 6: Legacy Code is Fear @Codecamp Iasi 25 10 2014

Current situation

You need to add some features to an existing old projectwww.mozaicworks.com

Page 7: Legacy Code is Fear @Codecamp Iasi 25 10 2014

Current situation

They tell you that you have a very short time to do it www.mozaicworks.com

Page 8: Legacy Code is Fear @Codecamp Iasi 25 10 2014

Current situation

You are afraid to change the system www.mozaicworks.com

Page 9: Legacy Code is Fear @Codecamp Iasi 25 10 2014

Current situation

The time feels waaaaay to shortwww.mozaicworks.com

Page 10: Legacy Code is Fear @Codecamp Iasi 25 10 2014

Current situation

And you tell your manager: I cannot do it

www.mozaicworks.com

Page 11: Legacy Code is Fear @Codecamp Iasi 25 10 2014

Current situation

But the manager says...www.mozaicworks.com

Page 12: Legacy Code is Fear @Codecamp Iasi 25 10 2014

Current situation

It takes double the time you said

www.mozaicworks.com

Page 13: Legacy Code is Fear @Codecamp Iasi 25 10 2014

Current situation

Your company loses money.Your customer loses money.

www.mozaicworks.com

Page 14: Legacy Code is Fear @Codecamp Iasi 25 10 2014

Current situation

Everyone is stressed

www.mozaicworks.com

Page 15: Legacy Code is Fear @Codecamp Iasi 25 10 2014

Better situation

Someone signs a contract to add some features to an existing old

project www.mozaicworks.com

Page 16: Legacy Code is Fear @Codecamp Iasi 25 10 2014

Better situation

Your team starts writing characterization tests to understand the change www.mozaicworks.com

Page 17: Legacy Code is Fear @Codecamp Iasi 25 10 2014

Better situation

Your team writes end-to-end tests to understand the external

dependencies

www.mozaicworks.com

Page 18: Legacy Code is Fear @Codecamp Iasi 25 10 2014

Better situation

Your team splits the end-to-end tests into integration tests and

unit tests

www.mozaicworks.com

Page 19: Legacy Code is Fear @Codecamp Iasi 25 10 2014

Better situation

Your team starts adding more unit tests around the area that needs

to be modified

www.mozaicworks.com

Page 20: Legacy Code is Fear @Codecamp Iasi 25 10 2014

Better situation

Every member of the team is using the refactoring skills to improve

the design

www.mozaicworks.com

Page 21: Legacy Code is Fear @Codecamp Iasi 25 10 2014

Better situation

Your team adds the new feature. It is fully test automated.

www.mozaicworks.com

Page 22: Legacy Code is Fear @Codecamp Iasi 25 10 2014

Better situation

Your testers make the final exploratory and manual tests

www.mozaicworks.com

Page 23: Legacy Code is Fear @Codecamp Iasi 25 10 2014

Better situation

The team delivers on time.www.mozaicworks.com

Page 24: Legacy Code is Fear @Codecamp Iasi 25 10 2014

Better situation

Your company wins money and respect from your customer.

Your customer wins money and has trust in you.

www.mozaicworks.com

Page 25: Legacy Code is Fear @Codecamp Iasi 25 10 2014

The problem: Legacy code is fear

Our unknowns are making us afraid

Automating tests minimizes the unknowns

By automating tests we can increase confidence

www.mozaicworks.com

Page 26: Legacy Code is Fear @Codecamp Iasi 25 10 2014

Very nice

But how to do this?

www.mozaicworks.com

Page 27: Legacy Code is Fear @Codecamp Iasi 25 10 2014

Find the known unknowns of the team

Talk with the team

Find what they do not know: domain knowledge, programming languages, unit testing, acceptance testing, frameworks,

etc

www.mozaicworks.com

Page 28: Legacy Code is Fear @Codecamp Iasi 25 10 2014

Make small scale experiments

Use a smaller problem at first

Learn how to write charaterization tests for that problem

Use coding dojos and mob programming to practice together

www.mozaicworks.com

Page 29: Legacy Code is Fear @Codecamp Iasi 25 10 2014

The littany against fear

I must not fear. Fear is the mind-killer.

Fear is the little-death that brings total obliteration. I will face my fear.

I will permit it to pass over me and through me. And when it has gone past I will turn the inner eye to

see its path. Where the fear has gone there will be nothing.... only I

will remain

Dune by Frank Herbertwww.mozaicworks.com

Page 30: Legacy Code is Fear @Codecamp Iasi 25 10 2014

Solve the legacy code fear: invest

Invest in the future business agility of your company

www.mozaicworks.com

Page 31: Legacy Code is Fear @Codecamp Iasi 25 10 2014

Solve the legacy code fear: learn

Find the unknowns of the teamMake a medium-term learning program

Make small scale experimentsLearn

Extend to bigger scale experimentsLearn

Do a small change request in productionLearn

www.mozaicworks.com

Page 32: Legacy Code is Fear @Codecamp Iasi 25 10 2014

What's next?

Read the Working Effectively with Legacy code book by Michael Feathers

Find a good trainer to help the team learn

Build learning program with team&trainer

Learn from each experiencewww.mozaicworks.com

Page 33: Legacy Code is Fear @Codecamp Iasi 25 10 2014

Questions?

www.mozaicworks.com

Page 35: Legacy Code is Fear @Codecamp Iasi 25 10 2014

Extend your mentoring & training capacityAccelerate learning through communities of practiceGrow your functional leaders and top talents

http://www.mozaicworks.com

[email protected]

@adibolb

Page 36: Legacy Code is Fear @Codecamp Iasi 25 10 2014

References

http://upload.wikimedia.org/wikipedia/commons/7/7f/Snake_warning_sign.jpghttp://upload.wikimedia.org/wikipedia/commons/4/44/CatLolCatExample.jpghttp://upload.wikimedia.org/wikipedia/commons/8/88/I_IZ_SERIUS_ADMNIM_THIZ_IZ_SERIUS_BIZNIS_lolcat.jpghttp://pixabay.com/p-160097/?no_redirecthttp://www.damemagazine.com/sites/default/files/styles/feature_wide/public/field/image/biological-clock.jpg?itok=WSI67yEZhttp://fc01.deviantart.net/fs71/i/2012/149/6/9/no__9gag__by_hujikari-d51hu4l.jpg http://upload.wikimedia.org/wikipedia/commons/1/12/We_Can_Do_It!.jpghttp://upload.wikimedia.org/wikipedia/commons/2/25/Dive_hand_signal_Descend.pnghttp://pixabay.com/go/?t=/static/uploads/photo/2012/04/18/13/01/sign-36968_150.png%3Fattachmenthttp://pixabay.com/static/uploads/photo/2014/06/03/19/38/plate-361516_640.jpg http://upload.wikimedia.org/wikipedia/commons/0/0c/Dive_hand_signal_OK_1.png

www.mozaicworks.com