Successfully handing over a project to its succeeding owner is a fine art. Netflix’s Senior Software Engineer, Laurie Barth, has some tips that will help make the process a little smoother.
In the land of development, people are often transient. That leads to a lot of handoffs as ownership passes from one engineer to the next. And while we’d like to believe we are all fantastic at documentation, the reality is often messier.
Effective project handoff is about planning and communication. It is a designated task that needs proper attention. In an ideal world, it could be completed by phasing people in and out with months of overlap. The reality often looks like being left with only weeks, if not days, to accomplish the transition. However, even on that short time horizon, there are steps you can take to make the handoff as seamless as possible.
Step 1: Brain dump
Before you begin to engage with the new project owner, you need to organize your own thoughts. Even if you think you know what needs to be done, take some time to write down everything that comes to mind. That includes:
- Documentation links.
- Key contacts.
- Upcoming deadlines or meetings.
- Links to repositories, systems, and so on.
- Access/permissions that need to be given.
- Points of contact that need to be transferred.
This is not an exhaustive list, but it should get your brain moving in the right direction and will help you get organized.
Step 2a: Categorize
Take a look at your brain dump and start breaking things up into categories. Begin by looking at tasks that need to be completed by someone else external to the team; make note if they have a long lead time or other dependencies as well.
Next, look at tasks that should be delegated to and completed by other team members. This order of categorization helps you get into the mindset of finding task owners that are not you! You should try to find as many tasks that can be handled by others as possible.
Finally, examine the tasks you need to complete. This could be finalizing a specific feature, updating points of contact, etc. These items should be whittled down to the smallest number possible in order to leave sufficient time for communication and transferring ownership to the next project lead.
The reasons to categorize tasks before doing anything else are myriad. It gives you a picture of what needs to be accomplished and where the dependencies are. It also saves you from jumping into execution without noticing important pieces like long-running tasks. You don’t want to hit the second to last item of your brain dump and realize it only required an email from you for kickoff, but will take weeks to complete.
Step 2b: Prioritize
Once you have a categorized brain dump, you are ready to make a prioritized list. Prioritizing tasks is all about tradeoffs. Start by highlighting the things that must be completed before passing ownership off to someone else. Identify only the truly essential tasks, you can mark others as “nice to haves” if there is sufficient time.
You should also keep an eye out for sequential tasks you called out earlier e.g., getting access to a repository in order to take over notifications for the system. Make sure to prioritize accordingly.
Finally, make note of any long-running tasks that need to be started as soon as possible to ensure they’re completed in time.
Step 3: Plan
Take your prioritized list and make a plan to execute it. Your goal is to complete this handoff having made as efficient use of your time as possible. Parallelize anything you can. That means delegating tasks where possible. If you don’t need to be involved, don’t be.
Ensure that you are not a single source of failure for anything. In an ideal world, you never were, but things happen. That random test environment that gets used every so often? Someone else needs to have ownership permission for it. Even if that isn’t the final owner, it needs to be someone on the team other than you.
Your plan needs flexibility as well. Don’t leave something for the last minute that is essential for a successful handoff. You want as much buffer as you can reasonably fit in. Recognize that other factors are involved and you can’t always account for unknowns with people’s schedules, system issues, and unanticipated time delays.
Step 4: Execute
Executing a project handoff is one part science and one part art. The science part is all the tangible tasks that need to occur; permissions getting switched, introductions being made, people getting added to essential meetings, and so on. The challenge with those tasks is making sure you don’t forget any of them. That’s why getting organized is so important.
Occasionally, things will take longer than anticipated or you’ll run into other issues, but in a worst-case scenario, you can usually deputize someone else in your organization to make sure that these items get done if you run out of time.
The art piece is where your presence is most essential. You need to do your level best to think about your project from the perspective of someone who isn’t you. What do they need to know? Are there conversations about potential future features that haven’t come to fruition just yet but have important nuance? Are there specific people you want to mention that have a strong point of view about the past/present/future of the work? Is there a legacy module or other piece of tech debt that you just haven’t gotten to but recommend someone keep in mind as a liability? Is there a testing library you’ve been exploring that may solve some of the coverage issues you’ve been having?
The next project owner will not do things exactly the way you have. But they also want to get off on the right foot, and they need as much information about the current state of things as you can give them. Endeavor to provide them with internal contacts to follow up with and fill in the blanks as they dive deeper, that’s even better.
Project handoff is often managed quite poorly, and not for lack of trying. It’s easy to underestimate the amount of information that needs to be passed on. It goes beyond transferring Jira tickets and making sure the new owner can run the test environment. Do your best to set the succeeding project owner up for victory by giving them insight into the current state of both the tech and the people elements of the project.