43

I've been given a project over 5 months ago. I felt like it was beyond anything I've done previously when I got it, but I believed that since I've been given it, the task must suit someone of my level, and eventually it will come together.

This is my first job as a software engineer as part of a placement. So I haven't graduated in Software yet.

It is now three weeks to go till the end of the contract, and I am unable to make sense of what I have done and what I am doing. I don't know what to say after I initially expected the project to just work.

Is there a chance they would have given me a project beyond my ability, which I cannot complete?

What is the best thing to do? Should I try to complete it even though it is past the deadline or let it be known I can't finish it. (rather than keep saying it will be ready before I leave)

8

6 Answers 6

18

Is there a chance they would have given me a project beyond my ability, which I cannot complete?

That chance is actually pretty high.

  • It is very difficult to estimate the complexity of a software project before you actually start to look into how you are going to implement the details.
  • It is next to impossible to estimate the complexity of implementation details when you are not an experienced software developer.
  • They can't look into your head to see what skills you have and what skills you lack.

That's why it is very important for software developers to communicate the true difficulty of any assignments. You are responsible for giving your superiors realistic time estimates and to communicate how certain you are about these estimates. It is also your responsibility to correct those estimates when unforeseen complications arise. And you are responsible for saying "No" when they demand something that is impossible, because they might not be aware of what is possible and what is not.

What is the best thing to do?

Do not just wait for the deadline to apologize for failing them. Tell them as soon as possible that you will not reach the project goal at the given deadline. The earlier they know, the more time they get to adjust any plans which rely on your task being complete. The longer you wait, the larger the damage.

2
  • This is an important point. Just because you were given 5 months to complete the project doesn't mean the project will take 5 months to complete. It could be someone with your skills would actually need 7 month or 10 months or more. Being honest with your manager as the project progresses lets them plan to have someone take over when you leave, or bring in help, or decide if the project is even worth doing.
    – Seth R
    Commented Jun 7, 2019 at 14:24
  • Thank you. In the end I have made it clear I don't know where to go with the project. I was able to implement some things but I don't know if the person who will pick up the project will use it. Its been admitted to me that the person who the information was with is not very open about their work, and that they drafted out a template for the person who is an intermediate at this, and they don't know why they haven't done that for me...
    – ASsby
    Commented Jun 13, 2019 at 13:42
140

You should already have asked for guidance at the very beginning, when you felt it was overwhelming - but better late than never.

Immediately reach out to your superior / manager and make them aware of the situation. Ask for their guidance and suggestion on how to move forward, and what to be done / focused on to be completed in the time remaining.

Is there a chance they would have given me a project beyond my ability, which I cannot complete?

Yes, they certainly can.

To elaborate, this assignment may actually be well out of your scope, and the organization / manager may actually never expected you to finish it on your own, instead what they wanted to see is how you approach / deal with situations when something is beyond your control. So far, sorry to say, you've done a very poor job.

As you're a beginner, remember three very important things:

  1. Communication is the key. It does not matter whether the news is good or bad, ceasing communication will not give you any benefits. Provide regular updates, seek regular feedback.

  2. Never be afraid to ask for help. The smartest of the people knows when they need help and they ask for help as and when needed. Getting the work done is the priority - if you need help to get it done, so be it.

  3. Hope for the best, plan for the worst. Learn to break the work in smaller pieces, and target one (or more, based on the capacity) at a time. Don't drag the deadlines with a hope that eventually things will work out - if something does not work, go back to point 1 and 2.

21
  • 4
    Perfect answer - covers absolutely every angle. I don't know why you would lie about something you clearly have no idea how to complete. Always be honest so you can improve and learn. You need to accept guidance
    – Twyxz
    Commented Jun 7, 2019 at 11:15
  • 59
    There is also a possibility that the OP misunderstood the project, and what was actually wanted is much easier, but this answer's recommendations would handle that case. There has been a management failure - I would not leave an inexperienced programmer alone for 5 months without asking them about progress and discussing their approach to the project. Commented Jun 7, 2019 at 11:23
  • 5
    Great answer. When you see a project potentially going sideways, let your manager know ASAP. Sooner is better.
    – Neo
    Commented Jun 7, 2019 at 11:54
  • 7
    @Keith, that is true. But the other part of the job (a really important part) is keeping your manager and stakeholders informed on how things are going so they can plan ahead and get you help if it's needed. missing a deadline is often not that big a deal if your manager knows about well before it happens.
    – Seth R
    Commented Jun 7, 2019 at 12:42
  • 13
    @Keith There is a significant gap between struggling for 5 months without asking for help, and asking for help so often it becomes annoying. Commented Jun 7, 2019 at 15:35
12

Let them know ASAP where you stand

Let your supervisor know immediately where you stand on the project in terms of your progress. It won't feel good, but it's the best thing to do. It will only get worse for you if you hide the truth, and you may be surprised by how things turn out. They're usually not as bad as we make them out to be in our heads.

Learn from this (very common) beginner mistake

Almost all beginners mess up in a similar fashion. It's part of the learning process. Don't freak out, don't beat yourself up or decide it's the end of the world. It isn't. Mistakes are recoverable, even if in the worst case you lose this particular job due to your mistake. The important thing is to learn from your mistakes. In this case the lessons are:

  1. Always let your team lead/supervisor know immediately when you suspect you won't make a deadline. This gives them the maximum time to course correct;
  2. Always ask for help if you need it (after trying a reasonable amount of time on your own*). The workplace isn't like school--everyone works together, and it's expected.

*Reasonable here is a day up to a week maximum spent trying to figure things out on your own.

6

This is a failing of theirs, but you also have to take some responsibility. They should not have given you almost half a year's worth of work and then just expect you to deliver on the deadline. Someone should have been checking the status every few weeks at the very least to see how things were going. If they'd have done this then they would have picked up on the fact that you were struggling much earlier.

On the other hand, you simply cannot wait until you're 90% of the way through a project to let them know you have no idea what you're doing. What have you been doing? This is not school - they do not give you 5 months because they expect you to procrastinate and complete the task the weekend before it's due; they give you 5 months because that's how long they think it will take.

There is presumably no way you can finish the task on time now, so it's time to put your hands up and admit you messed up. You should do so promptly - it's not going to get any easier to have that conversation. And be honest with them. If you felt too scared to ask for help then tell them that. Try to help them to learn from this experience so that they can do better next time.

Ultimately, no one's died. The contract cannot be that important or they would not have given it to a junior, and they would have checked in more often. You may have missed an opportunity to work at this place in the future but given that they left you to your own devices for so long, I can't say you'd be missing out on too much.

Use this as an opportunity to learn. Make sure you never make the same mistake again. Being able to admit that you don't know something is a strength, not a weakness; no one knows everything.

5
  • Are you saying this is a bad way of rating interns? Seems like a fairly low overhead process to me. Commented Jun 10, 2019 at 11:25
  • @SeanHoulihane Showing zero interest in potential candidates unless they directly approach you seems like a great way of rating interns if your goal is to alienate, exclude and ultimately not hire them.
    – Michael
    Commented Jun 10, 2019 at 12:22
  • I don't think this is a failing of OP's. How was s/he supposed to know what to do? The culture of programmers discourages asking for help; if the company's interest was to teach the intern how software projects go and/or to get this piece of work done, they should have been teaching him/her how to go about providing updates and getting whatever resources are needed. This is only OP's fault if s/he reported that things were going fine when they weren't.
    – rcook
    Commented Jun 10, 2019 at 17:40
  • 1
    @rcook Their mistakes were understandable and forgivable because of their lack of experience, while the mistakes of the company were not, but just because it was excusable does not mean it was not a mistake. This is an opportunity to learn how to act and behave in future, not to point to fingers.
    – Michael
    Commented Jun 10, 2019 at 18:28
  • 1
    I agree as long as we can divest "mistake" from "something you should have known you should/shouldn't do". OP had no way of knowing; while they can learn from that for the future, they had no way of preventing the current situation with the knowledge and experience they had at the beginning, and the company should have anticipated that. Experienced programmers do this all the time, it's practically expected from an intern.
    – rcook
    Commented Jun 10, 2019 at 21:36
1

It is very late for you to salvage this project and, perhaps, this employment situation, and as some of the other answers provided some ideas which might help, I'll rather provide some guidance so that you (or someone else) can avoid this situation in the future.

First, and most importantly, you need to have open, honest, and frequent conversations with your manager. You need to let him know where you are having difficulties, where you are stuck, what kind of help you need. To quote another answer I've written "your manager's job [is] to do his/her best to give you the opportunities to succeed". That might include guiding you on how solve a problem, pointing you to the proper resources, assigning more people to the project, or maybe finding a project which better suits your current skill/experience level. If you come to him 5 months into a 6 month project, and say you've made no progress, there is very, very, little he's going to be able to do to help you.

That said, your manager is likely a very busy person, and so if you aren't actively communicating the honest state of the project to him, it is quite possible that he assumes that you don't need help and that the project is going smoothly - it's also quite possible that you just completely fell off his radar. The onus is on you to seek him out and keep him informed.

The second piece of advice I'll give is to make progress every day. Even if it is very minor, even if it is just to schedule a meeting, send a few emails, download and install some tool you need, etc., you should make sure that you are making some forward progress every day. This is important because, besides the obvious of pushing you closer to the final goal (even if only infinitesimally), it improves your psyche - it make you feel like you aren't stuck; it keeps your spirits up.

1

Keep your composure .... never let them see you sweat..

Buck up .... show what you have done and prepare a write-up on design and/or lessons learned technically ....

With a few weeks left make something work even on a small scale.

God luck ... you are not alone ...

0

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .