What's the usual sequence for the development of a feature ? You work on the feature. You release it, and the feature is done.
There is a hidden step. Not all of the work happens before the feature is released. After the feature is released—meaning, made available in its final form to users in a production environment—some additional work is needed. It is invisible to the end user, and while it may have to be deployed there is nothing left to release.
This invisible work includes:
Monitoring the feature in production to ensure that is stable and scales well, and setting up long-term alerts and checks.
Migrating or cleaning up the database.
Removing any feature flags, detailed logs and other scaffolding set up in order to perform the release.
Removing any code that is no longer necessary (especially code hidden behind removed feature flags).
Removing any traps and landmines left in the code as a consequence of pushing to release the feature early (what could be called short-term technical debt).
Since this work is invisible, it's important to communicate its existence to stakeholders who can only observe that the feature is available in production. This can be hard to convey properly, so don't leave anyone with the wrong ideas ! An imaginary play:
STAKEHOLDER
Can't this additional work wait until
later? We have other, more urgent features.
DEVELOPER
This is not additional work. We are finishing
the feature.
STAKEHOLDER
But the feature was released yesterday, why isn't it
finished?
DEVELOPER A feature is not finished when it is released, but when our
team is confident that it will keep on working as expected without
baby-sitting, and that it will not interfere with the rest of the
application.
STAKEHOLDER
Are you saying that you released a dangerously unstable
feature?
DEVELOPER
It isn't dangerous if it's only for a short while. We
monitor it closely and have the option to roll back.
STAKEHOLDER
In that case, could you perhaps keep monitoring it a
couple of weeks longer, and focus on the other features instead ?
DEVELOPER
We did not plan to keep that feature in an unfinished
state for so long. But we could certainly roll it back now, and
work on the other features instead.
STAKEHOLDER
I'll take the risk! Just keep it in
production and start working on the other tasks.
DEVELOPER
Part of my job description is that I'm not
allowed to let you take unquantified or poorly understood
technology risks.
Consider also this analogy: Alice has developed a new feature to automatically frobnicate foobars. Bob sees that his foobars in production are being properly frobnicated in production, declares that the feature is done, and asks Alice to work on other tasks. But the frobnicator only works on Alice's development machine, pulling foobars from the production database and pushing them back after frobnicating them. Is the feature truly done? Is it acceptable to ask Alice to just leave her development machine open? Only for a short while, until we have to come back and finish the feature...