Project Transfer Strategies
As part of a recent project, we undertook the development of an application, which had formerly been the responsibility of an employee who had left our client’s organization. That project encountered some challenges, and upon further examination, we realized that many of the problems stemmed from the project transfer after the former employee had left. The documentation was sparse, often out of date, or in many cases, simply nonexistent, making it difficult to understand the function of the code. Even worse, code was deployed to production before being checked in to source control, which naturally caused problems with debugging behaviours in production.
While the situation was something of a worst-case scenario, it got us thinking about strategies we could employ to facilitate the process when code is handed off between two teams, whether that is from a consulting team at the end of a contract or when a team is replaced for any other reason. A common thread in all scenarios is that hand-offs work best when planned for right from the start of the project.
Failing to Plan is Planning to Fail
It’s crucial to understand and agree upon the set of artifacts for the project from the outset, especially when it has a well-defined timeline. In the case where the initial team builds a complete app, it requires a different set of artifacts than one where the source code is handed off for maintenance purposes. Not only does this provide extra certainty that all project requirements have been met, but it also guides the initial team that creates the documentation, as they know whether to write for an audience of developers or end users.
As an addendum to this, it’s essential to have an agreed repository for the non-code assets generated for the project: documentation, diagrams, specifications, etc. This process will help keep track of versions while the project is ongoing and ensures that nothing gets missed during reassignment.
Gradual Transitions Are Best
When a new development team is taking over from an old one, try to make the transition gradual whenever possible. Having both teams work on the project simultaneously gives the new developers a chance to acclimate to the best practices of the project and gain insight from the old team, such as reasoning for implementation decisions.
Alternatively, consider having old team members participate in the hiring process for the new team. They know better than anyone what skills are required to work on that code.
Transfer Knowledge in Infrastructure
Lastly, and perhaps most importantly, by following best practices of CI/CD and releases, knowledge about how the code works will get embedded in the tests and processes of the release pipeline. The infrastructure of the code should contain as much information about the code as possible to avoid confusion when new developers take over the project.
Transferring institutional knowledge from one team to another is one of the biggest challenges when handing off a project. As much as possible, try to integrate that knowledge in tests and processes or consider alternative ways to transfer it other than providing a user’s or developer’s manual. With all that said, consider these strategies to enhance the usefulness of comprehensive documentation rather than as a replacement for it.
If you enjoyed this post, be sure to check out our recent successful projects in application development.
Unmasking the Threat: Phishing & Spoofed Emails
Unmasking the Threat: Phishing & Spoofed Emails With the evolution of technologies today, there have been many incidents of users falling for spoofing and phishing emails. According to phishing email…
Microsoft CoPilot for Power BI
Microsoft CoPilot for Power BI What is CoPilot? There have been a lot of recent announcements from Microsoft on CoPilot which will leverage large language models, to advance to the…
How to Utilize AI-Infused, Low-Code Development Tools in Microsoft Power Apps and Power Automate
How to Utilize AI-Infused, Low-Code Development Tools in Microsoft Power Apps and Power Automate ChatGPT is a language model developed by OpenAI, designed to respond to text-based queries and generate…
Let’s Build Something Amazing Together
From concept to handoff, we’d love to learn more about what you are working on. Send us a message below or call us at 1-800-989-6022.