Astronauts Don’t Die | Better problem-solving means better development | Acro Media
Shawn McCabe

Author

Shawn McCabe

, CTO

Posted in Software & Development

June 8, 2023

Astronauts Don’t Die

Better problem-solving in development

CTO Shawn McCabe reflects on how ingenuity and resourcefulness should play into problem-solving for the solutions Acro Commerce builds for its clients.

The whole movie Apollo 13 is about solving problems with limited resources. The movie has a classic scene where NASA engineers have to figure out how to put a square filter into a round filter socket, and they only have the supplies available in the space capsule.

It stuck with me as a scene that represented that, if nothing else, you’ve always got your skill and intelligence to solve problems.

I have the feeling that we’ve been losing that mentality lately at work. The solution was always: more time, more budget, more resources. Where is the drive to deliver good products with limited time and budget using our own ingenuity?

I was talking back and forth with our COO about how we always seem to work to the time allotted and not to the problem. We started brainstorming about how to combat this problem and eventually came up with the idea that our whole approach is incorrect.

Currently, we talk about the ideal solution, how much more time or resources we will need, and where things went wrong in the quote. 

What about if we came at this from an entirely different direction? What if we only have the time, budget and resources we already have? We only have one flexible resource, our own cleverness.

If this is all we have, what can we do so our astronauts don’t die? Maybe we can turn something else off. Maybe we can build this a different way. Do we really need that section? Without adding cost, without stressing ourselves with overtime, and without increasing the timeline. Are you really at the point where you have exhausted absolutely all other avenues, and the only solution is to let them die?

This translates into a project process by mandating that you must always come up with a solution within your constraints first. It may not be great, or it feels a little clunky, but it is acceptable as long as everyone gets home safely. This isn’t always the option we go with. Maybe we want a little extra luxury, and perhaps it should be a little more reusable, but only after we’ve determined our true minimum. If we can’t come up with a zero-increase option, we must think,

“Are we really going to let those astronauts die?”

The idea is to foster problem-solving. Perhaps we can come up with a better way to do things, a more efficient way - not just the way we’ve always done things before. Just because we’ve encountered a problem doesn’t mean it has to take longer and cost more.

There is an old saying used a lot in software: you can’t have something done cheap, done quickly and done well; you have to pick two. That uses the assumption that you can never do anything better than you've done before, which is never true in anything, least of all in software. In these days of the Pinterest “share everything” internet, you will often see people post personal projects with the boast of how much time they put into it, 500 hours of painstaking labour.

The amount of time you put into something is not a measure of your skill or the final product's quality. Has it ever occurred to you that maybe you could just do better?