Have the expectations been met?
If they haven’t, we’re not closing the project.
Sometimes that’s it. Said thing needed to be delivered; it got delivered, you can wrap up. Good job, congrats.
Oftentimes a new phase begins. Not exactly the same project because expectations pivot.
Now we care about customer success.
How do you and your client define it? How do you keep it continual?
The answers depend on your context, but what’s important is communicating with your client.
Shipping the software doesn’t always mean it’s the end.
We need to stop pretending that the hard parts stop after development.
What happens after delivery is what the users experience.
If you need to provide support, have good and easy to look up documentation. You can give them a bot, but people still want to talk to people, so touch grass and learn to talk to folks. Ideally, learn deescalation techniques, people who need support aren’t usually the most calm.
If you’re worried about outages and bugs, drill down on observability and resiliency.
Is logging working correctly?
Are you watching your VMs, containers, and/or serverless compute? Are you monitoring network traffic, error rates, resource utilization?
Security up to snuff? Are there any holes in your firewall? Are you up to date on patching vulnerabilities?
Are you resilient? Are you set up to scale? Can you fail over? Are there read replicas? For the love of god please tell me there are database backups?
If users are unhappy, they stop using software. We don’t want this house of cards to fall down.