8

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:

  1. 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.

  2. 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.

  3. 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).

  4. 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.

  5. 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.

  6. 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).

  7. 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??

  • Whoever down-voted this question should provide explanation for why it was down-voted. – c36 May 9 at 4:35
5

Say just that, that you're not comfortable taking on the responsibilities for the project alone because you feel you lack the skills to bring it to a successful delivery without a more senior/experienced developer to assist and guide you.

Yes, the current situation does appear to set you up to fail, best you can hope for is that it is because the person assigning you to it is so impressed with you that he seriously overestimates your skills and not because he wants to get rid of you.

Best thing you can do to prevent failure here is to make sure that the situation is well understood by management, and have it on paper that you communicated those reservations you voiced here so that, if people do try to blame the project's failure on you you can show that you warned for that in advance (what good that usually does, but it may help prevent you getting fired).

See if your mentor can communicate your concerns with higher management if your line manager (who's directly responsible for your work assignments) isn't willing or capable to change things. But see this as a last resort as it may sour your working relation with that line manager. That's what mentors are for...

It seriously concerns me there is no project lead, and that apparently a junior is being pushed for the main technical position on what you describe is a very big project with serious implications for the business were it to fail.

The lack of documentation, though bad, isn't unusual and can be worked around, given time, but will need to be taken into consideration during project estimation and planning as everything is bound to take longer (and creating that documentation should be taken into the planning as well, budget probably partially billed to the customer and partially taken as a company internal expense, but that's up to management and finance to decide).

That it is to be your first project using that specific platform isn't in itself a major problem, if this is understood and time is included for you to get up to speed on using it. In combination with the lack of more senior people on the project, it may become a problem though as there's going to be nobody to turn to for help inside the team.

3

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.

It is good that the main developer is sticking around now and in the future. The important thing is to make the most of your interactions with this person.

For one thing you CAN ask to delay the switch-over or make it more gradual. Enlist the help of the main person to push for this.

However, even if it switches over to 90% you and 10% him. That is STILL GOOD. 10% effort amounts to ~4 hours a week. That is a lot of time. You can best use that time NOT by having him do actual work on the project, instead use that time as a consultation with him. In other words, schedule regular meetings (eg 2 x 2 hours/week) where you discuss your blocking concerns and get his input about what you're doing and where to go next. What this means is that you'll have to formulate your questions in advance and make the most of your interactions with him.

Time with the original developer is MUCH better than any documentation. And, seriously, the lack of project manager is a good thing. PM's are almost uniformly AWFUL at managing situations where people are "getting up to speed" and where projects need to adapt fluidly.

Finally, 3 weeks is a very short time. Give yourself some slack and recognize that your familiarity will grow significantly.

2

Sadly this is not an unusual situation in a consulting company. It seems that there is no project manager assigned to you. Normally communicating the risks of the project overall would be his task.

What you should discuss with the manager:

  • are there tasks on which a lot of progress in the project depends/which block the progress? What is the delay if these tasks don't succeed without the previous dev coming back?
  • Can you give an estimation how long it will take to bring the documentation up to a decent level?
  • What is the biggest risk - is it a risk that something is delayed, that you will need more hours, or that something for the customer goes wrong fundamentally?
  • Can the problem (given some more time) be fixed by a further supporting dev.?
1

This is the most important part of your question, here:

so clearly my boss feels I can handle it - or he's just stuck without any options.

If you can handle it, then there’s no problem. If he’s stuck without options, then maybe the project has problems, but this does not automatically mean that you will have problems.

Occasionally, things like this happen on software projects (or, life generally) where you’re stuck for a while with no good options, so you have to pick the best from a set of less ideal options. Good managers understand this, will be able to tell that the project is not going well because of things outside of your control, will do what they can to fix those problems in the longer term (e.g. hire more people or push back on the client or whatever), and will protect you from taking the blame for this situation. Bad managers will not do those things, and may ask you to do the impossible in insufficient time (and if this should happen, you should look for a new job regardless of how well you are perceived, because there’s very rarely a good reason to continue working for someone like that).

Either way, your response should be the same. You must make clear to your boss the difficulties that the project will face, and set realistic expectations on how long and what is needed to deal with those difficulties. As long as you do that and put forth your best effort, then it’s entirely possible that everyone will know that your project is a disaster, but that you are performing well in spite of it.

What can I say to make him understand that my skills are not there yet?

Say whatever you want, it’s very possible the answer is “that’s okay, just do the best you can.”

What requests (support/mentorship/resources/etc) can I make which will make the project less likely to fail?

You will have to make those judgements yourself, because only you seem to understand the project. Ask for anything that you think can help. You may be inexperienced, but you are still a professional.

Do you think this is as doomed as I think it is??

Maybe? But the most important thing to remember is that you are not your project; even if it is doomed it does not mean you automatically are.

1

Think of this project as an opportunity. You will do something that a person of your experience wouldn't have taken normally. I am myself in that bit of a same situation : a big project has been put on my shoulders, don't have much experience, but we want to go somewhere.

No matter how long that takes you, do it. Maybe your manager trusted you, or maybe there just wasn't any choice. Doesn't change the situation.

Do your best and think of the accomplishment after. You will have done something amazing and your CV is gonna look awesome.

Good luck and stay strong!

0

Do you think this is as doomed as I think it is??

Growing isn't easy. It can be scary, stressful, and painful, and leave you anxious and filled with self-doubt. Work (and life in general) would be more pleasant if we were never asked to stretch out past our comfort zone, and take on new challenges.

Yet, if we run away from the hard challenges, and always choose the easy path, we'd never grow - never acquire new skills and experiences, develop more confidence, and learn more about ourselves.

You will be successful, you will be successful regardless of if this project succeeds, because this will offer you the opportunity to learn this new cloud platform, increase your Python skills, understand this huge architecture, etc. All the challenges you mentioned are opportunities to learn more, mature, grow.

Of course, this doesn't mean that you need to be a super hero, and work like crazy entirely on your own, to pull this off. After all, it was the company's choice to take on that other work, and put you in charge of this project - it is they that put themselves on the line, and which need to be successful. Instead, you need to provide them with an accurate estimate of how much time it will take you to get up to speed, what resources (training, a project manager) they need to provide you with, a clear and open communication channel with the previous developer, etc.

Good luck.

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.