Dealing With Contradictory Requirements

Anyone here ever hear of the Iron Triangle? The idea is that, for any project, there are multiple high-level objectives competing with one another: cost, speed, and quality. And that to improve on any one you have to sacrifice the other.

Let’s put this another, simpler way. You want a car that has more features, better reputation for reliability? It’s going to cost more. Are you washing dishes but you’re trying to get done faster? They probably won’t be washed as well.

These are some simple examples but you get the idea. But I’m not here to talk about the Iron Triangle; there are plenty of other books and blogs that can do that. I’m going to abstract one layer up, and talk about what to do when you have opposing, conflicting viewpoints.

The speed vs quality and cost vs quality oppositions are fairly common in IT and software project management. The big one is testing. You can choose to sacrifice some testing to achieve more velocity, but you’ll almost certainly sacrifice quality by allowing defects to slip through.

At your company you probably have some high-level tenets or goals, either actually codified or maybe just often repeated. Things like:

“We only hire the best.”

“We never sacrifice quality.”

“We deliver value to our customers.”

But then you’ll hear things like:

“We have to cut costs.”

“We have to release that product sooner.”

“We have to hire someone this week.”

Given what we’ve just discussed, you can see that this set into motion competing goals that contradict each other. It’s almost like you’re planning to creating that conflict.

I’ve had a particularly hard time with this in the past, to the point of really stressing myself out. I usually get pretty focused on whatever goals or tenets are given to me and I strive to reach them, so when I would get two competing ones it’s almost like my brain would break.

But eventually I’ve figured out some ways that I can deal with this. Interestingly, it came not from business but from personal fitness and health. For example, how do you eat less calories to lose weight but more calories to build muscle mass? Below are some ideas I keep in mind. To start, you can…

  • Work towards both

If the goal is to produce quality but minimize cost, then that’s certainly something that you can do simultaneously. You can perform testing and code reviews and demand quality, while at the same time striving to be as lean as possible. Keep in mind the goal is not “minimize costs to as low as humanly possible to the detriment of all else.” If that were the case you could just lay everyone off except one developer and give them a Etch-a-Sketch, but that’s obviously not reasonable. Find that balance between the level of quality you want and minimizing costs as much as possible.

But sometimes that doesn’t completely work. What about “only hire the best” but “hire someone within the next 30 days”? It might be really hard to find top tier candidates with 30 days? So in that case…

  • Focus on one but don’t forget the other

If you determine that, for the particular project or task in front of you, one of the tenets has priority (“hire within 30 days”) then you just need to make the conscious decision that, for this specific case, you will prioritize that one tenet. But that doesn’t mean ignore the other. You can set the goal of hiring someone within 30 days, but hiring the “best” candidate from that 30-day effort.

But sometimes even that is not enough. What about when none of the candidates are even remotely qualified? What do you do then? Well, you can…

  • Find an innovative solution

Can you hire someone to work remotely? Can you find a subcontractor or a consultant instead? This is where you can really have the chance to shine, to find some exciting new out-of-the-box idea to address the issue in front of you that meets all the goals in an acceptable way.

As with many things in life, it’s about balance and prioritization. But don’t forget the “big picture” true strategic goals, and make sure your efforts are always pointed in that direction. The competing requirements can help you reach towards those goals, so by embracing the healthy tension you can help your organization be successful.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s