Network design discussions often involve anecdotal evidence, and the arguments for preferring something follow up with
“We should do X because at Y place, we did this.”. This is alright in itself as we want to bring the experience to avoid
repeating past mistakes in the future. Still, more often than not, it feels like we have memorized the answers, and without
reading and understanding the question properly, we want to write down the answer. Ideally, we want to understand the
problem and solution space and put that into the current context, discussing various tradeoffs and picking the best
solution in the given context. Our best solution for the same problem may change as the context changes. Also, this
problem is everywhere. For example: Take a look at this twitter thread
Maybe one way to approach on how to think is to adopt stochastic
thinking
and add qualifications while making a case if we don’t have all the facts. The best engineers I have seen do apply similar
thought processes. As world-class poker player Annie Duke points
out in Thinking in Bets, even if you
start at 90%, your ego will have a much easier time with a reversal than if you have committed to absolute, eternal certainty.
Now we aren’t going to fix human behavior anytime soon. However, purely from an analytical perspective, for us to be able
to quantify things, many times, we need to rely on modeling and simulation. But often, those frameworks don’t exist. One
such area was quantifying routing protocol implementation behavior for a given topology until Sibyl
came out to help us. At a high level, It proposes various metrics to measure routing protocol implementation, allows you
to spin up the topology of a given size with a given protocol implementation, and then measures those metrics for a given failure.