Journal · 18 Nov 2025

The first ninety days after you ship an internal tool.

Launch is the easy week. The product starts when the unofficial spreadsheet is still open.

Published
18 Nov 2025
Reading time
8 min
Readers
—
Topics
Internal toolsAdoptionHandoverProcess
On this page

Key takeaways

  • Internal tools fail politely: nobody complains, they just keep the old workbook open.
  • Launch metrics (tickets closed, screens shipped) say almost nothing about adoption.
  • The useful questions are small and observable: who still exports to CSV, which status lies?
  • The second cut should come from ninety days of use, not from the pre-launch backlog.

Internal tools fail politely. Nobody writes a review. People open the old workbook in another tab and wait for the new system to become optional. Ninety days is usually enough to tell whether you shipped a system or a demo with a database.

This is the checklist we run after a release — what to watch, when, and what to change. It is the difference between a studio that ships software and a vendor that ships a phase.

Why launch metrics mislead

At launch we measure what is easy to count: tickets closed, screens shipped, whether the training session went well. All of it is about the build. None of it is about the work.

What teams measureWhat it actually tells youWhat to measure instead
Screens shippedThe team was busyTasks completed without leaving the tool
Training attendancePeople were politeWho used it unprompted in week two
Tickets closedThe backlog movedWhich workarounds are still alive
LoginsThe link was clickedWhich records are edited in the tool vs. elsewhere
Days 1–14Watch the workarounds
Days 15–45Find the lying status
Days 46–75Ship the second cut
Days 76–90Decide what stays optional
A ninety-day review cadence

Days 1–14: watch the workarounds

The first two weeks are about noticing what people do when they think nobody is looking. Sit with them. Do not ask what they think of the tool; watch what they open.

  • The old workbook. Is it still open? Is it still being edited, or only read?
  • The CSV export. Who exports, to where, and why? Every export is a missing feature or a missing trust.
  • The chat message. Which questions still go to a person instead of the tool?

The signal

A workbook that is read but not edited is a comfort blanket. A workbook that is still edited is a requirement you missed.

Days 15–45: find the lying status

By week three, the data starts to reveal where the model and the work disagree. The classic symptom is a status that people set because the system requires it, not because it is true.

Questions worth asking

  1. Which status is set and never read?
  2. Which status is set in bulk, at end of day, from memory?
  3. Which role was invented in the workshop and does not exist on the floor?
  4. Which required field is filled with a placeholder?

A status that is always "Done" ten minutes before the shift ends is not a status. It is a tax. Remove it, or make it true.

Days 46–75: the second cut

The second cut should come from these answers, not from the backlog written before anyone used the thing. In practice that means the second release is smaller than people expect and more important than the first.

SignalLikely causeTypical second-cut action
Workbook still editedA workflow the tool does not modelModel it, or explicitly decide not to
Frequent CSV exportsMissing report, or distrust of totalsBuild the one report; show how totals are derived
Bulk end-of-day updatesStatuses that do not match the workRename or remove states
Questions still go to a personInformation not discoverableSurface it where the question arises

With Halcyon, the first cut was inbound exceptions, assignment, and a morning digest. The second cut — customer-visible notes — came directly from sales asking dispatch for screenshots in week five.

A demo with a database

  • Old workbook still edited
  • Statuses set in bulk at end of day
  • CSV exports every week
  • Questions still go to a person

A system

  • Workbook read-only, then retired
  • Statuses set as work happens
  • Reports built where they were needed
  • The answer lives where the question arises

Days 76–90: decide what stays optional

Ninety days in, you should be able to answer a blunt question: could the team go back? If the old workbook were deleted tomorrow, would work stop?

  • If work would stop, you have a system.
  • If work would slow slightly, you have a good tool that is not yet load-bearing.
  • If nothing would change, you shipped a demo with a database.

Decide, deliberately, what happens to the old artifacts. Archive them read-only, name a date, and say so in writing. Ambiguity is how a system stays optional.

30 daysHalcyon: until the private workbook stopped being useful
5 weeksUntil sales asked for customer-visible notes — the second cut
41 → 12 minMorning close, measured from the operator's week

The handover that makes ninety days possible

None of this works if the studio disappears after launch. It also does not work if the studio never leaves. The pattern we use: a written handover, a named operator on the client side, and a short, explicit window for the second cut.

  • A named person who owns the system after handover.
  • Runbooks for the cases that happen after hours.
  • A scheduled review at thirty and ninety days, with the questions above.

Ninety-day review checklist

  • Name who owns the system after handover.
  • List every workaround still alive, with a reason for each.
  • Find the status that is always set late, and remove or fix it.
  • Decide the retirement date for the old artifact, in writing.
  • Schedule the next review before this one ends.

A measurement kit you can set up before launch

Everything in this essay depends on being able to see what people do. That means instrumenting the tool before go-live, not adding analytics in week six when the interesting behaviour has already formed habits. The kit is small.

EventWhy record itQuestion it answers
record_created / record_updatedVolume and cadence of real workIs work happening in the tool?
status_changed (from, to, actor, time)Status behaviourWhich statuses are set late or in bulk?
export_clicked (which, by whom)Export demandWhat are people taking out, and why?
search_no_result (query)Missing informationWhat did people look for and not find?
override_used (field, reason)Model mismatchWhere does the system disagree with reality?
session_gap (hours idle during shift)AbandonmentAre people leaving the tool mid-shift?

Pair the quantitative signals with two qualitative ones: a weekly ten-minute conversation with the most sceptical user, and a standing question in the team channel — what did you do outside the tool this week? The second question surfaces the workaround before anyone thinks to call it one.

Illustrative — find statuses that are set in bulk near the end of the shiftSQL
SELECT status_to,
       date_trunc('hour', changed_at) AS hour,
       count(*)                       AS changes,
       count(DISTINCT record_id)      AS records
FROM   status_events
WHERE  changed_at > now() - interval '30 days'
GROUP  BY status_to, hour
HAVING count(*) > 20      -- a burst of changes in one hour
ORDER  BY changes DESC;

Running the thirty-day review

The thirty-day review is where the second cut is decided. Keep it short, keep it evidence-led, and keep the person who owns the system after handover in the chair. A good agenda fits on one page.

  1. 01

    Read the numbers (10 minutes)

    Show created versus updated volume, export counts, and no-result searches. No interpretation yet.

  2. 02

    Walk the workarounds (15 minutes)

    List every artifact still in use outside the tool. For each, ask: missing feature, missing trust, or habit?

  3. 03

    Name the lying statuses (10 minutes)

    Any status set in bulk or set to please the system rather than describe the work.

  4. 04

    Choose the second cut (15 minutes)

    Pick at most three changes. Write what each should do to a named metric.

  5. 05

    Assign the retirement date (10 minutes)

    Decide which old artifact is read-only from when, and say so in writing.

Handling resistance without a campaign

Resistance to a new internal tool is almost never irrational. It is usually a rational response to a real cost: the new system is slower for a task the person does forty times a day, or it exposes an informal arrangement the old sheet was hiding. Treat resistance as data.

What you hearWhat it usually meansWhat to do
"It is slower than the sheet."One high-frequency task has too many stepsTime that task; cut the steps before adding features
"I do not trust the numbers."Totals are opaque, or a status is wrongShow how the number is derived; fix the status
"We always did it this way."A rule that exists only in someone's headAsk them to walk through an example; write the rule down
"Nobody told me."Rollout skipped a groupFix the communication, not the person
"It does not handle my case."A genuine edge caseAdd it to the second-cut list with their name on it

A week-by-week timeline of a real ninety days

The Halcyon rollout is a useful reference because the numbers are recorded. The pattern generalises even where the details do not.

WeekWhat happenedSignal
1Go-live on the night desk; morning digest startsTwo people still open the old workbook
2Assignment used on most exceptionsWorkbook is read but no longer edited
3Finance closes from the same recordMorning close falls sharply
5Sales asks dispatch for screenshots of exception notesSecond-cut feature identified: customer-visible notes
6Second cut shipsScreenshots stop
10Reopen reasons reviewed at the monthly meetingOne state renamed to match floor language
13Old workbook archived read-onlyNobody notices

The most telling row is week five. Nobody wrote a requirement. The need appeared as a repeated, slightly annoying request between two teams. Watching for that kind of friction is the entire method.

Anti-patterns that make the ninety days fail

How adoption stalls

  • Declaring victory at go-live and disbanding the team
  • Measuring training attendance instead of behaviour
  • Treating every request as equally urgent
  • Leaving the old system writable indefinitely
  • Adding features to fix a trust problem

How adoption sticks

  • A named owner and a scheduled thirty- and ninety-day review
  • Measuring what people do outside the tool
  • Choosing at most three changes per cut
  • Setting a dated, written retirement for the old artifact
  • Fixing trust by exposing how numbers are derived

Shape Up [1] describes a related idea in product development: a fixed cool-down after each build cycle to fix what real use reveals, before starting new work. The ninety-day window is the same principle applied to a tool that has just landed in a busy team.

Closing

The internal tool is finished when the old workbook is closed and nobody reaches for it. Everything before that is a launch. Plan for the ninety days, not the week.

References & further reading

  1. 1
    Shape Up: Stop Running in Circles and Ship Work that Matters — Ryan Singer, BasecampFree online. See the chapters on cool-down and on shaping work.
  2. 2
    Continuous Discovery Habits — Teresa Torres, Product TalkA practical treatment of weekly customer contact and opportunity mapping.
  3. 3
    The Lean Startup — Eric Ries, Crown BusinessSource of the build–measure–learn loop referenced here.
Found this useful? Share it

Get the next essay in your inbox

Practical writing on payments infrastructure, operations software, and shipping real systems. No spam, no sales sequence.

We only use your email to send the studio's writing. See the privacy policy.

About the author

Product behaviour described here reflects what is implemented and tested; anything else is marked as planned. Code samples are illustrative.

All writing

Have a system like this to run?

Explore the catalog, or write down the problem and the constraints. We respond when the fit is real.

Free apps from the studio. Enter your email, get a private download link. Free for personal use.

Get them free

Have a product to sell? We review, list, and sell it for you — you keep 90% of every sale.

Apply to sell with us