#44 - Kill Your Darlings.
“The only kind of writing is rewriting”
— Ernest Hemingway
I’m happiest when I’m writing code. And yet, a couple of weeks ago, I was dreading the idea of writing another line for my startup’s app, Wednesday Waffles.
Our app has tons of terrible reviews, all related to our ever-growing list of bugs. And, if I’m being honest with myself, even if we were to squash all those bugs overnight, I don’t think we’d be left with an app whose UX is perfect match for the problem we’re trying to solve.
I knew that incrementally improving the app just wasn’t going to get us where we want to go. I felt stuck. Until I started thinking like a writer.
Any seasoned writer knows that the magic of a great book is never found in the first draft.
A great writer is willing to treat their first draft as an outline, not a finished product. They’re willing to rewrite their second draft from scratch, with a meaningfully different plot and cast of characters. They’re willing to hand that second draft over to beta readers to rip to shreds before writing their third.
And the very best writers are will continue that maddening cycle of destruction and recreation until they can look at their manuscript and say, honestly, “That’s the best I can do.”
In the writing world, there’s an expression for this ruthless cutting of the imperfections you’ve grown to love:
“Kill your darlings.”
In the software world, we should also get comfortable with the art of revision. Sometimes that means letting go of code we’ve poured months of effort into, and embracing a fresh start to craft the masterpiece our users deserve.
After all, the best products, like the best books, come from the courage to throw out work and restart.
So that’s what we’re doing! We’re tossing out v1 of the app and building the next version (v25) from scratch.
I brought up the idea to Zameer (our CEO), and after some back-and-forth, he was bought in. We jumped in a product meeting the next day and put together the plan that we are now executing:
We’re changing up our tech stack (Supabase → Firebase, Stacked → Riverpod) that will let us move faster in the long run.
We’re rebuilding from the ground up with test-driven development to ensure major bugs don’t hit production and hurt our users.
We’re totally revising the user experience using all we’ve learned these past few months, so this next version is not just less buggy—it’s also just better.
We’re “killing our darlings”, and I’m thrilled about it. I’m writing code with a smile on my face once again.
I hope you smile too when you use the new version.