I'm a junior developer at a software consulting company. I recently was assigned to a new project, but I'm very concerned that it's set up for failure.
TL;DR - Massive & important project, no documentation, lack of developers who can work on it, so it's getting handed to a smart junior who's totally not ready for it.
Here's the situation:
- One of our more experienced developers worked heavily on this project for 1.5 years, and built out a massive architecture (cloud-based). None of it is documented. Bad - I know.
[Bit of background there: When he started on the project, it was in critical shape due to some major misses from a different developer, so he kinda plowed through the work & fixed everything up without documenting any of what he was doing. Not long after things had relaxed out of the red zone, the project manager left the company, and they never assigned a replacement PM, so no one pressured the developer to create the documentation.]
- My company recently closed an extra-large, super strategic deal. Because the CEO/Leadership immediately flagged it as a top-priority project, my manager assigned our two most experienced developers to work on it nearly full-time. One of them is this developer who I've been talking about.
- Since this developer doesn't have enough time to work on both of these large projects, my manager needed to find someone else to take over on this other project. We don't have so many people with this skill set (Python + specific cloud platform), so the options were either me or a new developer who started a week ago.
- My boss picked me (junior dev) over the new guy (a mid-level developer) without explaining (maybe it's because the new guy is still ramping up on the company in general?). I'm very aware that I have an unusually good reputation within the team. (go-getter, excellent communicator, learns fast, delivers solid work, etc - which according to this thread makes me a senior developer), so clearly my boss feels I can handle it - or he's just stuck without any options.
- My boss has only been with the company for a 1/2 year & seems to be very good & on-the-ball so far, but hasn't had much opportunity to see my Python work.
- I'm the only junior developer on the team currently (others have left & they're hiring more), and I've seen that the team is not very accustomed to juniors (there's definitely a tendency to give over tasks that are overly advanced as long as the junior is smart).
I definitely feel complimented by this assignment, but here's the problem:
This project is my first time using this specific cloud platform. The developer has been training me on it, but there's an overwhelming amount to learn. It will take a lot of time (probably months) to reach the skill-level where I can fully manage a project in this platform.
My Python skills are still quite junior-level (this is my first job out of college, & until recently my role in the company was focused on SQL a lot more than Python). So while I know Python & can totally write code & all, I'm still ramping up on advanced-python, I take a longer time to do things, & I definitely don't feel ready yet to go beyond a junior role on a Python project.
The architecture is HUGE, labyrinth, & complex - and nothing is documented! The individual tasks are not typically super defined either. Even if I were some super-experienced developer, it would take weeks (maybe months) to take over such a major set up. (Part of my assignment is to document the architecture as I learn it).
Currently (I've been on the project for 3 weeks) - the work balance is 15% me and 85% the main developer. However, my boss's goal is to flip that completely: 90% me and 10% the other developer. My boss's expectations of how fast that will change seems to be more suited to the time required for a senior developer (experienced in Python & the cloud platform) to do this.
When I was introduced to the client, no one mentioned that I was junior. Instead I was presented as an experienced developer ramping up on the project to take on many of the open tasks & to keep up progress on the project, since the other developer is a bit slammed with work. The client was thrilled (since they've felt the schedule tightness already), and immediately asked if I can help them out with some advanced tasks in the platform that they were stuck with. In theory that should be fine (& it's within scope of project), but I don't think I will be able to help as much as they're hoping.
There still is no project manager. (It blows my mind). They have a client services lead who sends out a status to the client every week, but no one is running the show. I believe I have enough communication skills & whatnot to manage without a project manager, but definitely not if I'm struggling with the actual skills/tasks. (The other developer says they've been "getting by" until now).
Although this isn't The Top priority project, it's still a high-priority project within the company. If I under-deliver on this, I'm afraid I'll damage a lot of my credibility in my boss's eyes.
What I've done:
- Talked with a coworker from a different department who is my official mentor. She was very concerned that this situation will set me up to fail, and she recommended speaking up about it as much as I can (to at least leave a trail of "I said this wasn't a good idea from the start").
- After that, I explained this to the client services lead. (His response? He understands but it's not his choice, & he feels confident that I'll do a good job)
- Explained this to the developer who's also on the project. (Response? He completely agreed with my assessment of where I'm at, acknowledged it's not ideal but not his choice, expressed confidence that I can do it (albeit with help and slowly over time), and said he'll try to support/help as much as he can)
Next I'm going to talk to my boss, who's the real decision maker here.
What can I say to make him understand that my skills are not there yet?
What requests (support/mentorship/resources/etc) can I make which will make the project less likely to fail?
Do you think this is as doomed as I think it is??