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

A CTO Always Pays His Debts

A CTO Always Pays His Debts

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 Agile Tour bordeaux 2017.

Hervé LOURDIN

October 20, 2017
Tweet

More Decks by Hervé LOURDIN

Other Decks in Technology

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-dirigeant chez Videdressing ▸ Adepte et praticien

    Lean, Agiliste pragmatique ▸ Team Builder ▸ Ex Lean & Agile Partner chez @OCTOTechnology ▸ Co-founder of @AppaloosaStore 3 — Agile Tour Bordeaux - Videdressing © - 2017
  3. SAY HI TO JÉRÔME ! SENIOR PRODUCT MANAGER AT VIDEDRESSING

    4 — Agile Tour Bordeaux - Videdressing © - 2017
  4. A Product Manager always pays his debts. — T. Lanister

    5 — Agile Tour Bordeaux - Videdressing © - 2017
  5. A Product Manager CTO always pays his debts. — T.

    Lanister 6 — Agile Tour Bordeaux - Videdressing © - 2017
  6. AGENDA ▸ Who we are? ▸ Why a Refactor project?

    ▸ How to communicate about it? ▸ How to prioritize it? ▸ How about the practices? ▸ Learnings & Take-aways 7 — Agile Tour Bordeaux - Videdressing © - 2017
  7. NO RAINBOWS & LITTLE PONIES AT THE END 9 —

    Agile Tour Bordeaux - Videdressing © - 2017
  8. 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 13 — Agile Tour Bordeaux - Videdressing © - 2017
  9. 2 - WHY A REFACTORING PROJECT? 14 — Agile Tour

    Bordeaux - Videdressing © - 2017
  10. A SIMPLE PLUG N' PLAY PROJECT ABOUT A NEW MEAN

    OF PAYMENT 15 — Agile Tour Bordeaux - Videdressing © - 2017
  11. THE WAY WE LIKE TO SEE OUR PLATFORM 16 —

    Agile Tour Bordeaux - Videdressing © - 2017
  12. THE WAY IT IS FOR REAL... 17 — Agile Tour

    Bordeaux - Videdressing © - 2017
  13. THE plug n' Play PROJECT ...TURNED OUT TO BE A

    COMPLETE FAILURE 18 — Agile Tour Bordeaux - Videdressing © - 2017
  14. THE 4 HORSEMEN OF THE TECHNICAL APOCALYPSE 20 — Agile

    Tour Bordeaux - Videdressing © - 2017
  15. 3 - HOW TO COMMUNICATE ABOUT A REFOACTORING PROJECT? 26

    — Agile Tour Bordeaux - Videdressing © - 2017
  16. HOW TO TELL TO A BOARD? (AND EXPLAIN) 27 —

    Agile Tour Bordeaux - Videdressing © - 2017
  17. 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 28 — Agile Tour Bordeaux - Videdressing © - 2017
  18. 4 - HOW TO PRIORITIZE SUCH PROJECT? 30 — Agile

    Tour Bordeaux - Videdressing © - 2017
  19. ▸ Trying to (re)understand how the machine is working 31

    — Agile Tour Bordeaux - Videdressing © - 2017
  20. FAILED AT TRYING TO GET THE TRUTH FROM THE CODE

    33 — Agile Tour Bordeaux - Videdressing © - 2017
  21. (RE)-LEARN APPROACH ▸ Interviews ▸ Observation ▸ Technical Analysis 34

    — Agile Tour Bordeaux - Videdressing © - 2017
  22. THIS PROCESS MAP WAS THE real first “release” OF THE

    PROJECT ... AND KILL SOME GOOD OLD MYTHS ABOUT IT WAS MEANT TO WORK 37 — Agile Tour Bordeaux - Videdressing © - 2017
  23. 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 38 — Agile Tour Bordeaux - Videdressing © - 2017
  24. 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 39 — Agile Tour Bordeaux - Videdressing © - 2017
  25. EXPLAIN EXECUTIVE TEAM & STAKEHOLDERS WE WILL NOT RELEASE BIG

    FEATURE FOR THE NEXT 9 MONTHS 40 — Agile Tour Bordeaux - Videdressing © - 2017
  26. THE PLAN: PROGRESSIVE REPLACEMENT OF MEANS OF PAYMENT (MOP) FROM

    THE OLD PLATFORM TO THE NEW ONE 42 — Agile Tour Bordeaux - Videdressing © - 2017
  27. THE PLAN: DEPENDING ON THE BUSINESS IMPACT AND THE POTENTIAL

    RISK, WE PRIORITIZED THE MOP DEPLOYMENT BY PLATFORM 43 — Agile Tour Bordeaux - Videdressing © - 2017
  28. 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) 44 — Agile Tour Bordeaux - Videdressing © - 2017
  29. THINK ABOUT FEATURE FLIPPING & “FEATURE CAPPING” AT THE BEGINNING

    OF THE PROJECT 46 — Agile Tour Bordeaux - Videdressing © - 2017
  30. 5 - MEANWHILE WITH THE TECH & PRODUCT TEAM 48

    — Agile Tour Bordeaux - Videdressing © - 2017
  31. CODE REVIEW, CODE REVIEW, NEVER SKIP CODE REVIEW 54 —

    Agile Tour Bordeaux - Videdressing © - 2017
  32. DEVOPS SUPPORT ▸ Fully Dockerized dev environment ▸ Fresh dataset

    automation ▸ Keep syncing with master branch whenever you can ▸ Deploy on a testable feature branch 55 — Agile Tour Bordeaux - Videdressing © - 2017
  33. 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 56 — Agile Tour Bordeaux - Videdressing © - 2017
  34. RESULTS ▸ 95% of orders are now processed on the

    new system ▸ bug free ▸ easy to track/reconciliate ▸ Very positive impact on Customer Care contact rate 58 — Agile Tour Bordeaux - Videdressing © - 2017
  35. RESULTS ▸ Enabler for Mobile platforms better performance ▸ From

    40% to 50% of mobile contribution in sales ▸ The user/order lifecyle is now readable, not only developers 59 — Agile Tour Bordeaux - Videdressing © - 2017
  36. 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 61 — Agile Tour Bordeaux - Videdressing © - 2017
  37. 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 62 — Agile Tour Bordeaux - Videdressing © - 2017
  38. HERVÉ LOURDIN - @HERVELOURDIN FOLLOW US AT @VD_LABS SAY HELLO!

    AT: [email protected] 66 — Agile Tour Bordeaux - Videdressing © - 2017
  39. SOURCES : - https://upload.wikimedia.org/wikipedia/commons/6/64/Bordeaux_place_de_la_bourse_with_tram.JPG - http://static.mensup.fr/photo_article/138906/17843/1200-L-game-of-thrones-saison-7.jpg - http://www.goliards.fr/wp-content/uploads/2012/04/Image-8.png - http://www.splashscore.com/wp-content/uploads/61Q0if5lxPL._SL1100_.jpg

    - http://cdn.collider.com/wp-content/uploads/2017/04/my-little-pony-friendship-is-magic-season-7-image-3.png - https://lh4.ggpht.com/eEAf4qsZ--nWq3LY1r9JcwgHfdmErHaXdhCFn7DCIGwiprJQzMiXX57GW2I0nKdyZQ=h900 - https://vignette4.wikia.nocookie.net/gameofthrones/images/f/f5/The_Wall.jpg - http://thenewlywedchefs.com/wp-content/uploads/2013/10/DSC_0828.jpg - http://vignette2.wikia.nocookie.net/gameofthrones/images/6/6b/Cersei%27s-WalkofShame-S05E10.jpg - 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://d3dsiivhtdjozj.cloudfront.net/wp-content/uploads/2017/04/27110014/secchioacqua.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 - 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://bob-cfi.weebly.com/uploads/7/6/9/3/7693240/9697687_orig.jpg - https://www.visual-music.org/wp-content/uploads/2016/05/wpid-cymera_20141008_194731.jpg - http://68.media.tumblr.com/4834121a36513822f42beffd94c92c17/tumblr_inline_nhjdn9vP6l1t0ktpa.gif - https://hakanforss.files.wordpress.com/2014/08/resourcevsflowmatrixlean.png - 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 - https://static1.squarespace.com/static/55149836e4b0392be719431e/t/555c0454e4b0007db23a164c/1432093782640/Order+delicious+gourmet+takeaway+food+from+Paladarr+from+4pm+onwards+7+days+a+week+9497+5987 - https://media.senscritique.com/media/000006475091/1200/Happy_Tree_Friends.jpg - https://images.dailykos.com/images/324505/story_image/2736667-doh.gif?1478647814 - https://vigilantcitizen.com/wp-content/uploads/2016/08/stranger20.png 69 — Agile Tour Bordeaux - Videdressing © - 2017