You have a rescue project

I wish I knew what it was that made people realize that something was terribly wrong with the software they built. I've never met anyone who thought that. I've met people with varying levels of opinions but never anyone who realized that something had gone horribly wrong and drastic change was needed.

But let's back up for a second. What is it we're even looking at?

Your software is probably slow. It's probably buggy. Maybe it crashes randomly in production. Performance, bugs, crashes–all these things increasingly dominate developer time. New development has slowed to a crawl, but when it does happen, it often results in more unforeseen bugs and crashes. You're looking to hire more developers because your current developers are too busy fighting fires. But good developers are really hard to find–you know, you've looked. Everyone is frustrated.

If we could emotionally detatch ourselves from our projects, we might be able to see what we have on our hands: a rescue project. We have the accumulation of, for whatever reason it doesn't matter, small bad decisions that are orchestrating the near complete halt of any new development. The first time you pull development resources to fight fires an alarm should go off. When you find yourself saying "we can't get any new development done because all of our resources are tied up fighting fires", as I've heard many times, you're in the thick of it.

The important thing to understand is the cost of not acting now–of trudging forward with new features. Regardless of the state of your project, adding more always costs more that we think. But adding more to a rescue project takes longer than it should, likely adds to your problems, and increases the amount of code that needs to be dealt with when you finally do get around to addressing your problems.

You can dig yourself out of this rescue project hole. It's going to take time that you think you don't have, but really, you already don't have much time for development. Step one is just admitting: you have a rescue project.

And when you finally do admit to yourself that you have a rescue project on your hands, make note of where you are and what you're doing. I'd like to know.

Published on

Pro tip at Coderwall »