13th December, 2022 Darlings
Professional writers (like journalists, novelists, screenwriters, and so on) make their living on creating engaging content. In that creative process, sometimes those authors create a “darling”–maybe a turn of phrase, a plot element, a metaphor, or a character–that they get too attached to. When this happens, sometimes, this “darling” becomes a distraction that harms the overall work. For all its cleverness, the darling sometimes just doesn’t fit properly into the narrative. The common advice for authors in this position seems brutal: kill your darlings. I mean, for someone whose job is to create engrossing copy, shouldn’t they make the most of their linguistic gems? The advice isn’t to edit the darlings, or rework them, or soften them, or sharpen them, but to kill them. Harsh, right?
We often get darlings in software development, too. Ideas for features that may or may not fit with the overall design or goal. Features that you’re sure will work great, make tons of money, and be overwhelmingly popular. Specific colors, layouts, user experiences, data models, and so on can all be darlings if there’s insistence that it has to be exactly that way and there’s no openness to exploring alternative ways to accomplish the same goal. Just as authors fall in love with clever bits of writing and get too attached, we can do the same thing designing software products.
Turns out, “kill your darlings” works in software just as it does in writing. Killing darlings is about finding better, more cohesive ways to express the same concepts. It’s about trimming away unnecessary and distracting elements. It’s about seeing the big picture and not getting too lost in a particular detail. It’s choosing value over ego, collaboration over dictation, and data-informed decisions over bets.
Kill your darlings, kill your darlings, even when it breaks your egocentric little scribbler’s heart, kill your darlings.
-- Stephen King (yes, that Stephen King), On Writing