Years ago, while working with a brilliant team, I struggled to come to grips with something. We had massive data needs. So we hired a database expert. Things were great, but eventually the expert couldn’t keep up with the demand. I suggested we hire another and look at doing fancy things with the database to make things continue to work. The business and tech leads on the project took things in another direction.
Instead of hiring another expert, and making the system more complicated and dependent on expertise, we did the opposite — we put simpler data systems in place that scaled better and were easier for developers to learn — Hadoop, MongoDB, and others. I expected failure because of how much work I’d seen the expert put in to making the data easily accessible.
The result of the shift was that every developer understood the technology well enough to make it do what they needed it to. We reduced our dependency on the expert, eventually removing the need for deep expertise altogether, while improving the performance, reliability, and scalability of our systems.
I learned the lesson of simplicity that day, which I’ve carried ever since. But I struggled to effectively articulate exactly why it was so important.
Today, while reading Making Work Visible, I came across this gem:
“When coordination needs are high, people aren’t available when you need them. The same is true for experts — when demand for a skill is high, experts are unavailable.”
That’s it. That’s the answer. Simplicity matters because expertise is inherently a bottleneck. More bottlenecks means later delivery, and greater likelihood of unforeseen problems.