{
  "id": 8672565,
  "title": "Grit your teeth and ship it",
  "url": "https://urgent.news/2026/09/20/grit-your-teeth-and-ship-it",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-09-20T02:12:23.000Z",
  "source": {
    "name": "Lobsters",
    "slug": "lobsters",
    "url": "https://www.seangoedecke.com/grit-your-teeth-and-ship-it/"
  },
  "original_language": "en",
  "account": "Being proficient in creating software and excelling at getting it out into the world are distinct abilities. In the short term, they can work against each other: having a talent for crafting code might make you less adept at deploying it. Ira Glass, a renowned voice in creative arts, eloquently describes this phenomenon. Those immersed in creative pursuits often start out with impressive talent, yet their work feels far from perfect. The taste that drew them to the craft continues to be a source of disappointment, as their creations don't match up to their expectations. The key to overcoming this challenge is to push through and release the finished product, regardless of perceived flaws. Gifted programmers often exhibit an obsessive drive to construct flawless, efficient, and neat systems. This inclination, while fueling their dedication to learning intricate programming details and refining their code, also makes them hesitant to ship their work. Any imperfections in the software can evoke strong emotional reactions, making them feel as though they haven't worked hard enough to rectify them or that their efforts are insufficient. This mindset can be counterproductive in a corporate setting, where a software project is bound to have numerous flaws due to various factors like time constraints, relative inexperience, or complex feature requirements. The process of improving a large codebase involves making compromises, such as embracing certain inconsistencies, assuming they're not severe. Gifted programmers may struggle to move forward, often retreating to more manageable areas where they can ensure the code is \"correct.\" This could involve tweaking the development environment or refining tests. Sometimes, they may even remain idle, mired in guilt and shame over not achieving meaningful progress. This cycle can lead to burnout and resignation. However, it's important to note that improving a poor code diff is possible through time and effort, whereas no diff cannot be improved. A keen sense for awkward phrasing and uneven prose can make writing a frustrating task, as the writer knows their intended message but struggles to articulate it clearly and eloquently. They may finish drafting a blog post only to question its quality. Yet, with consistent practice, shipping becomes more manageable. Regularly publishing work, even if they feel it's subpar, helps reinforce a shipping mindset. Over time, the correlation between personal satisfaction with a draft and its popularity becomes irrelevant. Successful software projects often contain numerous flaws, a fact that can be disheartening. It underscores the fact that success isn't determined by the perfection of a single piece but rather by the volume of work produced. This realization can be unsettling, as it suggests a lack of control over one's success. The focus should be on momentum rather than outcomes. Regularly releasing work, even casual or incomplete ones, yields better results than investing significant time in perfecting a single piece. Even if some of the author's most casual works resonate with their audience, it's a reminder that success is unpredictable and not tied to personal satisfaction or effort.",
  "summary": null,
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}