alex petralia


orthogonal iteration

Humans crave what it is predictable, and as a result, have a default tendency to incrementally iterate. That is, in order to optimize toward a better outcome, we slightly tweak what we’re doing now. Incremental iteration is highly linear in nature: we expect predictable and regular improvements in the output based on changes in the input.

In the most basic sense, I imagine this as a single variable of which we can do more or less. For example, we may vary how much we spend on advertising in order to find the optimal amount which maximizes profit:

Since this is a single input dimension, we can also visualize it as a line (or vector):

So spending more or less on advertising would simply be moving along the line. Again, this is how most of us improve our decision-making by default.

What I’m curious about is when we question that default option. What if we didn’t incrementally iterate? What else could we do?

Well, we could approach the problem from an entirely different perspective. We could orthogonally iterate. Instead of moving along the initial vector, we could explore solutions along a completely orthogonal vector.

By adding a dimension such as “PR spend,” we may find that we’ve opened ourselves up to completely new opportunities and potentialities. In this example, we may be able to unlock a higher level of profit than we could have by using the single dimension of “advertising spend.”

Not only can we vary our PR spend exclusively, we can vary both our PR spend and advertising spend. Varying two dimensions in the parameter space yields a three-dimensional surface along which we can find a new global maximum.

The point here is that we may unlock new local maxima as we veer off the trodden path of a single input dimension. Orthogonal iteration allows us to explore new peaks across multiple dimensions.

What would happen if we changed our default to iterating orthogonally? What if, after every failed iteration of a marketing strategy, financing strategy, product strategy and so on, we did not tweak but rather radically switched gears?


Alas, there are tradeoffs.

For example, upon finding success in a newly launched product feature, it would not make sense to switch gears entirely and develop yet another new feature. Rather, we should stick to incremental iteration when we extract substantial information about what works, and instead slightly tweak those input variables in search of a local maximum.

On the other hand, when an outcome yields little to no information about what works, or when we need to unlock new peaks in value, we should prefer orthogonal iteration. For example, if we try and raise money from friends and family to no avail, it may make sense to raise money orthogonally, perhaps in a Kickstarter campaign or an ICO.

Ultimately, there is no hard and fast rule here. But I always think it’s useful to question our defaults. And in particular, it is useful to consider the non-linear, “unlocking” value of orthogonal iteration, at least as often if not moreso, than that of incremental iteration.