Dialectic
Thesis, antithesis, synthesis - states the position, states the strongest opposing position, and moves to a synthesis that takes both seriously.
Dialectic
Section titled “Dialectic”Dialectic is the structure of working through a disagreement on the page. State the thesis. State the antithesis - and not a weakened version of it, the strongest form the opposing position takes when held by someone smart and informed. Then move to a synthesis: the position that takes both seriously and resolves what can be resolved while naming what cannot. The reader does not just get the conclusion; they get the path the writer walked to reach it.
The discipline of dialectic is the antithesis. The whole structure collapses if the opposing position is a straw figure. A real dialectic states the antithesis as its strongest proponents would state it - sometimes more clearly than they state it themselves - because only by engaging the strongest version of the disagreement can the synthesis be earned. A dialectic that pretends the antithesis is weak is just classical argument wearing a costume.
The synthesis is not a compromise. It is not “well, both sides have a point.” A real synthesis identifies what each position got right, what each got wrong, and what new position becomes visible when both are held at the same time. Sometimes the synthesis is “these positions cannot be reconciled, and here is why that matters” - dialectic does not require a clean resolution, but it does require an honest one.
Structural conventions
Section titled “Structural conventions”- Thesis stated explicitly and given its strongest case before the antithesis appears
- Antithesis stated in the form its strongest proponents would recognize - not a strawman, not a softened version
- Synthesis follows and does real work - it must name what each side got right and what becomes visible only when both are held together
- The writer’s position, if there is one, emerges from the synthesis rather than being smuggled into the framing
- If no synthesis is possible, that conclusion itself is stated explicitly with reasons
When to use
Section titled “When to use”Essays working through a genuine disagreement, position papers on contested questions where the writer’s own view evolved, long-form analysis showing how the writer arrived at a position, intellectual writing that respects the strongest opposing view.
When not to use
Section titled “When not to use”Operational writing under time pressure, reference material, argumentative pieces where the opposing position is genuinely weak or fringe, contexts where the audience needs the conclusion now and the reasoning later.
Pairs well with
Section titled “Pairs well with”researcher, classical-argument, columnist
Often confused with
Section titled “Often confused with”comparison-contrast: Comparison-contrast weighs options side by side without requiring the writer to take a position or produce a synthesis - the reader can read it and still pick either option. Dialectic requires a synthesis that resolves or explicitly refuses to resolve the disagreement.
socratic-inquiry: Socratic inquiry refuses to state positions and asks questions instead, leaving the reader to construct the answers. Dialectic asserts both positions explicitly and then asserts a synthesis - the writer does the work on the page rather than handing the work to the reader.
Instruction
Section titled “Instruction”Write using dialectic structure. State the thesis explicitly and give it its strongest case.Then state the antithesis - and state it in the form its strongest proponents would recognize,not a weakened version you can easily knock down. Then move to synthesis: name what each positiongot right, what each got wrong, and what new position becomes visible when both are held at thesame time. The synthesis is not a compromise and not "both sides have a point" - it must do realwork. If no synthesis is possible, say so explicitly with reasons. Your own view, if you haveone, emerges from the synthesis; it should not be smuggled into the framing of the antithesis.Related
Section titled “Related”Pairs well with
Section titled “Pairs well with”Researcher, Classical Argument, Columnist
Avoid with
Section titled “Avoid with”Often confused with
Section titled “Often confused with”Comparison-Contrast, Socratic Inquiry
Examples
Section titled “Examples”On the standup question
Section titled “On the standup question”Thesis: Keep the sync standup, because connection matters
Section titled “Thesis: Keep the sync standup, because connection matters”A team is not a status report. It is a group of humans who must trust each other enough to disagree, share half-formed ideas, and notice when a teammate is struggling. The daily sync standup is one of the few moments where all 11 of us are in the same room, even a virtual one. The 4 minutes of signal are not the point. The 10 minutes of throat-clearing, joking, side comments, and small acknowledgments are how a team stays a team rather than becoming a Jira project with people attached. Take that away and you lose something you cannot rebuild from three text fields. The standup is connective tissue, and connective tissue does not look like much until you cut it.
Antithesis: Go async, because timezones make sync structurally unfair
Section titled “Antithesis: Go async, because timezones make sync structurally unfair”The strongest version of this position is not “async is more efficient.” It is that the current sync standup encodes a power asymmetry the team has not faced honestly. Priya and Arjun attend 3.2 of 5 sessions because the meeting is at 9:30pm their time. That is not a scheduling inconvenience, it is a tax paid by two engineers and not by the other nine. They have been paying it for months and quietly absorbing the cost. Every benefit the sync meeting provides (connection, context, presence) is delivered preferentially to the people in the favored timezone. The team has decided, by inaction, that the Bangalore engineers’ participation is worth less than the convenience of a single shared time. Async is not just a tooling change. It is a redistribution of a cost the team has been hiding from itself.
Synthesis: Distinguish what requires presence from what requires only signal
Section titled “Synthesis: Distinguish what requires presence from what requires only signal”The thesis is right that connection cannot be reduced to status. The antithesis is right that the current format is taxing some teammates to subsidize the comfort of others. Both can be true because they are about different things.
The synthesis: separate the two functions.
For status, signal, blockers, and “what are you working on” - go async. Three fields, posted by 10am local. This is the function that does not require presence, and the function whose current sync delivery is structurally unfair.
For connection, trust, half-formed ideas, and noticing how teammates are doing - keep sync, but redesign it. The Friday team call (45 min, half social, half demos) already exists. Make it the primary sync ritual and make attendance matter. Rotate the time monthly so the burden of inconvenience is shared rather than concentrated.
For genuine emergencies and blockers that cannot wait - neither standup format addresses these. They need a direct ping, not a daily ritual.
This synthesis does real work: it acknowledges that the standup has been doing two jobs and doing both poorly. It costs something. The thesis loses daily synchronous contact, which some people genuinely valued. The antithesis loses the simplicity of “we are fully async now.” Both losses are real, and the synthesis is the price of treating both concerns as valid.
The 30-day trial is the right shape for testing this, because the synthesis is a hypothesis, not a settled answer. If at day 30 the team feels less connected even with Fridays, the thesis was carrying more weight than the synthesis assumed. If attendance equity has not improved, the antithesis was pointing at something the redesign did not actually fix. We will know which by measuring.
On the morning routine question
Section titled “On the morning routine question”Thesis: A rigid morning routine brings stability
Section titled “Thesis: A rigid morning routine brings stability”The case for rigidity is not a case for arbitrary discipline. It is a case grounded in how decision-making degrades through the day. Willpower is a depleting resource. The morning is when it is most abundant and the rest of the day is when it is most needed. A rigid routine moves decisions out of the morning by pre-making them: water before phone, walk before email, three priorities before the laptop opens. Rigidity is not the opposite of freedom, it is the structure that protects the parts of the day that need freedom most. The 5am-cold-plunge stereotype obscures a real point: people who maintain rigid morning routines often report higher steady-state functioning, less afternoon depletion, fewer reactive decisions. The routine is rigid because the discretion is being banked for elsewhere.
Antithesis: A rigid routine breaks the moment life moves
Section titled “Antithesis: A rigid routine breaks the moment life moves”The strongest version of this objection is not “I do not feel like it.” It is structural. Life with another human in it is not a closed system in which the same morning is available every day. A child wakes at 4am. A partner shifts schedule for a new job. A parent calls from another timezone. An illness arrives. The rigid routine, by being rigid, fails in exactly these situations - and these situations are not edge cases, they are the texture of an adult life. Worse, the rigid routine encodes a moral framing in which the disruption is the problem and the routine is the standard. The person ends up feeling like a failure during the seasons that most need self-compassion. Rigidity does not produce stability when life is fluid. It produces a brittle relationship with the routine itself, where every disruption becomes evidence of personal weakness. A routine that cannot bend will break, and when it breaks it tends to be discarded entirely.
Synthesis: A fixed first move, with a flexible remainder
Section titled “Synthesis: A fixed first move, with a flexible remainder”Both positions are pointing at real things. The thesis is right that morning decisions compound and that pre-deciding has compounding returns. The antithesis is right that a routine which cannot accommodate the actual life it is embedded in will be discarded the first time that life intrudes.
The synthesis: design the routine as a fixed first move with a flexible remainder.
The first move is one specific behavior, the same every day, that requires no decision. For most people, this is something physical (water, light, going outside) that takes 90 seconds or less. The fixed first move is what protects the routine’s compounding properties: the start is automatic, the start happens before the day can negotiate with you. It runs even on the bad mornings. It is the floor.
The remainder is everything else, and it is allowed to vary. A 60-minute morning can include a long walk, journaling, and breakfast with the kid. A 12-minute morning can include the walk and breakfast and nothing else. A 4-minute morning, on the day the kid is sick and the deadline is at noon, can be just the water and a glance at the priorities written the night before. All three count. The remainder bends, the first move does not.
This synthesis costs both sides something real. The thesis loses the symbolic weight of “I never miss” and the appearance of disciplined consistency. The antithesis loses the option to skip entirely on hard mornings - the first move remains non-negotiable, even small. Both losses are the price of the synthesis doing its work: it preserves the compounding the rigid version produces, and the resilience the flexible version produces, by refusing to confuse “consistent” with “identical.”
The version of the routine that survives a year is almost never the version that looked best on day one. It is the version with a small unchanging start and a body that learned to flex.
Dialectic on: Choosing between Postgres and DynamoDB
Section titled “Dialectic on: Choosing between Postgres and DynamoDB”Thesis: Lattice Notify should stay on Postgres.
Section titled “Thesis: Lattice Notify should stay on Postgres.”The Postgres position, in its strongest form, is not “use what you know.” It is this: the cost of a wrong storage decision is not symmetric with the cost of a right one. A team of eight backend engineers running a four-person on-call rotation has a finite operational budget. Every system that rotation has to be on-call for consumes a share of that budget that compounds: more runbooks, more alerts, more 2am decisions made under pressure. Adding a second database is not a one-time cost; it is a recurring tax on every incident, every hire, every quarter for as long as the second database exists. Postgres at 500K events/day is a known cost; the team has shipped at this scale before. Sharding work in twelve months is also a known cost; the path is documented and the team can practice on staging. Choosing Postgres is choosing the option whose costs we can see.
Antithesis: Lattice Notify should adopt DynamoDB.
Section titled “Antithesis: Lattice Notify should adopt DynamoDB.”The Dynamo position, in its strongest form, is not “Dynamo is better at this.” It is this: the access pattern of a notification system, write-heavy, key-lookup, time-ordered, is the pattern DynamoDB was built for. Choosing Postgres is choosing to spend the next year writing code that compensates for an impedance mismatch the original engineers of Postgres would acknowledge if asked. Queues to absorb the write spikes, indexes carefully tuned for the time-ordered access, eventual sharding work that will pull two engineers off feature delivery for six weeks - all of this is operational cost that does not exist in the Dynamo option because the technology already handles it. The Postgres position treats “familiar” as if it were free, but familiar is just the form unfamiliar costs take when you have already paid them. If the Slack deal lands, the team will eventually need to operate Dynamo or something like it at scale; the question is whether they learn on a system at 500K events/day where errors are recoverable, or on a system at 5M events/day where errors are expensive. The right time to learn an unfamiliar system is when the cost of error is lowest, which is now.
Synthesis
Section titled “Synthesis”Both positions are correct about what they emphasize, and both are incomplete in the same way.
The Postgres position is right that operational capacity is a binding constraint, that the four-person rotation cannot absorb a second storage system without cost, and that the cost of being wrong should be measured in the dimension of “can we recover” rather than only “is the access pattern optimal.” The Dynamo position is right that familiarity is not the same as zero cost, that the access pattern fit is not a luxury but a structural property that compounds, and that the right time to learn a system is before the workload demands it.
What becomes visible when both are held at once is that the decision is not actually between Postgres and Dynamo at the storage layer. It is between two theories of risk. The Postgres position is the theory that uncertainty should be absorbed by familiar systems. The Dynamo position is the theory that uncertainty should be absorbed by systems matched to the workload. Neither theory is true in all cases. Both are true in some cases.
For Lattice Notify, at this moment, with a 60% Slack-deal probability and a four-person rotation, the synthesis points to a third path that neither original position contained: ship on Postgres now to absorb the launch uncertainty with familiar tooling, and pre-commit to a Dynamo migration trigger tied to actual volume rather than projected volume. This is not a compromise. It is what becomes visible only by holding both positions seriously. Ana and Marcus were both right, and the architecture they need is the one their disagreement built.
Appears in diff-pairs
Section titled “Appears in diff-pairs”- dialectic vs socratic-inquiry (varies style)