0

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?

  • Why do you think there needs to be a lead? (Why can't there be two leads?) – Gregory Currie Jul 12 at 3:57
1

As the project is getting bigger, and there is more people on board, now is the time to start considering if you need to formalise your support process a little better.

First of all, for low priority support, see if this can be handled by some form of written communication. Yes, this will slow down the processing time, but there are many benefits. The main one here is that it will allow the second developer to cut their teeth and give them time to learn and respond with answers. And you can check the responses before they go out. This will also let you see where documentation needs to be improved.

For high priority support the client should still call. If the client cares about the stability of the solution, they will understand this is an important change.

You understand that your progress will be slowed down on Phase 2, while you assist your coworker with Phase 1. This is unavoidable.

To help mitigate this, you could consider giving her tasks in related areas, so she doesn't have to learn a wide spectrum of things.

If you can get your Project Manager to explain the non-technical scope of the project, that background can be quite handy. Having said that, it may only take a couple of hours.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.