2021
Jankless
What would it be like to work in a team that experiences no jank? Do you have a reference point, perhaps a memory of the time when your organization’s flow felt like a flawless jazz session? Or maybe a picture…
The compounding effects of OODA
Because we are all human (future AI, if you’re reading this, you can chuckle at this naive assumption), these sources of macro-jank will be present in any human organization. The extent to which our organization is aware of them and…
Oodles of OODA loops
Our discovery of the inner OODA loop was cool, but I bet you’re thinking… just one other loop? That seems fishy. There’s got to be more, right? Throughout the story, I’ve been blithely jumping back and forth between the individual…
Performance Management Blindspot
Reflecting on the recent Google’s perf season, I came up with a framing that I decided to capture here. If you’re grappling with the last cycle’s feedback, it may hopefully add some clarity to your next steps. And if by…
Cravings and Aversions
Though immediate effects of model flattening are already pretty dramatic, its largest contributions to jank are more long term. While the model flattening is a temporary phenomenon, our experiences of it are not. We remember them. Put in the terms…
Model flattening
Before we move on from our discovery of the inner OODA loop, I want to talk about a phenomenon that plays a significant role in our lives and in the amount of jank we produce. I struggled to capture it…
The OODA inside
Because of the way we humans are wired, the expectation gradient is not a neutral measurement. For some reason, when we perceive a tiger eyeing us voraciously, our bodies immediately start pumping out adrenaline and otherwise prepare us to scale…
The expectation gradient
The conflation of “what is” and “what should be” is not the only way in which our intentions impact our prediction error rate. Another source is the intentions that we’re unaware of. To better understand what happens, we are going…
OODA and Intention
The ability to make predictions is an astounding quality of retained-mode systems. Unlike the imaginary immediate-mode beings, we can start seeing what might be. And we humans are blessed/cursed with the ability to go one step beyond that: we can…
OO and DA
As it usually happens, we find ourselves in a conundrum. When managing jank, do we focus on the accuracy of our predictions or do we try to stay on pace with the clock? There does not seem to be a…
Prediction errors and jank
It seems that the retained mode is our way to compensate for the limited capacity to receive and process information about the environment. The implicit hypothesis behind the retained-mode setups is that we can make predictions based on the model…
The model underneath
It will probably not come as a surprise to you that we humans are a retained-mode bunch. It’s cool to imagine ourselves as the immediate-mode beings: everything in the world around us would be brand new! For every cycle of…
Retained and immediate mode
At the core of the OODA loop is the concept of a model. To create space for exploring it in depth, we’ll make a tiny little digression back into — you guessed it! — graphics rendering technology.
Micro and macro jank
If our team’s OODA loop runs just a tiny bit slower than the clock of the environment, we will generate a flurry of micro-jank — many incidents that are so tiny, we can barely notice them. Unlike with machines, our…
OODA, unrolled
Putting jank and the OODA loop next to each other, it’s hard not to see the similarity. Both have two timelines racing against each other. Both describe one timeline trying to go a bit faster than the other — and…
Jank
I first learned about jank when I joined the Chrome team. It’s a weird slang word with multiple meanings, so I am going to use a narrower definition, custom-crafted just for this narrative. To get there, I will make a…
The OODA Loop
One of the lenses for which I tend to reach frequently is the OODA loop. First articulated by John Boyd in the context of combat, it’s found its way into various other spheres of strategic thinking. The way I hold…
Enumerating constraints
The process of inferring a set of constraints with which to communicate a strategy can get pretty overwhelming, so I made this handy little framework for enumerating them. It’s not a complete taxonomy, but hopefully it’s generative enough to get…
Communicating strategy as constraints
A click up from a plan is communicating strategy as constraints. When plans are constantly stymied with change, we start seeking the means to describe this change in terms of invariants. We climb up the abstraction ladder to see if…
A strategy and a plan
A colleague asked me this great question: “What’s the difference between a strategy and a plan?” Put very simply, a plan is one way to communicate a strategy. But you know me, I want to get at the subtlety of…
Slow down
I wrote this one primarily for myself, though I believe it’s good advice for anyone who’s ever found themselves in a leadership role in today’s work environment. Here it is: slow down.
The structure of a principle
We had a bit of weather recently, and while waiting for electricity to come back on, I found myself flipping through the pages of The Timeless Way of Building by Christopher Alexander. I was re-reading the chapter about the structure…
Stages of customer-centric maturity
While riffing on customer-centric mindsets and the veering toward first-order effects pattern, my colleagues and I came up with this idea of stages of customer-centric maturity. These stages are modeled after the personal development stages, like the ones in adult…
Framing and solving diverge-converge exercises
There’s this fairly common technique: the diverge-converge exercise. I first heard about it when learning about design thinking, and now recognize it in other places. The gist of it is fairly simple: break down your thinking process into two distinct…
The story of agency
Another kind of story that I’ve encountered in my exploration of coherence narratives is the story of agency. Again, it’s loosely borrowed from the Four Needs Framework and plays a catalytic role similar to that of the story of belonging.
The language frames the story
Suppose you’ve said to me that “the falling maple leaves whirl in a delicate dance with the gentle breeze.” It’s late fall, so it feels like a reasonable thing to say. The trouble is, my language only has words like…
The developer funnel
If I ever chatted with you about developer experience in person, I’ve probably drawn the developer funnel for you on the whiteboard. For some reason, I always draw it as a funnel — but any power-law visualization can suffice. As…
Developer surface
I mentioned this concept before, and I feel like it’s worth expanding on a little bit. If we are in the business of making a product that developers rely on to create user experiences, the developer surface of this product…
The story of belonging
Next in my adventure across the coherence narrative realm is the story of belonging. It sort of maps into one of the fundamental needs from the Four Needs Framework, but plays a subtly different role here.
Veering toward first-order effects
Have you ever driven a car that pulls to one side? It’s often subtle, but after a while, the counter-steering effort becomes impossible to ignore. This metaphor comes to my mind whenever I encounter a common developer experience pattern: the…
Cutting or highlighting?
Talking with one of my wise colleagues, we arrived at this neat framing around making decisions. “Decision” is a weird word. My friend Neel tells me that its Latin root is literally “to cut away,” and that recognition that a…
Making cross-cutting investments
Over the last few weeks, I’ve been thinking about approaches to influencing projects and teams across a large organization. I framed the exercise like this: suppose I have some organizational currency (headcount!) to invest. How do I nudge project trajectories…
Heuristics will be discerned and codified
Here’s another developer experience pattern that I’ve noticed. When designing APIs, we are often not sure how they will be used (and abused), and want to leave room for maneuvering, to retain a degree of agency after the API is…
Hosting and hosted API design perspectives
When discussing API design strategies, I keep running into this distinction. It seems like a developer experience pattern that’s worth writing down.
The fractal dragon
I’ve already shared this piece elsewhere, but might as well post it here. This story is almost like a piece of fantasy fiction that’s waiting to be written — and a metaphor to which I keep coming back to describe…
Causal chains
My experience is that most folks around me (myself included) enjoy employing the power of causality to understand various phenomena. There’s something incredibly satisfying about establishing a sound causal chain. Once the last piece of the puzzle clicks in place,…
Ecosystems from product and user perspective
In a couple of conversations this week, the word “ecosystem” came up, and I realized that there were two different ways in which we employed that word.
Flux budget and predictability footprint
I’ve been thinking about this idea of the flux budget as a measure of capacity to navigate complexity of the environment. With a high flux budget, I can thrive in massively volatile, uncertain, complex, and ambiguous (yep, VUCA) spaces. With…
Intention and shared mental model space
Hamilton Helmer pointed out this amazing connection between intention and shared mental model space that I haven’t seen before. If we are looking to gain more coherence within an organization, simply expanding the shared mental model does not seem sufficient.…
The story of a threat
Continuing my exploration of narratives that catalyze coherence, I would be remiss to not talk about the story of a threat.
Prototype the problem
I was looking for practices that help expand shared mental model space and thinking about prototyping. I’ve always been amazed by the bridging power of hacking together something that kind-of-sort-of works and can be played with by others. Crystallized imagination,…
Organizing and sensing connections
Tucked away in a couple of paragraphs of the brilliant paper by Cynthia Kurtz and David Snowden, there’s a highly generative insight. The authors make a distinction between the kinds of connections within an organization and then correlate the strength…
Say it in many different ways
Shared mental model spaces are challenging to grow and expand. Mental models, especially novel and interesting ones, are subtle and have to be examined patiently to become shareable. The process of sharing itself often causes the models to mutate, creating…
The story of an opportunity
While geeking out on this idea of coherence and possible mechanisms that bring coherence, I ended up in a fun rabbit hole of narratives as catalysts for coherence. There seems to be certain kinds of stories that somehow end up…
Consistency, cohesion, and coherence
My colleague Micah introduced me to this framing of different degrees of organization and I found it rather useful. Recently, I shared the framing with my son and he came up with a pretty neat metaphor that I will try…
Limits of attachment and capacity are interlinked
It felt both liberating and somehow odd to make a distinction between the limits of capacity and attachment. I’ve been thinking about that oddness and here’s an extra twist to the story.
It’s a unicycle!
Thinking a bit more about correlated compounding loops, I would like to improve on my metaphor. I can’t believe I didn’t see it earlier, but it’s clearly not a tricycle — it’s a unicycle! Having never ridden one, I can…
Complexity escape routes and listening to learn
I was teaching the workshop on complexity this week, an outgrowth of my Adventures In Complexity slides. One of the interesting ideas that I was emphasizing during the workshop was this notion that we humans tend to be rather uncomfortable…
Settled and “not settled yet” framings
I was working on decision-making frameworks this week and had a pretty insightful conversation with a colleague, using the Cynefin framework as context. Here’s a story that popped out of it.
Rigor and shared mental model space
Alex Komoroske has another great set of new cards on rigor and here’s a little riff on them. The thing that caught my attention — and resonated with me — was the notion of faux rigor. Where does it come…
Correlated compounding loops
A thing that became a bit more visible for me is this idea of correlated compounding loops. I used to picture feedback loops as these crisp, independent structures, and found that it is rarely the case in practice. More often…
The miracle count
While working on a technical design this week, my colleagues and I brushed up an old framing: the miracle count. I found it useful when considering the feasibility of projects.
Effectiveness and certainty
I’ve been thinking about the limits to seeing, and this diagram popped into my head. It feels like there’s more here, but I am not there yet. I thought I’d write down what I have so far.
Open-endedness and bedrock
I’ve been inspired and captivated by Gordon Brander’s exploration of open-ended systems, and was reminded of a concept that we developed a while back when working on the Web Platform: the bedrock. My old colleague and friend Alex Russel and…
Growth, control, and tricycles
Riffing on Alex Komoroske’s excellent set of cards on compounding loops, there’s something really interesting about the relationship between compounding loops and properties of a theory of change. A compounding loop makes an excellent motor: every cycle produces a bit…
Limits to seeing: capacity and attachment
Helping a colleague process tough feedback this week, I’ve been reaching for a framing to describe something subtle around the nature of the limits to seeing another’s perspective. This story tries to get at this subtlety.
Triggered, intentional, and spontaneous coherence
I’ve been chatting about organizational coherence with a few folks, and this question intrigued me: what are the conditions that lead to coherence emerging? Sifting through my experience, I ended up with these three (still playing with the labels for…
Orders of Humility
Alex Komoroske and I had a great generative conversation today and as usual, I have a new framing to write down.
Rock tumbler teams
Growing a well-used platform developer surface is exceptionally tricky work. I’ve heard many stories of the team investing months (or years) into building a new set of APIs or protocols, only to encounter at best lackluster interest. To arrive at…
Why will this be hard for us?
I was working on a strategy and helping review another this week, and found this framing helpful. Especially in mature organizations, the challenge tends to reside not in determining how to do something, but rather in finding what makes this…
Want, should, will
While spelunking my network of assumptions, I often find it helpful to understand what animates my actions. What are the underlying stories that shape how I behave? Over time, I ended up with this simple framework of sorting my stories…
People-keeping and mission-keeping
In a couple of conversations this week, this distinction between people management approaches kept popping up. I am pretty sure this is incomplete, but it seems useful, so here goes. In my experience, it feels like competent people management falls…
The music we play
One of my colleagues shared this metaphor and I was mesmerized by it, expanding into this vignette. They suggested that if we could pretend that teams are playing music, we could imagine the kind of music that we would hear.
The nature of the challenge
While working on a strategy this week, I realized that one of the most common missing bits from a well-designed strategy is a discussion of the nature of the challenge.
Mindset transitions and coherence
I wonder if in the framing of organizational mindsets, there’s a pattern with transitions across playing to win and playing not to lose. It seems that all teams that I’ve been on and worked with struggled through these transitions, and…
Polarity-based API layering
While discussing API design, one pattern that caught my eye was polarity-based layering. It’s something that I’ve learned to do intuitively, but thought it might be worth capturing.
Spelunking our network of assumptions
I’ve noticed that my ability to operate in an ambiguous, complex environment depends strongly on my capacity to see a larger space of options and possibilities. There’s something very natural and yet completely unproductive about reacting to complexity with fear…
Questing, Scaling, Keeping
I’ve written a couple of takes on this before, but they didn’t feel quite right, so here’s another iteration. Keep that rewrite count ticking! It seems that there are some distinctions that I can draw when looking at the missions…
The rewrite count
As a software engineer, I often see a struggle that both teams and individuals experience: overcoming the anxiety to “get it right” the first time. And it makes sense! We want to make sure that when our software ships, it…
Being excited about disagreement
Chatting with colleagues this week, I am recognizing that it might be useful to talk here about disagreement. I used to hate disagreement. I would get tense and have this pain around my neck anytime I sensed a situation where…
Own the tension
A couple of this week’s conversations about platform/product team interactions led to this insight. I’ve been noticing a weird tension between teams that are collaborating on certain kinds of projects and it wasn’t until I applied the 1P/3P framing that…
Organizational mindsets are developmental
I’ve been playing some more with the idea of organizational mindsets in the context of a discussion of a team that finds itself “playing not to lose.” The thing that stuck out to me was that instead of seeing these…
Align on interop
A discussion of how to get an engineering project unstuck led to this insight. When examining sources of tension in engineering projects, there’s a common pattern that I see: the struggle to align on architecture. Fueled by the very reasonable…
Letting go of mind-reading
Cognitive Behavioral Therapy folks consider mind-reading as one of the cognitive distortions, and it’s been puzzling for me: on one hand, understanding that another person has thoughts and feelings and trying to sense them feels like an important skill. On…
The challenge of coherence
Part of my work involves spotting challenges across teams within Google. Over time, I’ve learned to notice different kinds. Sometimes they are engineering challenges, sometimes they are product or leadership challenges. I even learned to recognize UX and UXR challenges.…
Sitting with discomfort
While processing a difficult conversation with a colleague, we found this insight. As leaders, we bring power dynamics into our interactions. Whether I want it or not, my title has sway, and that itself can close or open my opportunity…
A motor and a rudder
Having done a bit of work on researching and sketching out strategies this week, I realized that there are some commonalities in their theories of change, a few patterns that I start seeing.
Forces of the pace layering confusion
I had a super-insightful conversation this week with a colleague about approaches to resolving pace layering confusion. For those of you who haven’t heard of it, Steward Brand’s concept of pace layers is something I’ve often applied to layering in…
Watch for platforms to emerge
A recurring theme in my conversations is the question of platforms. How do I get one? Do I have one? How do I know? Platforms — especially developer platforms — are a really exciting topic for me, so I tend…
Playing to change
I have the most amazing job. In my role, I get to talk with many teams across Google, learn from them and help them find how their ideas fit together. Through this adventure, I notice that teams have a variety…
Weak opinions, strongly held
Chatting with one of my coworkers, we recognized that there’s a pattern that is the inversion of the somewhat popular “strong opinions, weakly held” framework.
Crappy and the fear of rejection
My colleague and I had this observation about companies who are in partner-like relationships (be that a standards organization or an open source project): there tends to be this weird unhealthy dynamic that keeps playing out. Concepts or proposals of…
The productification trap
Picking up on last week’s 3P insight, I want to share some insights I’ve learned about a common trap of working in two-sided markets. I call this trap the “productification trap”, and it appears in two different varieties.
The ghost of unclear theory of change
The unclear theory of change often haunts conversations about strategy — especially the longer-term strategy. It may be worth pointing out the ghost: “what’s our theory of change?” If you look up the basics of the theory of change, this…
Something will get optimized
Complex adaptive systems tend to make it difficult to make guesses about precise shifts and movements. Unlike in complicated systems, accurate call shots are rarely a thing. However, if we pay close enough attention, we can spot patterns (events that…
Leading while sleepwalking
Talking with one of my colleagues, we arrived at this interesting insight. There’s a certain kind of trap that a leader might find themselves in. We named it the “sleepwalking leadership.” It seems to disproportionately afflict leaders who hold a…
What the heck is 3P?
I hear folks using the terms “3P,” “1P,” and even “2P” or “0P” often in my line of work, and I am realizing that many times, these words have subtly different meanings for those who use them. So I figured:…
The Relationship Polarity
I’ve been feeling a little stuck in my progress with the Four Needs Framework, and one thing I am trying now is reframing my assumptions about the very basics of the framework. Here’s one such exploration. It comes from the…