Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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
  • Sex in your area is here: ♥♥♥ ♥♥♥
    Are you sure you want to  Yes  No
    Your message goes here
  • Dating for everyone is here: ❶❶❶ ❶❶❶
    Are you sure you want to  Yes  No
    Your message goes here

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

  1. 1. Legacy Code is Fear
  2. 2. Me Adi Bolboacă Programmer Organizational & Technical Trainer & Coach
  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
  4. 4. Legacy code scenario Reasons why to change existing code: Fix a bug Add a feature Have automated tests for the system core
  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 ...
  6. 6. Current situation You need to add some features to an existing old
  7. 7. Current situation They tell you that you have a very short time to do it
  8. 8. Current situation You are afraid to change the system
  9. 9. Current situation The time feels waaaaay to short
  10. 10. Current situation And you tell your manager: I cannot do it
  11. 11. Current situation But the manager says...
  12. 12. Current situation It takes double the time you said
  13. 13. Current situation Your company loses money. Your customer loses money.
  14. 14. Current situation Everyone is stressed
  15. 15. Better situation Someone signs a contract to add some features to an existing old project
  16. 16. Better situation Your team starts writing characterization tests to understand the change
  17. 17. Better situation Your team writes end-to-end tests to understand the external dependencies
  18. 18. Better situation Your team splits the end-to-end tests into integration tests and unit tests
  19. 19. Better situation Your team starts adding more unit tests around the area that needs to be modified
  20. 20. Better situation Every member of the team is using the refactoring skills to improve the design
  21. 21. Better situation Your team adds the new feature. It is fully test automated.
  22. 22. Better situation Your testers make the final exploratory and manual tests
  23. 23. Better situation The team delivers on time.
  24. 24. Better situation Your company wins money and respect from your customer. Your customer wins money and has trust in you.
  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
  26. 26. Very nice But how to do this?
  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
  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
  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
  30. 30. Solve the legacy code fear: invest Invest in the future business agility of your company
  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
  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
  33. 33. Thank you!
  34. 34. Contact Me Working Fast and SAFE with Existing Product Inception Code retreat See the slides at
  35. 35. Extend your mentoring & training capacity Accelerate learning through communities of practice Grow your functional leaders and top talents @adibolb
  36. 36. References!.jpg