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

"Effective approaches on working with huge ​˜le...

"Effective approaches on working with huge ​˜legacy˜​ codebase" from Paul Taykalo

Did you ever face solution that has been transforming to legacy even before production? Paul Taykalo will reveal the scenarios how to handle this, how to postpone code transformation into legacy so the code will leave comfortable to work with through the whole project lifecycle. What's included: refactoring, unit tets, how to give the new life to already existing legacy, what's tech debt and how to pay it and even more interesting things. And the main one - how to stay with stable and qualitative feature delivery.

uaMobiTech

July 28, 2016
Tweet

More Decks by uaMobiTech

Other Decks in Programming

Transcript

  1. EFFECTIVE APPROACHES WHEN WORKING WITH HUGE LEGACY CODEBASE BY PAUL

    TAYKALO, STANFY 1 — Paul Taykalo, UMT 2016
  2. PLAN > What is Legacy Code > Problems with Legacy

    Code > Dealing with Legacy Code > Features vs Refactoring balance > Measure our Success :) 3 — Paul Taykalo, UMT 2016
  3. Code without tests is bad code. It doesn't matter how

    well written it is — Michael C. Feathers 7 — Paul Taykalo, UMT 2016
  4. UNMAINTAINBLE CODE GENERATORS > "Technical Debt" > Code without Tests

    > Yet Another Architecture > Super Awesome Library X > Other people* 17 — Paul Taykalo, UMT 2016
  5. JUST STOP WRITING CODE! > Less code - less errors

    > Less code is easier to read 20 — Paul Taykalo, UMT 2016
  6. If you don't write tests you will never learn how

    to write them, its better to write bad tests then not to write any 22 — Paul Taykalo, UMT 2016
  7. ADD TESTS ON CHANGES YOU MAKE DON'T USE "CHANGE AN

    PRAY" APPROACH 31 — Paul Taykalo, UMT 2016
  8. UNDERSTANDING WHAT'S GOING ON > Crashes > Bugs > Deadlocks

    > Data loss > Unexpected behaviours 38 — Paul Taykalo, UMT 2016
  9. UNDERSTANDING WHAT'S GOING ON CRASH LOGGING TOOLS > Crashlytics >

    HockeyApp > TestFlight 40 — Paul Taykalo, UMT 2016
  10. UNDERSTANDING WHAT'S GOING ON DEBUGGING TOOLS > Xcode > LLDB

    > Chisel > View Debugging 42 — Paul Taykalo, UMT 2016
  11. BUT EACH FEATURE > Adds more code > Adds complexity

    > Increases project size > Increases testing time 47 — Paul Taykalo, UMT 2016
  12. DIFFERENT FEATURES TYPES > Affects nothing (independent) > Affects one

    localized previous feature > Affects multiple previous features > Affects all application 50 — Paul Taykalo, UMT 2016
  13. MEASURE PROJECT HEALTH > Tests count > Test coverage >

    Code Lines Count > Tests Lines Count 54 — Paul Taykalo, UMT 2016
  14. MEASURE PROJECT HEALTH > Crash-free users/sessions > Number of days

    since last incident > Amount of bugs create in the last X days > Regressions count 55 — Paul Taykalo, UMT 2016
  15. RECAP > Get the project status > Set up goals

    > Tack changes > Stop writing Legacy Code 59 — Paul Taykalo, UMT 2016
  16. EFFECTIVE APPROACHES WHEN WORKING WITH HUGE LEGACY CODEBASE BY PAUL

    TAYKALO, STANFY 62 — Paul Taykalo, UMT 2016