Legacy Code is Fear @ALE Unconference 2014 Krakow 2014 08 21


Published on

Legacy code is fear. The teams that need to deal with legacy code fear changing the code because of their unknowns. If you want to an agile business in the real sense, you need to help the team have less fear about changing the legacy system.

Find the unknowns of the teams, create a gradual mid-term learning program with the teams and in this way they will feel safer to change the existing code.

Published in: Software
  • Be the first to comment

  • Be the first to like this

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

No notes for slide

Legacy Code is Fear @ALE Unconference 2014 Krakow 2014 08 21

  1. 1. Legacy Code is Fear www.mozaicworks.com
  2. 2. Me Adi Bolboacă Programmer Organizational & Technical Trainer & Coach www.mozaicworks.com
  3. 3. Legacy code scenario Current situation vs Better situation Not knowing what the actual code does Vs Gradually understanding the code and changing it to the minimum www.mozaicworks.com
  4. 4. Legacy code scenario Reasons why to change existing code: Fix a bug Add a feature Have automated tests for the system core www.mozaicworks.com
  5. 5. Legacy code scenario Reasons why not to change existing code: It looks ugly I would like to see nicer code I want to update to newest framework ... www.mozaicworks.com
  6. 6. Current situation You need to add some features to an existing old projectwww.mozaicworks.com
  7. 7. Current situation They tell you that you have a very short time to do it www.mozaicworks.com
  8. 8. Current situation You are afraid to change the system www.mozaicworks.com
  9. 9. Current situation The time feels waaaaay to short www.mozaicworks.com
  10. 10. Current situation And you tell your manager: I cannot do it www.mozaicworks.com
  11. 11. Current situation But the manager says... www.mozaicworks.com
  12. 12. Current situation It takes double the time you said www.mozaicworks.com
  13. 13. Current situation Your company loses money. Your customer loses money. www.mozaicworks.com
  14. 14. Current situation Everyone is stressed www.mozaicworks.com
  15. 15. Better situation Someone signs a contract to add some features to an existing old project www.mozaicworks.com
  16. 16. Better situation Your team starts writing characterization tests to understand the change www.mozaicworks.com
  17. 17. Better situation Your team writes end-to-end tests to understand the external dependencies www.mozaicworks.com
  18. 18. Better situation Your team splits the end-to-end tests into integration tests and unit tests www.mozaicworks.com
  19. 19. Better situation Your team starts adding more unit tests around the area that needs to be modified www.mozaicworks.com
  20. 20. Better situation Every member of the team is using the refactoring skills to improve the design www.mozaicworks.com
  21. 21. Better situation Your team adds the new feature. It is fully test automated. www.mozaicworks.com
  22. 22. Better situation Your testers make the final exploratory and manual tests www.mozaicworks.com
  23. 23. Better situation The team delivers on time. www.mozaicworks.com
  24. 24. Better situation Your company wins money and respect from your customer. Your customer wins money and has trust in you. www.mozaicworks.com
  25. 25. 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
  26. 26. Very nice But how to do this? www.mozaicworks.com
  27. 27. 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
  28. 28. 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
  29. 29. 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 Herbert www.mozaicworks.com
  30. 30. Solve the legacy code fear: invest Invest in the future business agility of your company www.mozaicworks.com
  31. 31. Solve the legacy code fear: learn Find the unknowns of the team Make a medium-term learning program Make small scale experiments Learn Extend to bigger scale experiments Learn Do a small change request in production Learn www.mozaicworks.com
  32. 32. 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 experience www.mozaicworks.com
  33. 33. Thank you! www.mozaicworks.com
  34. 34. Contact Me Working Fast and SAFE with Existing Product Inception Code retreat www.mozaicworks.com See the slides at http://www.slideshare.net/adibolb
  35. 35. Extend your mentoring & training capacity Accelerate learning through communities of practice Grow your functional leaders and top talents http://www.mozaicworks.com adrian.bolboaca@mozaicworks.com @adibolb
  36. 36. References http://upload.wikimedia.org/wikipedia/commons/7/7f/Snake_warning_sign.jpg http://upload.wikimedia.org/wikipedia/commons/4/44/CatLolCatExample.jpg http://upload.wikimedia.org/wikipedia/commons/8/88/I_IZ_SERIUS_ADMNIM_THIZ_IZ_SERIUS_BIZNIS_lolcat.jpg http://pixabay.com/p-160097/?no_redirect http://www.damemagazine.com/sites/default/files/styles/feature_wide/public/field/image/biological-clock.jpg?ito http://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!.jpg http://upload.wikimedia.org/wikipedia/commons/2/25/Dive_hand_signal_Descend.png http://pixabay.com/go/?t=/static/uploads/photo/2012/04/18/13/01/sign-36968_150.png%3Fattachment http://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