I'm coming to the end of a project with a client. In the past I would have made sure the client was happy, closed the project off and collected the rest of my fee for the work. So would many freelancers. The work is done, you're done. Right? Maybe not.

Over the last few months a number of projects have been started and finished with the same client. This has led to a familiarity that is great for day to day communication, but as a working team we have become complacent in the work we are doing and there is clearly room for improvement in how we work together to finish each project.

In an agile team, frequent retrospectives are used to find out what's working for the team, what isn't and areas where the team can improve. It's a time of reflection. As part of a my pledge to deliver a professional service, I'm am now going to give a retrospective for each project that I finish with a client.

Essentially it's a report of three areas. Developers will recognize the questions as they are the same questions asked when an agile team gets together for their own retrospective. So why not apply the same idea to client work as well?

1. Where did we go wrong?

Admitting where a project went wrong can be difficult for all concerned. It's not a finger-pointing exercise though. If you think I'm picking at your faults, then you're probably not the type of client I want to work with. We're simply trying to isolate the problems areas so that we can change them for the better.

2. Where did we do well?

Highlighting where a project went well is important for any future work I do with a client. This is often over looked and we should never just think the work that is done on time and within budget is okay. If work is carried out within these constraints, then recognising that success is a great area to start for future projects. I want to build on a set of good practices that we both recognise so that future projects become easier to do.

3. Where could we improve?

We found out where we went wrong from the first question, but is there something we can do to fix this for future projects? If we are to continue working together, then it would benefit everyone if we could gradually improve on projects in the past. Less bumps on the road means projects can be finished to a higher quality, on schedule and with-in our agreed budget. Who doesn't want to work like that?

I have a first retrospective coming up in the next couple of weeks, and I've already collected a number of different observations from the project where both myself and the client could improve. Not all clients will be happy to read the retrospective or even take any advice from it. That's okay, it's their choice. For those clients that want to improve on future projects when working with me, I'll be more than happy to help them resolve problems from the retrospective and suggest recommendations for future projects with them.

The project doesn't end with the last commit or deploy, it ends when I've exceeded the expectations of the client and helped them get the most from our time together working on a project.