Dimitri Glazkov

Live as our customerfour days beforeThis principle is something that feels very intuitive at first blush, but…Build a thing to build the thing

· 6 min read

When building new products, there’s always a weird tension between making something “real” and production-ready, and spending a bit of time just experimenting with all of the various ideas of what this “real” might look like.

Shadows and Curses2022The second curse can be seen as the interplay between “ 🔮…This tension is less noticeable when we actually know what we want to build. If I am building a new Web rendering engine, I literally have all the specs – and a few well-established implementations for reference. However, when the actual product is a bit of an unknown, the tension starts to surge.

The structure of a principle2021Now that the forces are defined and it’s fairly easy to see…The tension between growth and control2023I alluded to this tension before, but it was somewhat buried in…Chances to get it right2023This has been rolling around in my head for a while, and…There are typically two forces that create this tension. First, therse’s the desire to ship expeditiously and engage the customers. This might come from the intention to maximize our chances to get it right, but also could just be a business necessity.

The waterline2023This one is a very short framing, but hopefully, it’s still useful.…Then, there’s another force – the desire to deliver something that truly resonates with the customers. It’s bizarre how the underlying animating intention could be the same “let’s get it right”, but the approach is different: instead of jumping in as soon as possible, we try to first figure out what “right” looks like.

Aircraft Carriers and Zodiac Boats2024An insightful conversation with a colleague inspired me to articulate the distinction…Separating cargo from the train2023I’ve been puzzling over a problem that many engineering teams face and…My intuition is that the two varying approaches come from different evaluations of the “chances budget”: how many chances does this particular idea have before we blew it? Folks who see a large chance budget will veer toward “let’s just ship something and iterate (or survive/get promoted, etc)”. Folks who see only a handful of chances in the budget will tend to “let’s first get our ducks in a row”.

Cutting or highlighting?2021Talking with one of my wise colleagues, we arrived at this neat…Growth and control biases2023When we don’t recognize that growth and control are in tension with…Polarity of intention, structure, and capacity2022A similarly recent thought led to this notion that consistency’s key attribute…Depending on the organization, there will be a pull toward one extreme or another: and sometimes a soup of both at the same time. There might be peeps jumping to ship whatever remotely looks like a feature and spend marketing dollars on boosting its visibility. There might also be people trying to carefully orchestrate large-scale “spherical cow” ecosystems that can only practically exist in a caffeine-induced slide deck.

📐 The Principle

No ship ums2023I’ve been thinking about the path that software dandelions take toward becoming…The rewrite count2021As a software engineer, I often see a struggle that both teams…Forces of the pace layering confusion2021I had a super-insightful conversation this week with a colleague about approaches…In my experience, the trick to resolve this tension is the practice I call “build a thing to build the thing”. It’s a pretty simple trick, please don’t get too excited. The hard part is mostly in knowing how to apply it.

Doers, Thinkers, and Magicians2023I’ve been reflecting on my experiences of working with developers and developer…Veering toward first-order effects2021Have you ever driven a car that pulls to one side? It’s…When we decide to “build a thing to build the thing”, we agree to focus first on building something that is immediately adjacent to what we actually want to build. In the developer experience field, this adjacency most commonly looks like this: “Let’s build something useful with our product, and see what we learn from it”.

The cost of opinion2022Below is the reasoning that went into this little ditty. The first…If we’re building a new library or framework, let’s build something that uses it – so that we learn how to improve our library or framework. Build a thing to build the thing.

“Earnest effort” is an important ingredient. If this is just some half-hearted dabbling to check the box, the trick will not work.

Going Forward Is Leaving Past Behind2014I want you bastards to let me build things that are not…Close to a decade ago, when I was working on the Chrome Web Platform team, we wanted to get a better sense of whether or not the APIs and primitives we’re shipping are actually helping developers make better mobile Web applications.

Stages of project forking2023To give you an example of this progression, here’s an abbreviated (and…So a few of us locked ourselves in a room and spent a few weeks actually trying to build a clone of a well-known mobile app as a Web app, powered by the latest and greatest bits that we were shipping or about to ship. Our hypothesis was a negative proof: if we – the people who actually build the platform bits – can’t do it, then nobody can.

Live as our customer2023This principle is something that feels very intuitive at first blush, but…We also adopted the “live as our customer” posture and used only the tools that were available outside of Google.

Development environment for rapid experimentation2023To set things up. I was looking for a way to enable…Every week, we wrote up a report of what we learned. Where the friction was, where the seemingly easy tasks turned into albatrosses. Where primitives and APIs that we thought were useful actually weren’t.

Behavior over time graphing tool2022It was an interesting adventure. From the start, I wanted to go…We failed gloriously. I remember showing the Web app to our VP and the first load taking hundreds of seconds on a reasonably crappy phone. We tried hard. We rummaged in all the bags of tricks. We profiled JS. We profiled C++. We messed with V8 and Chromium code trying to make it less slow. In one particularly unwise moment, I wrote code to construct DOM with C++.
At the end of the adventure, we had an incontrovertible proof: if we wanted for mobile Web apps to be on par with their native equivalents, we had to do something different as a team.

This exercise served as a shift for how I and my colleagues thought about what’s important (and not important). It triggered a change in priorities for the larger organization. I’ll spare the gory details of how it all went down. Suffice to say, a big chunk of the current narrative about Web performance was shaped by the insights we gained from our adventure.

Edgewise Thinking2023One of my mentors had a habit of designing through mocks: sketching…Sometimes, building a thing to build the thing is clarifying like that. Sometimes, it just creates more questions. Whatever the outcome, there will be precious insights, waiting for us to be harvested.

💔 The hard part

Being Strategic2022It all begins with intention. There’s something in our environment – the…The greatest challenge of adhering to the “build a thing to build the thing” principle is in our own ability to be honest with ourselves.

Beyond pros and cons2023After observing it in the wild, one thing that I am noticing…Here are some failure cases that I’ve seen. Use them as tripwires if you decide to apply this principle.

The productification trap2021Picking up on last week’s 3P insight, I want to share some…Developer surface2021I mentioned this concept before, and I feel like it’s worth expanding…1️⃣ The DevRel trap. During the exercise, the people who are building on top of the product are different from those who are building the product.
For instance, a contractor or a DevRel team is building an app with the library that the engineering team built. This insidious pattern is so widespread that it’s even considered a best practice. In my experience, it is anything but. It feels so obvious: of course DevRel folks are the best people to do this project!

Fix-forward and rollback commit stances2023However, there are also several drawbacks. First, it could take a while…However, most of the valuable insights will fall into the crack between the DevRel and the engineering team. Glorious failures will not trigger reevaluation of priorities, but rather shrugs and side glances at the DevRel team: “Well, maybe they’re not as good as we thought they were”.

Builder and Gardener Mindsets2022Briefly, the distinction emphasizes the difference in mindsets with which we approach…2️⃣ Forgetting the thing. We get so engrossed in the exercise that we forget which thing we’re actually building. This most commonly happens when the main product is vague and ill-defined, and the adjacent thing feels a lot more concrete and graspable.

The chain of events that leads to this failure case usually looks like this:

There is nothing wrong with a product pivot. Just make sure it’s done intentionally.

Weak opinions, strongly held2021Chatting with one of my coworkers, we recognized that there’s a pattern…3️⃣ The confirmation demo. Like confirmation bias, confirmation demos only show the good parts of your products. These “things built to build things” aren’t made to challenge the assumptions or draw insights. They are carefully crafted potemkin villages whose entire purpose is to avoid novel insights to be drawn. These things will change no minds.

Don’t get me wrong. Demos are important. However, they are in an entirely different universe from applying the “build a thing to build the thing” principle.

Generating ideas and strategy coherence2022Here’s the thing. In software engineering (as likely in many technology fields),…Prototype the problem2021I was looking for practices that help expand shared mental model space…One miracle at a timetwo days afterTechnological innovation can be viewed as a network of miracles: breakthroughs that…Composing graphs with Breadboardlinks here, 2023Looking ahead, I am quite optimistic about Breadboard. We already have a…AI Patterns and Breadboardlinks here, 2023As part of practicing the “build a thing to build the thing”…The Bootstrapping Phaselinks here, 2024I think I have a slightly better way of describing a particular…Anytime the ambiguity of the path forward is high, and it is not quite clear what we’re building, it might be worth having at least one “a thing to build the thing” exercise in progress, and that the insights from it are collected diligently to aid with navigating complexity.

Show 2 comments
  1. AI Patterns and Breadboard – Dimitri Glazkov linked here · August 28, 2023

    […] part of practicing the “build a thing to build the thing” principle, we implemented quite a few of AI patterns in Breadboard. I will use the diagrams we […]

  2. solpuxk · November 19, 2024

    I thought the same way and started building. started with the easiest thing I can think of a coin flipper now I can build ai tools.

    https://justbuildthings.com