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

A CTO always pays his Debts - Tech Rocks 2017

A CTO always pays his Debts - Tech Rocks 2017

Presentation about technical debt at www.videdressing.com and how we prioritized our tech refactoring project jointly with product management team using business criteria.
Presentation held at Station F , Paris for the "Tech Rocks 2017" conference.

Hervé LOURDIN

December 22, 2017
Tweet

More Decks by Hervé LOURDIN

Other Decks in Programming

Transcript

  1. "UN CTO PAIE TOUJOURS SES DETTES." A Story of a

    Technical Refactoring led the Lean way with Product Mangement ! : @HERVELOURDIN - [email protected]
  2. ▸ CTO & Co-CEO chez Videdressing ▸ Adepte et praticien

    Lean, Agiliste pragmatique ▸ Team Builder ▸ Ex Lean & Agile Partner chez @OCTOTechnology ▸ Co-founder of @AppaloosaStore 2 — Tech Rocks - Videdressing © - 2017
  3. A CTO always pays his debts. — T. Lanister 3

    — Tech Rocks - Videdressing © - 2017
  4. 1 - WHO WE ARE? 4 — Tech Rocks -

    Videdressing © - 2017
  5. LEAN / AGILE ORGANIZATION ▸ Product & Tech teams working

    on the same floor, 1 common spirit ▸ cross-functional team: PO, front & back developers, Designers ▸ iterative & incremental development: test fast, learn fast, improve ▸ 2 weeks scrumban iterations ▸ Release on the flow ▸ Stakeholders are integrated into projects 7 — Tech Rocks - Videdressing © - 2017
  6. A SIMPLE PLUG N' PLAY PROJECT ABOUT A NEW MEAN

    OF PAYMENT 9 — Tech Rocks - Videdressing © - 2017
  7. THE WAY WE LIKE TO SEE OUR PLATFORM 10 —

    Tech Rocks - Videdressing © - 2017
  8. ... BUT THE plug n' Play PROJECT ...TURNED OUT TO

    BE A COMPLETE FAILURE 12 — Tech Rocks - Videdressing © - 2017
  9. 3 - HOW TO COMMUNICATE ABOUT A REFOACTORING PROJECT? 19

    — Tech Rocks - Videdressing © - 2017
  10. HOW TO TELL TO A BOARD OF INVESTORS? (AND EXPLAIN)

    20 — Tech Rocks - Videdressing © - 2017
  11. HOW TO TELL ABOUT TECHNICAL DEBT? ▸ Show the effects

    (the 4 horsemen will help) 21 — Tech Rocks - Videdressing © - 2017
  12. HOW TO TELL ABOUT TECHNICAL DEBT? ▸ Show the effects

    (the 4 horsemen will help) ▸ Calculate and communicate the financial impact 21 — Tech Rocks - Videdressing © - 2017
  13. HOW TO TELL ABOUT TECHNICAL DEBT? ▸ Show the effects

    (the 4 horsemen will help) ▸ Calculate and communicate the financial impact ▸ Come with a plan 21 — Tech Rocks - Videdressing © - 2017
  14. HOW TO TELL ABOUT TECHNICAL DEBT? ▸ Show the effects

    (the 4 horsemen will help) ▸ Calculate and communicate the financial impact ▸ Come with a plan ▸ Design a business oriented plan 21 — Tech Rocks - Videdressing © - 2017
  15. 4 - HOW TO PRIORITIZE SUCH PROJECT? 22 — Tech

    Rocks - Videdressing © - 2017
  16. ▸ Trying to (re)understand how the machine is working 24

    — Tech Rocks - Videdressing © - 2017
  17. FAILED AT TRYING TO GET THE TRUTH FROM THE CODE

    26 — Tech Rocks - Videdressing © - 2017
  18. THIS PROCESS MAP WAS THE real first “release” OF THE

    PROJECT ... AND KILL SOME GOOD OLD MYTHS ABOUT HOW IT WAS MEANT TO WORK 30 — Tech Rocks - Videdressing © - 2017
  19. ANALYSIS CONCLUSIONS Payment & Order system is our spine. Having

    a seamless customer experience from online to offline is a physiological need. We must address it in priority. AtoZ rebuild of our payment system & order lifecycle 31 — Tech Rocks - Videdressing © - 2017
  20. THE HARD DECISIONS ▸ Stop or postpone other projects 32

    — Tech Rocks - Videdressing © - 2017
  21. THE HARD DECISIONS ▸ Stop or postpone other projects ▸

    Dedicated TaskForce for next 9 months 32 — Tech Rocks - Videdressing © - 2017
  22. THE HARD DECISIONS ▸ Stop or postpone other projects ▸

    Dedicated TaskForce for next 9 months ▸ No bug fixes on legacy anymore 32 — Tech Rocks - Videdressing © - 2017
  23. THE HARD DECISIONS ▸ Stop or postpone other projects ▸

    Dedicated TaskForce for next 9 months ▸ No bug fixes on legacy anymore ▸ Accept to decrease the quality of service to improve it afterwards 32 — Tech Rocks - Videdressing © - 2017
  24. EXPLAIN EXECUTIVE TEAM & STAKEHOLDERS WE WILL NOT RELEASE BIG

    FEATURE FOR THE NEXT 9 MONTHS 33 — Tech Rocks - Videdressing © - 2017
  25. THE IDEA: PROGRESSIVE REPLACEMENT OF MEANS OF PAYMENT (MOP) FROM

    THE OLD PLATFORM TO THE NEW ONE 35 — Tech Rocks - Videdressing © - 2017
  26. THE PLAN: DEPENDING ON THE BUSINESS IMPACT AND THE POTENTIAL

    RISK, WE PRIORITIZED THE MOP DEPLOYMENT BY PLATFORM 36 — Tech Rocks - Videdressing © - 2017
  27. RELEASE THE LEAN WAY ▸ Slice for the fastest way

    in production ▸ Mitigate risks with Feature Toggles ▸ ... and Rollback ▸ Do not create all the tools day one (simple spreadsheet is ok) 37 — Tech Rocks - Videdressing © - 2017
  28. THINK ABOUT FEATURE FLIPPING & “FEATURE CAPPING” AT THE BEGINNING

    OF THE PROJECT 39 — Tech Rocks - Videdressing © - 2017
  29. 5 - MEANWHILE WITH THE TECH & PRODUCT TEAM 41

    — Tech Rocks - Videdressing © - 2017
  30. CODE REVIEW, CODE REVIEW, NEVER SKIP CODE REVIEW 43 —

    Tech Rocks - Videdressing © - 2017
  31. DEVOPS SUPPORT ▸ Fully Dockerized dev environment ▸ Fresh dataset

    automation ▸ Keep syncing with master branch whenever you can ▸ Deploy on a testable feature branch 44 — Tech Rocks - Videdressing © - 2017
  32. THE LEGACY ROOMATE ▸ Do not feed the monster 45

    — Tech Rocks - Videdressing © - 2017
  33. THE LEGACY ROOMATE ▸ Do not feed the monster ▸

    Starve the monster whenever it's possible 45 — Tech Rocks - Videdressing © - 2017
  34. THE LEGACY ROOMATE ▸ Do not feed the monster ▸

    Starve the monster whenever it's possible ▸ Separate bundles in the new platform 45 — Tech Rocks - Videdressing © - 2017
  35. THE LEGACY ROOMATE ▸ Do not feed the monster ▸

    Starve the monster whenever it's possible ▸ Separate bundles in the new platform ▸ Make the new services more desireable than the easy (dark) one 45 — Tech Rocks - Videdressing © - 2017
  36. RESULTS ▸ 97% of orders are now processed on the

    new system ▸ bug (almost) free ▸ easy to track/reconciliate ▸ -20% on Customer Care contact rate 47 — Tech Rocks - Videdressing © - 2017
  37. RESULTS ▸ Enabler for Mobile platforms better performance ▸ From

    40% to 55% of mobile contribution in sales ▸ The user/order lifecyle is now readable, not only by developers 48 — Tech Rocks - Videdressing © - 2017
  38. MISTAKES ▸ Postponing information to board/exec team on platform state

    ▸ Took too much time to decide the refactoring 49 — Tech Rocks - Videdressing © - 2017
  39. MISTAKES ▸ Postponing information to board/exec team on platform state

    ▸ Took too much time to decide the refactoring ▸ Spent too much energy to solve bugs instead rebuilding 49 — Tech Rocks - Videdressing © - 2017
  40. MISTAKES ▸ Postponing information to board/exec team on platform state

    ▸ Took too much time to decide the refactoring ▸ Spent too much energy to solve bugs instead rebuilding ▸ No unified & shared documentation on business process 49 — Tech Rocks - Videdressing © - 2017
  41. MISTAKES ▸ Postponing information to board/exec team on platform state

    ▸ Took too much time to decide the refactoring ▸ Spent too much energy to solve bugs instead rebuilding ▸ No unified & shared documentation on business process ▸ Stakeholders not enough involved & informed once the project was launched 49 — Tech Rocks - Videdressing © - 2017
  42. OTHER LEARNINGS ▸ The monster will not die before long

    50 — Tech Rocks - Videdressing © - 2017
  43. OTHER LEARNINGS ▸ The monster will not die before long

    ▸ But you can "contain" it 50 — Tech Rocks - Videdressing © - 2017
  44. OTHER LEARNINGS ▸ The monster will not die before long

    ▸ But you can "contain" it ▸ Mob(ish) programming is cool for tricky design phase 50 — Tech Rocks - Videdressing © - 2017
  45. OTHER LEARNINGS ▸ The monster will not die before long

    ▸ But you can "contain" it ▸ Mob(ish) programming is cool for tricky design phase ▸ Never skip code reviews 50 — Tech Rocks - Videdressing © - 2017
  46. Q&A ( AU CAFÉ ;-) ) 52 — Tech Rocks

    - Videdressing © - 2017
  47. SOURCES : - http://s1.lprs1.fr/images/2017/03/27/6800478_606918fc-12e9-11e7-9021-d8ba8fcbd319-1_1000x625.jpg - http://static.mensup.fr/photo_article/138906/17843/1200-L-game-of-thrones-saison-7.jpg - https://lh4.ggpht.com/eEAf4qsZ--nWq3LY1r9JcwgHfdmErHaXdhCFn7DCIGwiprJQzMiXX57GW2I0nKdyZQ=h900 - https://vignette4.wikia.nocookie.net/gameofthrones/images/f/f5/The_Wall.jpg/revision/latest?cb=20150323200738

    - http://thenewlywedchefs.com/wp-content/uploads/2013/10/DSC_0828.jpg - http://68.media.tumblr.com/4834121a36513822f42beffd94c92c17/tumblr_inline_nhjdn9vP6l1t0ktpa.gif - https://images.fineartamerica.com/images/artworkimages/mediumlarge/1/four-horsemen-of-the-apocalypse-victor-vasnetsov.jpg - http://www.stanstedpark.co.uk/public/images/Grounds/Maze_from_above.jpg - https://s11.stc.all.kpcdn.net/share/i/12/9742620/inx960x640.jpg - https://thedayintech.files.wordpress.com/2013/03/ibm_pc_xt_01_full.jpg - https://images-na.ssl-images-amazon.com/images/S/cmx-images-prod/Item/366144/Previews/1330222e9a6df3b80d8c21ecffc0c600._SX1280_QL80_TTD_.jpg - http://vignette2.wikia.nocookie.net/gameofthrones/images/8/8c/4x06_%D0%92_%D0%96%D0%B5%D0%BB%D0%B5%D0%B7%D0%BD%D0%BE%D0%BC_%D0%B1%D0%B0%D0%BD%D0%BA%D0%B5.png/revision/latest?cb=20140512154058&path-prefix=ru - https://www.newstatesman.com/sites/default/files/styles/nodeimage/public/blogs_2015/06/sean-bean.jpg?itok=zDluvo7Y - http://overloadr.com.br/wp-content/uploads/2015/01/the-incredible-machine.gif - https://pbs.twimg.com/media/C7r6lDQW0AAfA4r.jpg - https://pbs.twimg.com/media/Cm3lYrSWYAAAMC8.jpg - https://img.haikudeck.com/mi/43CDFF6B-975A-4F2B-A3F1-9F47A8B91104.jpg - https://www.newstatesman.com/sites/default/files/styles/nodeimage/public/blogs_2015/06/sean-bean.jpg?itok=zDluvo7Y - http://www.sportys.com/media/catalog/product/9/2/9238_4.jpg - https://www.visual-music.org/wp-content/uploads/2016/05/wpid-cymera_20141008_194731.jpg - https://spzone-simpleprogrammer.netdna-ssl.com/wp-content/uploads/2010/06/wtfs_per_minute_thumb.jpg - http://thoimoi.vn/stores/news_dataimages/huyenkun/092017/11/06/5648_CONTAINER_STUCKING.jpg - http://ll-c.ooyala.com/e1/hvMXJxYzE6OKFOE-FzgjyIBjt2cm4e0b/promo330138657 - http://www.thinkgeek.com/images/products/additional/large/1c9e_got_map_marker_set_with_map.jpg - https://images.dailykos.com/images/324505/story_image/2736667-doh.gif?1478647814 - https://vigilantcitizen.com/wp-content/uploads/2016/08/stranger20.png 55 — Tech Rocks - Videdressing © - 2017