Handing over a project is an important process_
The handover could be because
- External development team to internal team
- Old development team to new development team
- Old developer to new developer
In each scenario the process is the same, to try and get the information required to take over to support, maintenance and build on the application.
6 handover practices
When handing over a project the 6 processes to go through
- Version Control
- Dev Ops
- Ticket or bug tracking
- Documentation
- Tests
- Code Refactor
1. Version Control
Every development project should use version control. When a project is handed over, it is recommended the repository is transferred to the other party.
- Bitbucket has a section to do this here
- GitHub has a section here
The main repository keeps a history of all development changes and bugs fixes and should not be lost in transfer of project code.
2. Dev-ops
Projects are developed with dev-ops which can be a range of tools like Docker, Ansible, Kubenetes, Jenkins and Travis to name a few.
When handing over the project, it is important to understand how these tools are used on the project.
Documenting the processes will help when transferring any development project.
3. Ticket or bug tracking
Legacy software will tend to have a feature or bug list. It is important to view and have knowledge what this is.
The development team, understanding this, can look at the code base and see where to fix and ask current developers.
4. Documentation
Documentation on any the development or update procedures would help tremendously.
If Documentation is not available, the new set of developers would be in a good position to write this. They will not little about the system, so getting help from existing team and documenting process will help a lot.
Documentation can (should) take many forms:
- formal documents
- comments in the code to clarify the intent of the tricky bits
- class and interaction diagrams at different levels of abstraction
5. Tests
Access to testing scripts will help when adding new features.
If Tests are not available, it is important to find out
- What is the main functions of the application(s)
- Any parts suspectable to bugs
If you can write tests before handover will be a great investment and will save a lot of time in the future.
6. Code Refactor
Code always can be improved for a variety of reasons, updates, speed, etc.
With large applications, refactoring the code needs to be strategic. What will bring the most improved benefit.
Understanding what parts of the code may need this in the future will be very useful.