Ihor
Feoktistov

Things to Consider When Switching Software Development Team

#Dedicated teams

The deadline is approaching, and they haven’t done much so far. You have almost no doubt that they will not complete the project on time.

Broken deadlines are a frequent issue in software development. You might be ready for it. But after you find again some bugs to fix, some software errors that need to be eliminated, you understand that it will be endless. Hence, the most optimal solution is to change the development team.

Make sure you have detailed documentation 

When a different team of developers comes, they will need to learn everything about the project. You will also want them to speed up the project development to compensate for the lost time and to fix the existing issues.

That’s why you need to provide them with as much information as you can. All the documents shall be written by a developer who participates in the project and has access to the source code. In case developers are not good at writing, ask them to record screencasts to show the main stages of the process: environment setup, environment deployment, and similar.

Properly prepared documentation at least covers the topics:

  • Project description and features documentation, project structure: this documentation is needed to make your new team understand what the project is about, its features and structure. It will help them to estimate what skills they need and within what timeframe they can complete it.
  • Setting up a development environment: here belongs all the documentation that allows the new team get the app run on their computers. The process depends on the technology you have used. The most common tasks include getting the source code, database setup, dependencies installation. Further, they configure the environment, import sample data, and similar. Do not forget about a Docker file and Vagrant. They will help you to package the entire development environments and to distribute them to a new team. If you have all the needed documentation, the new team will not have issues to adjust the details and to pick up the work on the project.
  • Deploying to the staging and production servers is a must stage that you should include. Making changes in live apps is a very laborious process. That’s why everything should be defined in all details.
  • CI/CD pipelines will help you to automate the software delivery process and avoid manual errors.

Have a roadmap

A roadmap provides a detailed overview of how the project will be developed. A roadmap helps to understand your new team what has been done and what actions they need to take to achieve the goal.

How to Choose a Software Development Company?
Download the ebook

The main steps to create a roadmap

  • Analyze the general situation;
  • Create the product’s strategy;
  • Define the plan for project execution;
  • Define roles and responsibilities;
  • Assess risks connected with the project;
  • Create the roadmap;
  • Validate the roadmap;
  • Improve on your roadmap.

Tools to create a project roadmap

There are many amazing tools to generate the project’s roadmap. The most popular of them are the following:

Aha!

Aha! is a cloud-based software used to develop visual roadmaps. Its main goal is to help developers build products without major issues.

ProductPlan

ProductPlan helps to create the most detailed roadmaps for your team to work efficiently. It has a free trial.

Jira

Jira is an Agile platform used for planning roadmaps. It has all the functionality needed for project management. This is a perfect tool to track the progress, bugs and to deliver high-quality software.

Smartsheet

Smartsheet is a cloud-based platform that allows storing your data and documents in an easy form. It simplifies the collaboration between team members and facilitates the work on the project.

Software development team meeting

Own the code and infrastructure

There is one more question you should ask before signing the contract with a vendor: who will own the source code?

If you are not the owner of source code, the entire procedure of switching to a new team might become a nightmare. If you own the source code, the transition process becomes significantly simpler. That’s why make sure the clause about source code ownership is included in the contract with the vendor. 

Get access to the third-parties

The software development process usually involves many third-parties’ services and products. Your previous team might have used their accounts to get access to the servers, GIT repositories, and code, or might have signed up for them on your behalf.

When you are switching to a new team, you need to take ownership of each of the mentioned services:

  • Version control system, to be able to track and manage changes to source code. The SCM systems, like Git, will provide your new team with information about all the code development history.
  • Web hosting: Digital Ocean, Bluehost, Heroku;
  • File hosting: Amazon Web Services (S3);
  • DNS services: DNSimple, GoDaddy;
  • Development services: FileStack, NewRelict;
  • Payment services: Stripe, Paypal;
  • Analytics and tracking solutions: Mixpanel, Google Analytics;
  • Email marketing: Constant Contact, MailChimp.

Ask your current team about access to all the accounts. If you don’t have the ownership, check if you can get it. If not, request the team to create your own account to enable you to use all the services without interruptions.

Clean up the code

It is important to have clean and well-structured code. It will help to switch teams more painlessly.

To simplify the process of replacing an old team with a new one, follow the instructions:

  • Break down the code into the basic pieces, the more specific you are, the better it is;
  • Use intention-revealing names to keep clear the logic of your app;
  • Only one purpose should be assigned to a function;
  • Use one word for a specific concept;
  • Do not use output arguments.
  • Use new code to design extensions, so you will not be afraid to break the extension each time when you need to make a change in the system.

Establish the development pass

Now, when the technical aspects are handled, it is time to move to the personal aspects of changing the team.

How to Increase the Performance of Your Remote Tech Team
Download the guide

New team:

  • Make your new team feel comfortable. Explain to them your expectations clearly. It will help them to move in the correct direction.
  • Don’t let them on their own. Check in frequently to see if they have all they need to work efficiently. Make sure they understand that they will get the needed support when requested.
  • Be patient with them. It takes time to get acquainted with the new code. 

Leaving team:

  • Collect all the code, learn about its status: what is deployed and what isn’t. It will help the new team to pick up the work at the needed stage, to avoid bugs and duplicated work.
  • Update the access status. Here, your actions depend on the relationships with the leaving team. It is a common practice for developers to help each other. So, your old team might be happy to help your new team to get acquainted with the project. In some cases, when the relationships with the vendor are not good enough, you might want to downgrade or even revoke the access.
  • Thank your old team for their great work. Even though you have decided to replace the team, it doesn’t always mean that they have done a bad job. Thanking them for their work will help you to stay on good terms with developers in case you need their help in the future.

Conclusion

The transition from one development team to another is a long and painful process. But you can facilitate it for everybody if you plan the transition well in advance. For that, you need to understand your project and everything that is involved in its development.

If you follow all the needed procedures, your new team will start working on the project faster and become maximally efficient within a shorter time. 

And whatever happens, always take the transition process in your hands. Control everything, don’t leave it to the leaving team.

Right tech talent for your product

We provide companies with senior tech talent and product development expertise to build world-class software.

Contact us