[Из песочницы] How to Wrap Up a Software Development Project the Right Way
Does the New Year have you scrambling to wrap up last year«s software development projects? Don«t archive your Jira tickets and Trello boards too quickly!
A good rule of thumb in software development is that your next software project should always be better than your last. Why? Because the lessons you learn and take away from each project should be continuously documented and applied in future projects.
In the words of Rachel Green, every good project should end with closure.
Follow this quick and easy 6-step guide to ensure that you wrap up your software project efficiently and effectively.
6 Steps for Successfully Wrapping up a Software Development Project
1. Document future needs
If your outsourced software development team will not be responsible for continued support and maintenance of your web or mobile application, make sure that they have clearly documented any actions that need to be taken to keep your product running smoothly. Confluence, an Atlassian product, is a great tool to store all your projects» notes and history and makes onboarding new stakeholders as seamless as can be.
For example, if your software relies on 3rd-party libraries, make sure that your developers document which versions your application uses. If they have added custom code to those libraries, make sure that it is clearly documented as well. Future needs worth documenting may also include:
- Additional software testing
- Updating libraries and other dependencies
- Setting up automated monitoring
- Refactoring code for improved functioning and performance
- Whether you need to renew licenses and who owns that license so you can find it quickly
2. Update documentation for key stakeholders
For non-technical business owners who outsource development work, receiving clear and concise documentation in non-technical language regarding «getting started» with your own maintenance and support of a product is essential to success. If you end up hiring a different developer down the line, you really want all the product documentation to be up to date, whether it«s a README file, Wiki, Confluence, you name it.
3. Add important expiration dates to your calendar
The actual lifecycle of your product might not be as long as you think, especially if the technology itself requires updates or re-licensing. Get due dates from your developers and add important information to your future calendar, including expiration dates for:
- Domain registration
- Service subscriptions
- SSL certification
- Credit card expirations for applicable services
- Apple iOS distribution certificate
4. Agree on ongoing active development needs
As the product owner, will you need continued technical assistance to maintain and support your software? If so, come to an agreement with your outsourced technical talent regarding what areas require continued active development, i.e., continuous integration testing, monitoring and hosting of non-production environments, etc. Sometimes software development companies will set up a service level agreement (SLA) with you, which will give you a dedicated amount of hours and priority to fix bugs or respond to new requests.
5. Clean house–that is, all the branches
An excellent outsourced software development team will clean up any mess they make, and this includes in the development branches used during the project timeline. Cleaning house not only simplifies maintenance and support, but it also enables a brand new team member to easily find their way around. It takes a bit of extra time, but you want to consider having your dev team eliminate/address:
- Old feature branches
- Non-essential test branches
- Temporary branches
- Un-released work sitting around that may be used at a later date. Make sure they add notes to this so future engineers know what it should be doing in the future.
6. Organize a Project Retrospective meeting
Acknowledging both the successes and failures that occurred during a project plays a crucial role in improving future development among a team. A Project Retrospective is a dedicated meeting involving key stakeholders and team members that both reviews a project upon its completion as well as formalizes the wrap-up process. In your Project Retrospective, ask the team pertinent questions that cover:
- What were the initial goals of the project?
- What actually happened during development?
- What happened during testing and polishing?
- Why did that happen?
- What would you keep/change for next time?
- What, if any, are the ongoing development needs?
Pro tip: Start positive and maintain a safe space where team members can speak freely without fear of retribution.
Additional Thoughts
Software ages rapidly these days and properly wrapping up a development project with comprehensive documentation can save a lot of headaches down the line (and keep your product from experiencing costly hiccups). Involve key stakeholders–from project managers to testers to developers–in the wrap-up conversations and tasks to ensure that the next team to tackle support, maintenance, and future development is a step ahead.