Note: The following thought should reside under several of my categories, but I’m aiming it at programming, so it is going there…
I had posted a link to a nice article about how the Pro musicians spend their limited and valuable time practicing. One thing that positively JUMPED out is one small tidbit… Practice doesn’t make perfect. Perfect practice makes perfect. The concept is to instill perfect execution before increasing difficulty, then increasing difficulty, all the while continuing to perform perfectly. Doctors and airplane pilots are excellent examples of this principle. You ALWAYS want them to perform perfectly . Sloppy practice only leads to sloppy execution.
I’ll let everyone in on a little secret… Software development is the same way. Unfortunately, most books and/or classes do not teach perfect software development. Few work environments allow for perfect software. In fact, most books are about how to ‘save’ sloppy projects. (There certainly are enough projects to make printing these books an EXCELLENT return on investment). A better way to save a project is to put good practices in place *BEFORE* beginning.
Good software development practices can help accelerate a project. They can even help kill a bad project before it leaves the gate. Unfortunately, there is not an easy way to measure how much a practice helps/hurts the bottom line. Unless one does BAD projects, there’s no way to measure when the GOOD ones happen.