A New Tool For Your PM Toolkit: Constrained Optimization

Sean Walsh
wholeprodteam
Published in
6 min readAug 5, 2020
Photo: Cesar Carlevarino Aragon

A few years ago, a designer and I were working on creating the navigation header in our signup form builder. There were many possible directions we could explore and requirements to satisfy.

We began sketching out our options and were overwhelmed by the number of possibilities. We realized we needed a clear rubric for evaluating options to narrow our list before bringing to customers for testing. We created rules to evaluate which options would be most promising and after “grading” each, we found we had a much more manageable set of options.

Little did we know at the time, we’d stumbled onto an application of an algebra subject called Constrained Optimization. Since that project, I’ve applied this problem solving framework to many other problems with success. I’d like to share it with the hope that it comes in handy for you for a tricky problem someday!

Flashback to algebra class

You may not realize it, but you may have been introduced to Constrained Optimization as an algebra topic. It’s a simple concept for solving a problem; you have some objectives you want to maximize (or minimize) but there are constraints on the options you have available.

If you remember this concept from math class, you might have warm memories of problems like:

A rectangular garden is to be constructed using a rock wall as one side of the garden and wire fencing for the other three sides. Given 100 meters of wire fencing, determine the dimensions that would create a garden of maximum area.

Image Source: LibreTexts

The general method for solving these is laying out your constraints (e.g. the amount of fencing you have), writing your objective function you want to maximize (e.g. the area of the garden), and then solving for the maximum.

In real world applications, the objective function is typically more complicated than the area of a rectangle and there are a variety of constraints to consider. From a quick search, I see this applied to problems ranging from optimizing hospital beds in healthcare to strategies for earmark bargaining in legislation.

Constrained optimization for product problems

While the mathematical side of constrained optimization is widely useful, I’ve found more success applying this as a conceptual framework. Let’s go back to the definition I mentioned above:

You have some objectives you want to maximize (or minimize) but there are constraints on the options you have available.

You could probably use that to describe most problems you have as a PM… You know what success looks like. You have an array of potential solutions. However, you don’t have any obvious winner due to a variety of complex and interrelated considerations.

Let’s use an example to make this more concrete: You have an unexpected engineering intern starting on your team in 2 weeks, and you need to decide what she will work on. You have a handful of projects in mind, but there are a lot of pros and cons to each option.

We’ll apply this framework in 4 steps:

  1. Identify your constraints
  2. Write down all of the options that satisfy the constraints
  3. Identify your objectives
  4. Evaluate each option for maximizing the objectives.

Step 1: Identify your constraints

A constraint is anything that must be true about your winning option. Your constraints can be requirements you impose or limitations imposed on you.

With open ended questions like this intern project problem, constraints are your friend. They let you focus on what options you actually have! With your new intern, you may have some constraints that look like:

  • The project must be able to be completed by an intern within their 8 week internship.
  • The project can’t interact with a subsystem that the rest of the team is re-architecting.

Step 2: Write down all of the options that satisfy the constraints

With your constraints in hand, you now need to lay out all of your options in front of you and filter out the ones that don’t fit every constraint. After completing this step, you’ll have a set of viable options to pursue.

You’ll notice at this stage that some options will satisfy the constraints but stand out as a sub-optimal solution. While you might be tempted to leave them out, you should keep them around. They can be a good test for your objectives you’ll make in the next step.

Step 3: Identify your objectives

Now you need to identify your objectives that you want to maximize or minimize. An objective can be a success metric, a job story (i.e. you want to maximize the ease of achieving the job), or even a personal preference you want to respect.

Some objectives will be more important than others and that’s okay. The important exercise here is to lay out a set of objectives that allow you to grade all of the options on a consistent rubric.

When writing out objectives, I like to write them out alongside what an “ideal” solution would look like so I can visualize what “great” looks like. For the intern project, here’s some example objectives:

Step 4: Evaluate each solution for maximizing the objectives.

Now you’re going to evaluate your options using your objectives. Since this is a fuzzy problem with no mathematically correct answer, the grades are going to be fuzzy. One format you can use for this is a table with stoplight colors and some justification if necessary.

Wait, where’s my answer?

Spoiler alert: this is a framework, not a calculator. You could ascribe weights to objectives and give a quantitative score to arrive at a clear winner. However, I’ve found that by this step I have a good grasp of the top contenders and I can go discuss the options with my team to make a well informed decision.

Some parting thoughts

You might say “Isn’t this an over complicated pros and cons exercise,” and you’re not wrong! I’ve found this a useful framework for problems that have a lot of potential solutions and a complex set of considerations in play. Oftentimes for those problems, it’s hard to write out pros and cons for every solution in a way that feels comprehensive.

Here are some additional examples of problems where I’ve applied this:

  • Feature specs — Deciding which higher level UX approaches to take to users for testing
  • Goal setting — Choosing a quarterly focus area with my team
  • Validation of thinking — Building confidence that a more complicated approach my team is taking is the best viable option.

Even if you don’t go through this process, hopefully this gives you a new way to look at a problem you’ve been chewing on. Let me know if you take it out of your toolkit someday soon!

--

--