[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