I used to write progress updates that said nothing. "Working on a new feature for the project. Building the backend in Node.js, connecting it to a frontend in React. Can't wait to deploy." I wrote versions of that line for months. It felt like an update. It wasn't. Delete the date and it reads the same any week. Nobody reading it learns anything, including me.
A progress update is only an update if it names a state change. What was true yesterday that isn't true today? If I can't answer that, I don't have an update. I have a status, and a status is just a mood with a timestamp.
The shape I use now has three lines: shipped, broke, next. Each one has to name something concrete, or it doesn't go in.
Shipped is the change. Not the feature, the difference. The send call used to return 200 and mean nothing. The email could be accepted and never arrive, and I wrote a whole piece about that. Now the call returns the state of the message. That is a shipped line, because something works now that didn't before. "Working on the backend" is not a shipped line. Nothing changed.
Broke is the failure, named plainly. The update that hides the break is the one that costs you later, because the break is still there next week, just unmentioned. Say the pain, not the architecture. "Facing some challenges" is not a broke line. It tells the reader the author is hiding something and tells them nothing else. A broke line says what broke and what it cost, in one line, and then moves on.
Next is the decision. Not a vibe, a decision: the one thing I'm doing next, and the condition that would change it. "Excited for what's coming" is not a next line. It promises nothing and commits to nothing. A next line commits.
Why this matters more when you build alone: I don't have a standup. Nobody asks me what changed this week. The update is the standup. Writing it forces the work to move, because if there is nothing to put under shipped, that is the signal. Not a reason to dress the week up. A reason to ask why nothing shipped.
That is the whole of it. Shipped, broke, next. Three lines, each naming a real change. If the update reads the same with the date deleted, it isn't an update yet.
I write about backend systems and the decisions hiding inside them. Follow along. Next in this series: Soft Skills for Developers.
Top comments (0)