Software rot, too much magic, and spaghetti code - the Kirk/Scotty syndrome

There is a disease I see so often in the software development industry that I’ve decided to give it a name. I call it “Kirk/Scotty Syndrome.” This disease is related to the concept of “software rot” and “spaghetti code” inflicted by the management team. You’ll know this disease when you hear it, because it will sound a lot like the following conversation, taken from most Star Trek episodes:

Kirk: Scotty, we’re about to get killed again. I need that fix *now*.
Scotty: It’s gonna take a few days captain.
Kirk: Scotty, if you don’t fix it now there’s not going to be a next episode.
Scotty: Aye captain, I’ll overload the meaning of some fields in the database, hard-code some other things, get some new code on the server without going through the usual deployment methods, all the usual things.
Kirk: Gosh Scotty, you’re the best. Kirk out.


Now, in place of "Scotty" put "Software Developer", and in place of "Kirk" put "Project Sponsor", "Stakeholder", "Project Manager", etc., and you'll have the exact "software rot" disease I'm talking about.

If you happen to hear something like this by the water cooler, or maybe in a meeting, you'll have spotted the disease. How you treat the disease is up to you.

Yes, there are real software emergencies

Now, don't get me wrong -- in a pinch you sometimes need to do some really evil things to get a patch out the door. But, pile all these little kludges on, and sooner or later "She's going to blow captain", i.e., new development will grind to a halt. And then everyone will say "What's wrong?" And Scotty will have to say "Too much magic causes software rot." (Sorry, I can't remember who actually said that, so I can't give you credit. I also doubt that Scotty would be quite that polite.) Or worse, when the new development team comes in they'll say things like "Wow, that's a bunch of spaghetti code", or "We can't maintain *that* system, we'll have to do a rewrite."

There are two things that the people that are involved with these problems need to know. First, Star Trek wasn't real -- it was a television show. Second, if you still think it was real, then I'll argue that they left out all the episodes where the Enterprise limped into the repair station to get all the duct tape and super glue removed. Those shows weren't exciting enough to air, but they would have been needed to keep the show going.

In an emergency do what you have to do to survive, but when the emergency is over, do the right thing.