“Whatever it takes”

As popular as Nike’s "Just do it" phrase became in the 1990’s, even professional athletes think before they act. They just do it faster than the rest of us and their actions are tempered in hours upon hours of preparation. Knowing this, the phrase "just do it" is more of a reminder for the athlete to focus on executing his plan as he knows from repetition than it is as a war cry for the athlete to throw caution to the wind.

So why should we manage software development projects any different? Like athletes, shouldn’t we always think before we act?

When schedules are tight or start to slip, a powerfully negative mindset starts to insert itself into the minds of engineers: "whatever it takes". In order to get the project done, we may work more hours, throw code together quickly without much thought to long-term implications, or skip important processes.

It’s a mindset that on the surface appears to free us from the perceived shackles of good software development practices, but in reality it binds us tighter than ever to the pains of chaos. This mindset can be dangerous for the project and it’s entire lifecycle if it isn’t tamed.

In this frame of mind we care nothing about designing elegant solutions, or thinking about innovation, or the KISS principle. We may not even care about creating a great product. We just want to finish the project so we can move on to something a little more endearing to our creative and problem solving abilities.

Bad things happen when we go with the "whatever it takes" approach to software development. You know them. Those bugs that are seemingly impossible to track down, gremlines, start to appear. Builds break. The software randomly crashes. Designs become difficult to maintain. Code is unreadable. Nobody knows the project’s status. And probably worst of all, everyone is burned out.

What’s scary is that "whatever it takes" is a rallying call in some sports to dig deeper and give it your all for the team. I suppose getting burned out really is "whatever it takes", but truly the parallels are staggering.

It’s important to think, plan, and design before we take action to implement in software. This is what an athlete does before he executes a play. Otherwise the "whatever it takes" mentality will take hold and before you know it you won’t have a chance of "winning" with your project. 

Leave a Reply