This story is about an accomplishment at work. Due to it being work-specific I won't go into too much detail, so it won't be necessarily useful. It's just a personal piece. For various reasons (such as changing places, raising a child, workplace politics, poor luck) I haven't got any clear wins under my belt for quite some time, probably since building a Python team at Yandex 15 years ago. So this one feels a little special.

Inception

A couple of years ago our department — we're doing billing at Datadog — faced a point at which individual teams accumulated a lot of hard-coded, duplicate, undocumented, constantly diverging configuration about products. My team had it especially bad, as we had to maintain essentially identical pieces of config in two different languages across two different code repositories, and synchronize bits of it to yet another one.

So on the next department-wide gathering I volunteered to create a prototype of a solution in the form of a shared config service. The idea wasn't controversial, and there was no details yet to object to, so it became the moment where I put my stake in the ground.

Progress

It went way slower than I expected (and I thought about my initial estimates as conservative ones!) Sure, the prototype within our team took shape pretty quickly, and soon significantly simplified making ongoing changes to products. It was convincing other teams to bite the bullet and switch their code to the config that took most of the effort. Because by its nature, such a change makes things harder at first: you suddenly need to make network requests instead of simply relying on hard-coded data, and you now need to think about backwards compatibility of your data consumed by others. It's only after a while you (or not even you) will start profiting from reduced duplication and simplified processes due to data being available from a single source of truth.

But we got there. We got Product people on board, we acquired a manager, we started producing OKRs, we involved more engineers… And while there wasn't a clear moment of a "launch", on our latest department summit I realized people from various teams were mentioning "the config" not just as a nice idea, but as something definitely existing, and I was in the middle of all those conversations. It felt like a pivotal moment, and it was a warm, fuzzy feeling :-)

What worked

A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work — John Gall.

And that's the story!

Comments: 3

  1. Anton

    Kinda like your naming idea. And happy to see yet another post in this blog!

  2. Ivan Sagalaev

    And happy to see yet another post in this blog!

    Glad to know someone's still following

  3. Pavel

    Glad to read about new "Win" and some secrets behind

Add comment