When Are You Gold Plating, and When Are You Cutting Corners?
In a previous article, where I discussed the fractal nature of software, I touched upon one of the difficult dilemmas in software engineering: how much complexity is needed to implement a feature, and more broadly, a fully functional system? If you’re adding more complexity than strictly needed, you’re gold plating. But if you cut a couple of corners too much, sooner or later, your project will hit the wall, and you’ll have to face a potentially costly refactoring exercise to add the needed complexity so that you can make progress again.