What is technical bankruptcy? More to the point, what is technical debt? And what happens to software systems when the interest payments on technical debt go out of control?
explain replacing 5 year old system: couldn’t improve business and it’s taken 2 years needed to understand tech debt and tech bankruptcy (they weren’t big fans of ‘the software is never done’) 3
on the london tube poorly flushing toilets at simply business non-earthquake safe bridges strikes examples of bankruptcy iraqi army garment factory that collapsed in bangladesh worldwide corruption 7
difference between doing something properly and the less correct way it was actually done quantified by: amount of work left to correct the implementation vs original implementation not: every possible option that could be built 13
debt makes good code bad; what does bad look like? focusing on maintenance (not exactly the same as adding a line/unit), so bear with the shift credit: Capers Jones http://www.compaid.com/caiinternet/ezine/ capersjones-maintenance.pdf 19
initial release zero error-prone modules very low bad-fix injection rate of 1% or less result: maintenance costs can actually decline over the five year ownership period 20
two error-prone modules an average bad-fix injection rate of about 7% result: maintenance costs increase over a five-year period, but not at a very significant annual rate 21
dozen severe error-prone modules significant bad-fix injection rates of about 20% result: maintenance costs become more expensive every year due to entropy and an application that never stabilises 22
by the number of nodes because they are connected more or less n ^ 2 how does this apply? imagine building every connection, not just using it "Metcalfe-Network-Effect" by Woody993 at en.wikipedia - Transferred from en.wikipedia. Licensed under CC0 via Wikimedia Commons - http://commons.wikimedia.org/wiki/File:Metcalfe-Network-Effect.svg#mediaviewer/File:Metcalfe-Network-Effect.svg 30
(searching for example) number of connections between nodes increases as log n http://stackoverflow.com/questions/2307283/what-does-olog-n-mean-exactly 31
compartmentalise to avoid systemic effects object oriented programming patterns functions/procedures reusable code network layers interfaces protocols other domains methodologies for organisation change vast literature on how to run companies more effectively 32
it’s too late to brush and floss when the teeth are falling out tech debt accumulates silently, in multiple ways, the slowdown that results is gradual and then accelerates 39
symptoms: are you leading, average or lagging? differences are easily visible debt ratio needs to be low (but no need to know it exactly) do things properly i.e. peer reviews, formal controls, good structure 50
examples http://stackoverflow.com/questions/2307283/what-does-olog-n-mean-exactly Godel, Escher, Bach; I Am A Strange Loop; Douglas Hofstadter Capers Jones; Software Productivity Research Institute Quality excellence has ROI > $15 for each $1 spent; SOFTWARE QUALITY IN 2012:A SURVEY OF THE STATE OF THE ART http:// sqgne.org/presentations/2012-13/Jones-Sep-2012.pdf http://www.compaid.com/caiinternet/ezine/capersjones-maintenance.pdf http://insights.cermacademy.com/2012/05/preventing-software-failure-capers-jones-technologyrisk/ How To Measure Anything; Douglas Hubbard "Metcalfe-Network-Effect" by Woody993 at en.wikipedia - Transferred from en.wikipedia. Licensed under CC0 via Wikimedia Commons - http://commons.wikimedia.org/wiki/File:Metcalfe-Network-Effect.svg#mediaviewer/File:Metcalfe-Network-Effect.svg http://science.slc.edu/~jmarshall/courses/2002/spring/cs50/BigO/ http://stackoverflow.com/questions/2307283/what-does-olog-n-mean-exactly http://stackoverflow.com/questions/2307283/what-does-olog-n-mean-exactly Dunbar number http://en.wikipedia.org/wiki/Dunbar%27s_number Estimates of projects http://www.isbsg.org/ 51