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?
To successfully deliver an application to the client does not mean simply to complete 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 to the client
- Prepare 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 from the product owner that they are 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 retrospective
- Analyze any lessons that this project has presented to the team
- Archive the information on the project
- Organize support activities
- Transfer the team to the next project
- Obtain client’s reference and testimonial on the experience for the company website and/or portfolio
User Training
One of the main goals of the user training mentioned in the list above 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 identify any potential bugs that the quality assurance team may have missed.
The initial training, which is the initial introduction of the product to its potential users, is often done on 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 of potential users occurs after release on 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 main 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. Support 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 the problem itself 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.
Software Philosophy
When a software product is being handed over 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. In this case, new product introduction might be not as simple.
In our experience, the product owner or the ordering client should not wait till the end users somehow discover all the great features and get used to the new interface by themselves. Instead, the product owner should educate users on the product, explain advantages of their wonderful and unique software over similar solutions and competitors, and make users 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 handover of the completed software product to the ordering client 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.