adamtornhill questioning technical debt
play

@AdamTornhill Questioning Technical Debt Like a financial debt, the - PowerPoint PPT Presentation

@AdamTornhill Questioning Technical Debt Like a financial debt, the technical debt incurs interest payments, which come in the form of the extra effort that we have to do in future development


  1. @AdamTornhill

  2. Questioning Technical Debt “Like a financial debt, the technical debt incurs interest payments, which come in the form of the extra effort that we have to do in future development” https://martinfowler.com/bliki/TechnicalDebt.html @AdamTornhill

  3. Interest Rate Is A Function Of Time @AdamTornhill http://i.imgur.com/a8Xo4Hp.png

  4. All Technical Debt Isn’t Equal @AdamTornhill

  5. Most Technical Debt Isn’t Technical @AdamTornhill

  6. There’s A Strong Link Between Technical Debt And The Organisation @AdamTornhill

  7. Wish List: Information to Prioritize Technical Debt Where’s the Highest Interest Rate? Does the Architecture Support the way our System Evolves? Any Productivity Bottlenecks for Inter-Team Coordination? @AdamTornhill

  8. Collective Intelligence Frequencies Uncover Evolutionary Patterns In A System Time Social information @AdamTornhill

  9. Hotspots Where’s The Highest Interest Rate?

  10. Hotspots - A Tool To Prioritize @AdamTornhill

  11. Hotspot Code Complexity Code Change Frequency @AdamTornhill

  12. Hotspots - A Tool To Prioritize Hotspots Hotspots

  13. All Code is Equal …but some Code is more equal than others* * Sorry, George Orwell

  14. Why Hotspots Work 12 Years of Ruby on Rails 6 Years of Erlang 1 Year in Roslyn (C#, VB) Change Frequency Prioritize improvements here! Ignore the long tail Each file in the system Reference : Your Code as a Crime Scene , ISBN:1680500384

  15. Hotspots

  16. Case Study: @AdamTornhill

  17. gc.cpp @AdamTornhill

  18. Hotspots X-Ray File Level Hotspots Function Level Hotspots Recommended functions to improve. X Ray

  19. Function-Level Read More: @AdamTornhill

  20. Normalization of Deviance @AdamTornhill

  21. Supervise your Complexity Trends Warning Sign! Refactoring Increases again @AdamTornhill

  22. Hotspots Summary Hotspots find the code with the highest interest rate. Hotspots work because all code isn’t equal. Supervise the Complexity Trend of your Hotspots.

  23. Evaluate Your Architectural Patterns Does the Architecture Support the way our System Evolves?

  24. Code is Auto-Destructive Art @AdamTornhill

  25. Your System’s Tipping Point?

  26. Specify Your Logical Components DRM/AMD … DRM Shared @AdamTornhill

  27. Identify Hotspots on a (Micro)Service Level @AdamTornhill

  28. Temporal Coupling Commit #1 Commit #2 Commit #3 FuelInjector Diagnostics Combustion Time @AdamTornhill Read More: http://www.empear.com/blog/software-revolution-part3/

  29. Layers: A Separation of Concerns Change Coupling View General Observation: Controller 30-70 % of all commits touch multiple layers Services Model Repository ORM SQL @AdamTornhill

  30. Supervise The Change Coupling Between Services Temporal Coupling (potentially across repository boundaries) @AdamTornhill

  31. The Microservices Shotgun Surgery Pattern @AdamTornhill

  32. Tools Code Maat : open source, text-only (GPL) https://github.com/adamtornhill/code-maat CodeScene : free for open source (commercial) https://codescene.io/ Evolution Radar http://reveal.inf.usi.ch/web/dambros/tools/evoradar.php Moose Platform : open source platform http://www.moosetechnology.org/

  33. Architecture Summary Identify your Architectural Hotspots. Know your System’s Tipping Point. Use Temporal Coupling to Evaluate your Architecture.

  34. Meet The Social Side of Your Code Any Productivity Bottlenecks for inter-team coordination?

  35. Process Loss Individual Contributions Team Work Real Productivity The Potential Productivity Process Loss @AdamTornhill

  36. Diffusion of Responsibility

  37. Measure Team Coordination The Diffusion of Responsibility Backup Tests Tasks Integration Fractal Value Inter-Team Overlap Views Excess Parallel Work 0 ~1.0 Fractal Value: M. D’Ambros, M. Lanza, and H Gall. Fractal Figures: Visualizing Development Effort for CVS Entities.

  38. Measuring Conway’s Law Features Architectural Pattern: Package by Feature Backup Team Calculations Team Ads Team Views Recommendations Team Export Team Front-End Team @AdamTornhill

  39. The Perils of Feature Teams Team Team Team Team Team Team Team Team Team Team Team Team @AdamTornhill

  40. Align Your Architecture and your Organisation @AdamTornhill

  41. Make Decisions Influenced By Data @AdamTornhill

  42. CodeScene: The Analyses as a Service https://codescene.io/ Read The Book: Your Code As A Crime Scene https://pragprog.com/book/atcrime/your-code-as-a-crime-scene Time - The Hidden Dimension of Software Design http://www.empear.com/blog/software-revolution-part3/ The Day I Parsed A Monster http://www.empear.com/blog/parse-a-monster/ @AdamTornhill adam.tornhill@empear.com

Recommend


More recommend