No matter how many hours you ve spent on your program, no matter-what path you ve taken or what logic you ve used, forget it if it s a failure. Forget about sunk cost ”the effort you ve already put in. What you need to do is go on from there ”to find the best path to your goal.
Let s say that you ve written a program, put in a lot of time, but now you find that your logic was wrong or your information was wrong or incomplete. At any rate, the program doesn t work. New programmers tend to be so deeply invested in the work they ve already done that they delay, for all too long, abandoning the program and starting afresh. Don t make that mistake. Good-enough programming practice tells you to have the wisdom to give up a bad program; don t go back and try to fix it.
When you test a program and it doesn t work, make one educated guess at a solution. If that doesn t work, don t keep guessing: That s the worst thing you can do. If your guess didn t work out, utilize a productivity tool that enables you to actually see what is happening inside the computer as your code and data execute. That guarantees that you will move forward in an organized, disciplined way. If you start guessing, guessing, guessing, you are simply adding to the time-cost you ve already sunk into your program. Look carefully at where you are and where you ve been, and cut off anything you ve done that is of little value.
Superior programming is the good enough programming routinely produced by talented and experienced programmers ”functional, understandable, and maintainable .
In my career, I have written probably thousands of good-enough programs, many as a highly paid programming consultant. Those programs met the expectations and objectives of the clients who asked for them and who paid for them. Believe me, as long as your programs work and are well documented, they re good enough.