Enter Technical Debt
I'll be talking about technical debt in general, what to look out for before you fall into tech debt, and my experience with it.
What is technical debt?
So tech debt's definition on Google is "Technical debt is 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." That sums it up lol.
What am I looking for?
Here's a list of some things to look out for.
- A new team member to the team wants to rebuild a system from the ground up
- A team member wants to optimize something without profiling data
- A system is a nightmare to maintain
- A ton of other things like projects lack of time, a team members incompetence, etc
My experience
I can't go into great detail, but I can say that when I joined a team I ended up rewriting a major system that had been implemented 3 times previously and each implementation was causing more and more issues. I caused more tech debt here, but I also eliminated future tech debt due to a better implementation. The funny thing is that this system was implemented via UE4 classes, a Marketplace asset, a new team member, and then finally me using UE4 classes and I was a new team member. lol
That project also suffered from pre-optimizations without profiling data.
After that experience, I've learned to profile, profile, and profile before refactoring or optimizing.
until next time