Skip to content
← Posts

In defense of the deadline you cannot move

I ran digital for three national campaigns. Election day is set by law, and it taught me more about shipping than any methodology has.

5 min read

Election day is the first Tuesday after the first Monday in November. It does not move. There is no December release. There is no "we will ship the donation page when the architecture is right." The voters arrive whether the software is elegant or not.

I learned that in my body before I learned it as a principle. From August 2009 to November 2010 I ran internet strategy for Friends of John McCain, the Arizona Senate race. JohnMcCain.com sat on ExpressionEngine, on CodeIgniter, on MySQL. We stood up smaller single-purpose sites on short cycles, and we ran email and social around the same clock. The date at the end of that calendar was not a stakeholder preference. It was a statute.

Then Newt 2012, December 2011 to May 2012, in Arlington. The primary site and the donation page were PHP, MySQL, and jQuery, and they had to hold up under a load you cannot schedule. Primaries do not give you a traffic forecast you can trust. Volunteer tooling sat on CodeIgniter, including Call-From-Home, which placed many thousands of voter-ID and GOTV calls. I do not have a cleaner number than that, and I am not going to invent one. The number that mattered was the Tuesday.

Then Romney for President, May to November 2012, in Boston. Donor data, Facebook data, and website data collection on Zend and Symfony, with Salesforce as the system of record, designed as a blueprint for later RNC collection. The national campaign store ran on Magento. Same November. Same wall.

I have sat in a lot of roadmap conversations since then. Most of them assume the date is a negotiation. You can feel the room relax when someone says "we could slip a sprint." An immovable deadline does the opposite. It makes the scope conversation happen while you can still do something about it. You cut out loud and early, or you cut quietly at the end with worse options. Those are the choices. There is no third one where the calendar yields.

What that teaches, that agile as a ceremony does not, is which part of a feature is the part that matters. Not on a whiteboard. In your hands, on a Tuesday, with the other ninety percent still in the ticket. You learn it because you have to ship the one piece that changes an outcome and leave the rest on the floor. Ugly and shipped beats elegant and late. Permanently. Without exception. I have not found a counterexample that survived contact with a date that could not move.

The regulator version of the same lesson showed up later, without bunting.

At Life Happens I directed a ground-up rewrite of the agent-facing Laravel SaaS. The driver was SEC compliance as client organizations got larger. The architecture was event-sourced, able to reconstruct the complete state of any agent's account at any point in time, built to SEC guidelines such that FINRA requirements were covered by construction. That is a different kind of immovable date. It is not a Tuesday in November. It is a requirement that does not care about your preferred data model. Compliance, in that case, was a better forcing function than taste. Taste will let you keep a design you like. A reconstruction requirement will not.

I do not want to oversell this. A campaign deadline and a regulatory rewrite are not the same job. One is a clock. The other is a constraint on what the system is allowed to forget. What they share is that you cannot talk your way into more time or a softer spec. The work is deciding what to keep.

That decision is the part I still trust from those years. Not the stack. ExpressionEngine, CodeIgniter, Zend, Symfony, Magento, Laravel: those are receipts, not a method. The method is the cut. You name the thing that has to exist on the day, and you are honest about the things that will not.

This matters more now, not less.

Agent throughput removes the excuse that the work was slow. I can produce a donation page, a volunteer tool, a store, a rewrite plan, faster than I could in 2010 or 2012. The machine does not care about my typing speed. What remains, when production is cheap, is the scope decision. Almost nobody has been trained on that decision by a date that refuses to move. Most of us were trained by sprints that slip, and by elegance that arrives after the moment it would have been useful.

The failure mode has flipped. The old failure was shipping late because the work took too long. The new failure is shipping late (or shipping everything) because the work is easy and you cannot decide what to leave out. Cheap execution makes the elegant version available overnight. That is a gift if you already know the cut. It is a trap if you use the extra capacity to keep the ninety percent you used to be forced to drop.

I am not claiming I always cut correctly. I am claiming I was trained, by dates I did not control, to make the cut in public and early. Campaign work will do that. A reconstruction requirement will do that. A methodology will talk about it.

I am still working out how to apply the same cut when the machine can finish the elegant version before the meeting ends. The temptation is to keep it all, because keeping it no longer costs a week. It costs a review. Reviews are where the new late happens. I know how to ship ugly against a wall. I am still figuring out how to throw work away when throwing it away is the only hard part left.

Related: Hard deadlines, Event sourcing, Player-coach