Completing a Software Development Project: An Application Handover Checklist
How do you know when a software development project is complete? Is it when the last line of code is written, or is there more to it than that?
For a software vendor to successfully deliver an application to the client does not mean simply to finish building the application. Rather, closing out a project is a process of ensuring every point of the contract has been executed, all accompanying documentation prepared, and all work on the project is complete. Only once all the project goals are met—and the i’s are dotted and the t’s are crossed—can we consider the project to be complete. This usually coincides with the moment the project is launched and support starts.
When overseeing the closeout of a project, the project manager analyzes the plan and, together with the team, takes the following steps to complete and hand over the project to the client:
- Carry out a final demo for the client
- Prepare clear instructions for the users of the end product
- Introduce the product to the end users
- Transfer the functionality to production
- Test the application in the production environment
- Fix bugs in the production environment
- Obtain confirmation from all stakeholders that all questions and issues have been addressed and resolved
- Obtain confirmation that the product owner is fully satisfied with the product
- Launch the product
- Carry out final end user training
- Obtain permission from the client to start the procedure of closing the project
- Update the documentation
- Prepare invoices for the client
- Receive and confirm payment
- Prepare summarizing reporting
- Obtain feedback from the client confirming their complete satisfaction with the end result
- Carry out a retrospective on the project
- Analyze any lessons the team has learned as a result of this project
- Archive all information on the project
- Organize support activities for the client
- Transfer the team to the next project
- Obtain client’s reference and testimonial on the experience for the company website and/or portfolio
Of course, a lot of these tasks are internal, but many of them have significant implications for the client. Let’s take a look at a few:
One of the main goals of user training is to introduce the product and its capabilities to the user and carry out beta testing. Such trainings allow both the developer and the client not only to receive feedback from real users but also to identify any potential bugs that the quality assurance team may have missed.
The initial training, which is the introduction of the product to its potential users, is often done in a staging environment before the product is released. Experience has proven that when real users get their hands on the software product, they provide valuable feedback and recommendations on functionality, which can then be incorporated into the project scope in order to dramatically improve the final product.
The final training occurs after the product’s release in the production environment.
Maintenance and Support
Following the completion of a project, most software development companies offer support services to their clients for a period of one to three months. (This period is often specified in the guarantee clause of the contract.) During this period, engineers connect various automatic monitoring services, which track key metrics to ensure the product is functioning as it should.
Support contracts can be of different types, depending on the needs and complexity of the given product, and can vary from a few hours per week to twenty-four-seven monitoring.
Should a problem be identified, the development team should deal with and resolve both the problem and its underlying causes as soon as possible as per the Service Level Agreement. Here, a problem is defined as a bug that had not been identified and fixed before the product launch.
Explanation of Software Philosophy
When a vendor hands over a software product to the client, it is important not only to transfer the technical expertise but also to ensure the client has a complete understanding of the product philosophy and the end users have embraced the product vision. At first, users might not fully appreciate the new software, as their opinions are clouded by less-than-ideal former experiences or they are reluctant to spend time learning a new platform.
In our experience, when this is the case, the client should not wait until the end users discover all the great features and get used to the new interface on their own. Instead, the product owner should educate users on the product, explain its advantages over similar solutions and competitors, and encourage users to take ownership of the new application. If the new application is quite technical and the target audience is tech savvy as well, the product owner can also show how industry leaders use the new software.
Successful project management is a combination of skillful planning, attentive control, and competent team management. With the goal of a successful product handover in mind, the project manager will do everything possible to ensure the product meets or exceeds quality standards and aligns with the client’s needs, requests, and vision.