I work at a consulting company as a data engineer. Over the last 1.5 years, I built out a highly complex data lake/data wrangling implementation for a client. Everything is documented pretty extensively.
Now that we finished Phase 1, I'm starting to build out a whole new section as a Phase 2. While that's going on, there is still a nice list of enhancements that the client wants for the Phase 1 section - in addition to regular maintenance. We have the scope/hours for that, so no issues with enhancing/supporting Phase 1. But in order to load balance my time & allow me to focus on building out Phase 2, we've added another developer to help support/enhance Phase 1 based on their requests. (Up till now, it was just me & a non-technical project lead who managed the project overhead and the client relationship).
This developer who's joining the project is excellent - In fact she actually was one of the people who trained me in when I joined the company. However, the implementation is very complex, and it's taking a while for her to get ramped up on the project & the setup (for example, difference between certain tables; where to add logic; how to effectively troubleshoot oddities; etc) even with the existing documentation.
In theory I wouldn't have an issue with a long ramp up, since I fully recognize how many pieces she needs to learn about the implementation. However, I'm having issues getting enough time to focus on Phase 2 building, since I'm still needed to be pretty involved with requests/discussions regarding phase 1. I only have a specific amount of hours allotted to this project per week, and due to my other projects it's not likely that I'll be able to increase those hours/week.
So here are my questions:
What are ways to effectively hand off ownership of a complex setup? I've thought about how this would look if I was leaving the company or got hit by a bus, and honestly I think the whole project would take a massive hit backwards for a while (and that's assuming it wouldn't blow up totally) but it definitely wouldn't be pretty. But I'm really not sure what I could've done differently to avoid having me as the single point of failure - after all, I was the only one working on it.
So far I've made sure things are documented, used a running to-do for the desired enhancements, and starting next week I set up a weekly touchbase for her to ask any questions. Is there anything else I can do to help this transition go faster? Do I just need to slow down on Phase 2 for a while? Working slowly when building something new lowers my productivity by at least 50% b/c it means my work time for it will be very disjointed & broken up.
Thinking long term, should I consider myself the Lead Developer for this implementation, or should I consider this a project which will have two side-by-side developers (each managing different pieces) without a real lead? Is that naive of me to think this project could manage without a tech lead? If I was going to be the Lead long-term, I would stop focusing on making sure she knew the full Phase 1 setup, and I'd focus on just trying to hand off ownership of specific tasks. I have the flexibility here to set this up in whichever way makes most sense (leading vs splitting), but I'm not sure - which option is more likely to set us up for success while solving this load-balancing issue?
The client still prefers to come to me with their questions about Phase 1. I get why - I'm the one who knows the answers at this point. But that's not good for this transition since it moves my focus back to Phase 1. The client is not technical, so a lot of questions are just explaining logic & processing steps. Should I push the client to ask this other developer their questions, even though I know she will likely end up coming back to me to discuss it first anyways?
The project manager is very non-technical but usually pretty helpful in keeping track of open items & progress. We have a great relationship. When I communicate to him why I'm making so little progress per week on building Phase 2, he's going to ask what he can do to help the situation. Is there anything he can do to help?