Delivery & leadership
The product still needs an owner after launch
Maintenance is a continuing product decision about reliability, support, and which improvements deserve the team's attention.
By Josh Child6 min read
In this perspective
Launch gives a product a new set of responsibilities. People start building habits around it. Staff begin answering questions about it. Small inconsistencies become repeated interruptions, and an assumption that seemed harmless in a prototype can turn into an operating constraint.
I think about maintenance as continuing product ownership. Engineering work is central to it, but the decisions extend beyond code. Somebody still needs to decide which problems matter most, what the product promises, and how its behavior should adapt as the surrounding business changes. A product can keep running while becoming harder to understand or support.
The backlog changes when people depend on the product
Before launch, a backlog often reflects the team's best understanding of what people will need. After launch, actual use supplies a different kind of evidence. A recurring support question may reveal an unclear workflow. An unusual record may expose a missing rule. A small task may take more staff effort than anybody anticipated.
At Spera, my responsibilities continued beyond initial delivery into bug fixes and ongoing maintenance. I worked across product priorities, design, team coordination, release planning, and user acceptance testing. That lifecycle view matters because the value of a product depends on more than reaching its first usable version.
For a product in that stage, I would keep incoming issues connected to their operational effect. A request should explain who is affected, what they are trying to do, and how often the problem occurs when that information is available. The loudest report may deserve attention, but volume alone should not determine priority.
Distinguish a defect from a changed expectation
Not every disappointing behavior is a software defect. Sometimes the implementation differs from the agreed behavior. Sometimes the agreed behavior no longer suits the work. Sometimes the interface has failed to communicate a deliberate limit.
Those situations require different responses. A defect may need a direct fix and a check that it does not recur. A changed expectation may require discovery, a scope decision, and coordination with other workflows. A communication problem may call for a clearer label or a better explanation at the moment of use.
I would make that distinction during triage rather than treating every report as an instruction to alter the interface. It helps the team solve the cause and avoids creating a collection of local changes that conflict with the product's underlying rules. It also gives the person reporting the issue a clearer explanation of what will happen next.
Make repeated effort visible
Some maintenance costs are easy to overlook because people have learned to work around them. A coordinator corrects a record manually. An engineer runs a recurring repair. A support person explains the same confusing step to each new customer.
I would ask where people are compensating for the product. The goal is not to automate every activity. It is to understand which work is necessary, which work results from a product limitation, and which work could be reduced through a better decision.
The Google SRE book explains monitoring in terms of understanding system behavior and recognizing problems that need action. For a product leader, that suggests a related operating habit: define what deserves attention and who responds. A dashboard full of numbers is less useful if nobody can connect those signals to a decision.
A small change can cross several workflows
Connected products make maintenance more complicated because a change in one area can affect another. In Spera, clients, projects, time tracking, invoicing, and payments were part of the same experience. A field that appears local to one screen can carry meaning elsewhere.
Imagine changing the way a project is archived. The team would need to consider what happens to its invoices, time records, and visibility in reporting. The interface change might be small while the product implications are substantial. The right review follows those relationships rather than estimating the change from its visual footprint.
This is where a readable account of product decisions helps. The next contributor needs to know why the current behavior exists and which assumptions support it. If the team cannot explain a rule, a maintenance request becomes an opportunity to investigate it before changing it casually.
AI assistance should reduce uncertainty deliberately
AI can help inspect unfamiliar code, draft a change, or suggest possible causes of a problem. I would use that assistance with a bounded question and a clear way to verify the result. The fact that a proposed fix is plausible does not establish that it addresses the reported behavior.
A useful maintenance request includes the conditions that produced the issue, the expected result, and the observed result. Where possible, I would preserve a safe example that can be used to check the change. The team then has something concrete to compare before and after implementation.
For application changes beyond my own HTML and CSS work, I would involve engineers or use AI assistance with appropriate review. Being clear about that contribution keeps responsibility understandable. The person accepting a change needs evidence about its behavior, not an impression created by how quickly it was produced.
Protect time for work that prevents future interruptions
Preventive work is easy to defer because its benefit is less visible than a new feature. Yet a product can accumulate operating costs that reduce the team's ability to make future changes. The product discussion should make those costs understandable without asking stakeholders to approve unexplained technical work.
An engineer might identify a dependency that needs updating or a fragile part of a workflow that makes every release difficult. I would ask what consequence the proposed work addresses, what happens if it is deferred, and how the team can tell whether the change helped. That creates a basis for prioritization without requiring product to dictate the engineering approach.
The decision may still involve a trade-off. A pressing user problem and a maintenance need can both be legitimate. Making the consequences explicit lets the team choose intentionally and record the reason, rather than allowing the absence of visible urgency to make the decision by default.
Keep the promise understandable
A maintained product should have a clear account of its supported use, known limitations, and route for help. Those details can become outdated even while the software continues to function. A feature may still exist but no longer match the instructions people find. An experimental workflow may have acquired users without acquiring an operating owner.
I would review those promises alongside behavior changes. If the supported scope changes, the communication should change too. If a feature remains limited, that limit should be stated where it affects a person's decision.
The work after launch is where product intent meets sustained use. I want that phase to receive the same care as the initial concept: clear priorities, thoughtful collaboration, and evidence about whether the product continues to make somebody's work easier.