4 ms·
Good enough is exactly what we should be aiming for. Perfect means it will never ship. The problem with good enough is that my opinion of it differs from yours
by manyxcxi 10y ago
Good enough is exactly what we should be aiming for. Perfect means it will never ship.
The problem with good enough is that my opinion of it differs from yours, in possibly very important ways. Good enough to you may mean it compiles and executes 'happy path' logic just fine. Good enough to me means it's at least lightly commented, the code is formatted and indented properly (sidebar: THERE ARE STILL PEOPLE WHO DON'T DO THIS!), maybe a smattering of unit tests to prevent regression, and the code is semi-coherent (no spaghetti).
Now, most of what I consider good enough has little to do with if it executes more functionality than just getting it working. But in the real world, the lack of the other things I mentioned will ALWAYS cost me more money when I inevitably have to come back to the project months down the road.
The converse is also wasteful. Don't go re-inventing a CMS because you have a couple of web forms and you want to make a universal system so that all forms can be accounted for going forward. Keep it simple, but robust. Build the couple of forms, don't pigeonhole yourself, make a note that if we get over a certain amount of different forms it may be better to have a generic system underneath, etc. Don't over engineer it. Engineer for the things you know you have to handle given the current requirements, don't engineer for the things that will happen if you reach 10x volume (you likely never will).