Coming in halfway through the development cycle and taking over an existing software development project can quickly turn into a cumbersome task. This is primarily because it’s difficult to work with a codebase that you haven’t contributed to (from its first iteration).
However, whether this turns into a nightmare or not really depends on the previous team. If the project was maintained properly from the beginning (by the former development team), it can set you up for a smooth transition.
Every developer on the previous team would have handed over fully or partially completed code. But before you take it over, you have to look for the following elements listed below.
- Ask for Documentation
It’s imperative that you ask for comprehensive code documents related to the project. You have to stress the importance of this information as it can be the difference between seamlessly navigating through modules or spending countless hours trying to decipher what’s already been done.
- Setup Guidelines
With the code documentation, it’s also important that you’re provided with the environment setup guidelines. This can even come in the form of a single README file as long as the explanation is clear and sufficient for setting up the development environment on a new machine. Additionally, make sure that you also get a list of dependencies from the former team to get the code up and running.
- Conduct Unit Tests
It’s crucial to conduct unit tests when you have to work with the unfamiliar code. This is because you will experience significant difficulty in refactoring even a single piece of code without doing a unit test.
Unit tests help you understand how the different modules (like classes) are linked together, what functionality will break whenever a piece of code is changed, and what’s ready to go into production.
Walk through the code conducting unit tests while noting how you expect the end result to be. Whenever it’s incorrect, walk through the code again and retest it.
- Conduct a Code Walkthrough with the Previous Team
It can save you a lot of time and reduce headaches if you request code walkthrough sessions with the previous team. For example, you can ask the project lead to walk you through the entire codebase and point out the sections that will require your close attention.
Do you need professional assistance with your software project development and IT staffing?Get in touch to learn how you'll benefit from working with us!
This is also a good time to find out what design patterns were used and the reasoning that lead to the decisions. Further, by knowing which code is strong and which code is deficient from the beginning, you will also be able to tackle the project in an organized manner.
- Setup a Development Environment with a Running Version of the Project
It can also be an advantage to setup a developing environment with a running version of the project. This, in turn, can become your central location to conduct functional tests when bugs are reported. You can also use it to identify if the bug was new or if it had existed in the previous version of the software.
If issues with the system or bugs have been registered in a bug tracking software, you need to make sure that you get immediate access to it. Furthermore, you also need to migrate it to a location where you have complete control.
- Ask for a Comprehensive List of Credentials
When you take over a project, make sure that you’re also provided with a comprehensive list of all the credentials for API keys, servers, and services.
- Request Support from the Previous Team
For the first two to four weeks, you will need some support from the previous development team. So make sure that they can have someone available to answer your questions as they come up.
If you follow the steps listed above, taking over an existing software project can be a painless experience. If any of the above is not provided, do your best to get a lot of support and information from the former team before you actually start working on it.
What’s your experience with taking over existing software development projects? Share your thoughts in the Comments section below.