bff: build friction fix
just start.
the rapid pace of change right now in tech world feels overwhelming. timelines are compressed. new tools & new ways of working popping up left and right. all the things so fast.
for months, i said i wanted to get started, to get building. but i wasn’t taking the first step to actually build. instead, it was reading articles, chasing best practices, tweaking configs, getting my setup dialed.
at some point in late 2025 or early 2026 (maybe the hope of a new year?), i realized there’s no singular perfect prompt. i had to start somewhere. building, writing, engaging, finding the connections. just taking a first step. this realization freed me up.
bff (build, friction, fix) is a pattern that emerged after a few months of building.
i use it to give myself the permission, the freedom, to get started and take the first step. it applies on varying levels of granularity: a single session, larger features, entire projects or far-flung dreams. a self-reinforcing fractal pattern. small to wide to wider.
let emergent patterns emerge.
build
in this phase, the most important thing is to build. that’s it. take one step. try something, try anything.
release the idea of perfect. release premature optimization.
does not matter where you start. maybe it’s code, research, analyzing data, jotting down ideas, brainstorming, synthesizing an article, compiling pieces to search for connections.
yes, it takes from your experimentation budget. trying things has a cost.
take one step now to build. build something. literally anything. start now.
friction
friction will happen. not if, but when.
as you build, notice. be aware of what wasn’t quite as simple as you wanted or what didn’t go like you expected. but don’t stop to fix it yet; that’s the land of rabbit holes. keep building.
(admittedly, yes, i’m spending more and more time in these rabbit holes. always have. i’m making rabbit friends, we’re chatting, hanging out. i’m a big waver in my neighborhood and elsewhere. lots of waves, lots of head nods. i’m head nodding and waving to rabbits as they welcome me to their communities. thankfully, though, i keep finding my way back to the main path.)
so as i build, what am i noticing that’s not quite as smooth as i’d like? what was harder than i anticipated? i jot these down simply, a quick word or three. we’ll come back to these.
once you’ve built the thing and you’ve got your noticings on friction, now’s the time to get explicit. name them. compile a quick list. brain dump it out.
as i’m writing this post, here are three frictions i’ve named and will apply fixes to moving forward. raw words, here they are:
notes to words: notes to verbal brain dump clarified my thinking. but taking the verbal brain dump and crafting it into “what is the kernel? what is not being lost in transition?” how do i get these ideas actually into this writing system without losing the fidelity that matters? i’ll figure out how to make this better. we’ll figure out how to fix that in the future.
finding my voice: this co-intelligence combination, collaborative style. i’m having to think, when do i say something exactly as i want it? do i want it to go through a summarization process, because i don’t feel like it’s capturing my voice? we’re capturing my voice along the way. we need to figure out what’s my writing style and how to be clearer with what’s a quote, what’s an idea that we summarize versus directness.
ship it: the drafting process is key. go from skeleton notes all the way through to “hey, when is this done?” set some timers. am i losing the essence, or am i making the essence clear? this is going to be hard to navigate. when is it ready? just send it out and see how people engage. when do i feel good enough? i just have to keep going, knowing that my pattern can be side quests, more of this, more of that. this will be a friction that we’ll have to figure out as we move forward.
friction is expected. by naming it, we now have a chance to fix it.
fix
now we get the chance to improve our system and carry it forward.
talk with your tool, claude, opencode, codex, whatever you’re using. “here’s the friction i had. how can i fix this moving forward?”
and in conjunction, ask yourself the same question. how might i fix this? what do i think the recommendation will be? i’m literally asking myself in the same way i’d ask the tool.
this is a great way to understand the shape of the system. sometimes what you think and what the tool recommends don’t line up. that’s where the learning happens.
the fix might take different forms.
human clarity
we’ve learned some things. knowing what we know now, how can i say this differently?
you know now what you didn’t know then. maybe it’s a framing fix. am i providing enough context? have i done the thinking? is my lack of clarity causing the challenge?
lazar jovanovic talks about this with his debugging workflow. when something breaks, he steps through layers: let the tool try, then bring your own awareness, then bring in an external tool, then check if it’s your fault. and when the fix lands, he asks the tool:
“i needed to do four different things to fix this. how can you help me learn to prompt you better so that next time, we do it in one go?”
then he goes further:
“put what we just learned into rules. i’m not going to prompt you better. you’re just going to learn and prompt yourself better.”
the human clarity is the bottleneck, not the tool. as lazar puts it, we’re going to be rewarded for clarity, judgment, thinking. building it is going to be instant. it’s the thinking that matters.
structural fix
maybe the fix isn’t how you said it. maybe it’s the system around you.
a change to your CLAUDE.md. adding something to memory. a skill, a hook, a command. these are the primitives, the composable building blocks.
maybe it’s a tool fix entirely. the one you’re using isn’t getting anywhere. you’re spinning. switch tools. “here’s the input, here’s the desired outcome, how do i get there?”
when you’ve got a hammer, everything’s a nail. cool, treat it like a nail. apply your own bff loop here and you’ll get more tools. all the tools. and the judgment on when to use them.
“but you said there’s no perfect prompt.” it’s not about finding that perfect prompt. it’s about thinking, how can i say something different? how can i do something different? how can i build the system so that the system is more important than any one single prompt?
and here’s the thing that stacks on it: you can always change it later. that freedom is magical. i’m fixing this one piece of friction right here. then i’ll do another bff cycle. and another. and another. just bff looping for days.
bff: the widening gyre
build. friction. fix. repeat.
the power is in the loop. the interactions over time stack together. that’s compounding.
i’m taking the smallest first step. noticing where things weren’t smooth. naming it. fixing it.
because we’re taking action and reflecting, patterns emerge. the shape of the challenges. the shape of how you work. the shape of the work itself. you’re building your system.
what didn’t go well? what do we want to experiment with? these aren’t new questions. but they’re hyper-personalized. my experience. my actions. my reflections. my fixes. yours will be yours.
as you work, you will evolve. maybe you start from scratch entirely when a system no longer fits what you need or want. awesome.
the same pattern repeats at varying degrees of granularity. fractals.
yeats wrote about the widening gyre as dark, destructive, things falling apart. the system you built no longer fits? that’s not failure, that’s growth. that’s freeing. you’ve got the tools to come back to center and rebuild. wider this time.
here’s what i found. i want to see what you find. let’s chat :)
a friend guessed that bff meant “build fucking fast” based on what i’ve been encouraging over the last few months. yes, that applies here too. compress the learning. establish your system. let’s go.
happy bffing.

Comments