Everybody working in software development in one way or another has heard this at some point: it would be really nice to do things the right way, but right now we’re busy, there will be time to fix the problem later on.
Later on, nothing happens. There’s never a moment when you’re less busy, when the bills don’t need to be paid, when work doesn’t need to be done.
Paint the mental picture of a cross country road trip. You need to get from San Francisco to New York, but you don’t know how to drive. You are still in a hurry to bring that car to the other coast, so you do your best and start piling up miles.
No matter how many times you crash and scrape the paint, no matter how many people honk at you, you keep driving because you have to go. Stopping now and taking driving lessons would be madness, right? So you keep driving, and your car gets beaten up more and more, because there’s no time to learn how to drive.
You might not make it to your destination, and still you don’t have time to do it right.
If this ever happened to you, or your company, there’s something very simple you can do: STOP. Take time to improve your processes. If there’s a skill your team needs to learn, make it part of their daily grind. If you’re using a bug-tracker to manage a project, go out and get a decent tool. If you’re not using a continuous integration server, get Hudson for free.
When you’re doing something wrong, the time to fix it is always now.