2 ms·
Software is always going to have mistakes and there is always going to be a better way to do things. That said, there are best practices that help to reduce the
by lgleason 6y ago
Software is always going to have mistakes and there is always going to be a better way to do things. That said, there are best practices that help to reduce the cost of those inevitabilities. Technical debt is when people throw those best practices out the window which leads to the inevitable outcome of a project that becomes extremely expensive to maintain. If it goes on long enough, and gets bad enough it might become so expensive that the team needs to declare technical bankruptcy and abandon the entire thing.
Another common thing I've seen with most projects that take on significant amounts of technical debt is a chaotic team structure that is constantly in fire fighting mode. While there are times when you are working on a throwaway/POC/low funded MVP for a startup where it might be appropriate to take on that debt, I have seen far more instances of people using the rationalization of "All of these practices are great, but (we don't have time, money etc. etc. etc.)" when in reality, to achieve the end goal everyone is looking for they are actually omitting non-optional things and shooting themselves in the foot.
- BlargMcLarg 6y agoThe real cost of constantly having to firefight: people will inevitably leave or demand a higher pay to stick around. No one wants to be the one wasting 3 hours because a design pattern was poorly / wrongly implemented, or doesn't realize they need to downcast what is essentially a data object, or whatever gotcha the people making it before decided to implement. It doesn't help further one's career. It feels bad, like a dead end. You're always far behind the curve, and you always feel like a third class citizen behind the whims of management. It goes directly against why most ambitious software devs became a software dev in the first place.