Problem Solving: Identifying the Constraints
In a series of posts on problem solving, I will be sharing my personal approach to finding and evaluating solutions. At times, I may also evaluate other methods or draw from other resources, in which case references will be cited at the end of the post. This is the second post in the series.
Identifying Constraints
In the previous post on defining the problem, we discussed how to break up a set of problems and brainstorm solutions for each problem individually. But how do we know which solution is best?
This is where defining the constraints comes in. Let’s continue with our scenario from the last post:
At some point your team realizes you are behind schedule, customers are knocking down your door asking for more and more features and your engineers are working around the clock. Meanwhile, your site stability needs to be improved and you have a growing list of bugs. What do you do?
and we listed each problem mentioned in the scenario:
- you are behind schedule
- customers are getting antsy
- your engineers are at risk of burning out
- site stability is putting your business at risk
- the quality of your product is at risk due to the growing bug list
Some likely constraints might be:
- Limited headcount
- Limited cash
- Desire to not compromise on code quality
- Need to not compound work-load of already overburdened employees
Each person with a stake in solving the problem, likely has their own set of constraints in mind. Unless they are clearly articulated and listed, it will be difficult to find an agreeable solution.
I’ve been in dozens of discussions in which a solution is being evaluated and someone in the room can’t come up with a rational argument for why the solution won’t work, but is still unhappy with the solution. In just about every case, this was the result of an uncovered constraint.
Sometimes there are no solutions that abide by all the constraints. When this occurs, instead of spending hours arguing over the merits of one solution or another, it’s easier to weigh the importance of each constraint relative to each other. This helps people remove themselves from their emotional attachment to a particular solution and more objectively evaluate what are often tough tradeoffs.
In the next post, we’ll discuss how to narrow the field from dozens of “solutions” to the handful of solutions that actually solve the problem within the defined constraints.
If you enjoyed this post, please share it or subscribe:Tags: constraints, Problem Solving, solutions