Monday, August 13, 2018

Technical Debt


 Wikipedia defines technical debt as: 
A concept in software development that reflects the implied cost of additional rework caused by choosing an easy solution now instead of using a better approach that would take longer. 
Which is as good of a definition for that as I've seen.  But it doesn't tell the whole story. 

But it's not the definition I think of when I reference it.  And I know that this will get people all sorts of bent out of shape, but when I hear technical debt, I also consider it more along the lines fo this: 

The implied cost of additional work caused by stagnating on the learning of technical concepts, processes, standards or behaviors. 

You can accrue technical debt by choosing the easy solution, instead of the best solution.  But at times, customers can only afford the easy solution now. 

You can accrue technical debt by building project after project using the sames methods and methodologies time after time.  And never looking at newer frameworks and just how other people are doing things.  By not learning things like .NET Core or Node.js because ASP.Net Webforms just work. 

And that's the type of technical debt that I've recently realized that I've been accruing.  I've not learned these new things, because what I've been doing works.  What I'm doing, how I'm building software, is not wrong, it's just I'm blind to the possibility that it's not the best solution for the issue I'm solving.  

Which in turn, drives that initial definition of choosing an easy solution now instead of a better approach that may take longer. 

No comments:

Blog Widget by LinkWithin