seconds

view article on x.com

seconds can change everything

a couple extra seconds on a loading page and a chunk of customers leave, a few extra seconds to think something through can be the difference between success and failure

but there are also second chances, getting called back for a second interview, a second date, or in this case a second post

a sign of something that will continue, a commitment to repeat, to do better


the second build

the second time building a thing because the prototype didn’t account for some edge cases is always an interesting jump

we want our prototype to minimally fit the happy path, to prove the thing we made actually solves a problem and has a place in our solution space

after the prototype there is a subset of people who immediately rebuild the whole thing, now with tests and “proper” tooling, documentation, linting, build pipelines, dockerfile(s), ephemeral local environments, maybe even proper resource allocation through something like helm, so our little prototype can hyperscale to billions of people and-

before jumping down that rabbit hole and allocating months of time and effort to such a large scale “enterprise-ification” of this prototype, we should ask if it is really worth it?

sometimes the answer is a resounding yes, but more frequently than not i see this massive time sink to “fix” something that is working just fine

as developers we are sometimes fiends for wanting to do something “right” after building the sloppy and unoptimised single-file first version, sometimes we don’t even like to call that version one for fear of some karmatic retaliation

over time i’ve gained some resistance to this urge, it gives you some major benefits, you can move fast and get something up and running quickly, the value of the thing you build is immediate instead of delayed, and you can rest comfortably with the knowledge that if it doesn’t work out you can just write it again in the same time or less


that is actually the strongest reason to not jump to the all-singing all-dancing version two

if you built it before, the second time will be faster, better, and hit more of those edge cases- it is like seeing the future, you already got that xp

you can change language, swap tech stack, do it without a heavy-handed library, make earlier and better intentioned abstractions, you already know how it all plays out, your understanding of the requirements is more refined


in theory that means it should just flow, the hard part is done

take a second to make your second version a second chance at a great prototype, treat it like a second wind and try not to get caught up in figuring out the details for a second time

better to repeatedly move fast and ship, than to move fast once and inherit your own technical debt

alia