[clug] [OT] 'Technical Debt' in Infrastructure, now entering mainstream media

Michael Cohen scudette at gmail.com
Fri Nov 8 12:03:18 UTC 2019


Having worked in very large software companies and startups, my 2c is 
that technical debt is not always because programmers do not know what 
they are doing. Software (yes even open source software) is a business 
endeavor where you have to balance a bunch of competing needs. For 
example, in a startup people know that they are writing sub-optimal code 
with perhaps fewer tests than they should. But this is actually a 
conscious decision! Particularly when you are trying to prove a market 
or algorithm you need to get the software out there quicker - while 
writing a more elaborate solution with lots of tests and more complex 
design will take longer.


Sometimes you just have no idea if the thing you are writing will work - 
in this case you want to fail early - no point investing a lot of time 
getting the wrong solution working. If it does not work then you throw 
it away and do something else. Software is all about iterating quickly 
and managing technical debt. It is a sign of a mature and experience 
software engineer or project manager, when they can make the correct 
call of how much technical debt they should accrue and when the time to 
repay that should be.


I don't know anything about infrastructure spending but it seems to me 
that the technical debt analogy might make some sense. Perhaps it makes 
sense to run the infrastructure down to the point where it needs to be 
completely replaced rather than maintained in order to do something 
different and re-purpose a particular piece of infrastructure? For 
example, I know in many places they were converting old disused rail 
passages to bike ways for better commuting options (this works really 
well !). If they bothered to maintain the railways they would never 
become abandoned because they would always consume ongoing maintenance 
which becomes a kind of subsidy into unprofitable modes of transport. It 
makes sense to let some infrastructure die in order to make room for 
more modern projects that will replace them in the long term. It is hard 
to make the call though and I agree that the option of doing nothing is 
the easiest politically :-).


Thanks

Mike


On 8/11/19 7:34 am, Robert Edwards via linux wrote:
> On 7/11/19 10:04 pm, Paul Wayper via linux wrote:
>
>> But we shouldn't pretend that they're not there.  To be honest, many 
>> of these
>> technical debt problems are - in my experience - caused by 
>> inexperienced or
>> lazy programmers just slapping something together, trying random 
>> things until
>> they work, or putting in hacks to quickly solve a problem rather than 
>> attempt
>> the 'right' solution.  In all of those situations, the programmers 
>> could have
>> simply done it the 'right' way to begin with; they simply didn't know or
>> didn't care about the long term pain brought about by their short 
>> term gain.
>>
>
> Yeah, I agree - inexperienced programmers should not be allowed to
> write code.
>
> Imagine a world where, for instance, most of the O/S kernels were
> written by a second year undergrad from a non-English speaking
> country - doesn't even bear imagining. Or if the dominant file-server
> were written by a PhD student with a physics background who did
> it just to solve a short-term problem. Or if most people were
> relying on a security protocol cobbled together by a pair of students
> from a backward place like Queensland... Dystopia!
>
> All software should be written by large American multi-nationals.
>
> Then there wouldn't be any technical debt.
>
> cheers,
> Bob Edwards.
>



More information about the linux mailing list