Machine Learning: The High Interest Credit Card of Technical Debt (2014)
I recently came across this artice:<p><a href="https://en.wikipedia.org/wiki/Overfitting" rel="nofollow">https://en.wikipedia.org/wiki/Overfitting</a><p>Although it describes the issue pertaining to statistics + machine learning, this is also <i>exactly</i> what end ups up happening with a large codebase without clear requirements or test cases, and people just making incremental, piecemeal changes over time. You end up with an application that has been trained (overfitted) with historical data and usecases, but breaks easily for slightly new variations that are different from anything that has ever been handled by the system before in some trivial way that better designed, cleaner, more abstract system would be able to deal with.<p>Given how much poor coding practices resemble machine learning (albeit in slow motion), it's hard to hold too much hope about what happens when you automate the process.