Upgrade to Pro — share decks privately, control downloads, hide ads and more …

How to face legacy projects

How to face legacy projects

Cheesecake Labs

August 21, 2019
Tweet

More Decks by Cheesecake Labs

Other Decks in Technology

Transcript

  1. How to face Legacy Projects Learn what to do when

    legacy codes become an enemy of the project
  2. NO

  3. Definitions of legacy codes • Legacy code is source code

    that relates to a no-longer supported or manufactured operating system or other computer technology. • All Code Is Legacy Code. • A legacy code is a undocumented or untested code that doesn't have any quality assurance and understanding.
  4. • Your time is a box • Make sure your

    task is compatible #1 - Know how to use your time
  5. #2 - Let's monitoring • Sonarqube - Code Quality and

    Security • Elasticsearch - APM Server • Refactoring based on feeling is a risk
  6. #3 - Test cases are welcome Your increments need to

    be solids and the tests will be ensure the other parts of the system keep working.
  7. #4 - Make Patterns your best friends Patterns are important

    to keep the consistency and understanding of the project. • Repository Pattern • Singleton Pattern • Factory Pattern • S.O.L.I.D • Linter's
  8. #5 - Learn to say "NO" Some time it's important

    to be incisive and to say "no" to some tasks.
  9. #6 - Have a Good Communication Keep your team, your

    leader and customer known about your decisions. Bring exemples, other perspectives to solution the problem. You need to be simple, transparent and honest with the project and yourself.
  10. Opacity The motive of the project is not clean. It

    is confused and incomprehensible.
  11. Technical Debt • This is a debt that is assumed

    when choosing a design or an easy approach in the short time but with a negative impact on the long time. • “A dívida técnica é similar à dívida financeira. Assim como a dívida financeira, a dívida técnica exige o pagamento de juros. Estes vêm na forma de esforço extra, que devem ser pagos em desenvolvimentos futuros por conta da escolha de um design mais rápido e de baixa qualidade." (Martin Fowler)