Taro Logo
3

Assigned too difficult work, what can I do?

Profile picture
Anonymous User at Taro Communitya year ago

I'm mid level, new to the company.

I got assigned a chunk of a bigger project owned by a staff level engineer, let's call him X, who has worked on the product for a long time and has a lot of context.

Things that were new to me: the language, the tool chain, product context. The codebase is several years old.

My skip level manager (1 level above my direct manager) once encouraged that I should aim to finish my work in less than 2x the amount of time it would take X to do it (but besides this I received no pressure, or reminder to push for this target from managers).

This was overly ambitious. I worked longer hours and harder than anyone around, including weekends but still could not finish it in 3x the amount of time initially estimated.

The staff engineer overestimated what I can do too. He's very willing to explain but I had a hard time mapping his high level explanation to what happens at the code level.

I could not tell if the standard here is high or the task is too hard. So I leaned towards putting in more effort rather than voicing my concern.

I also did not have a good sense of "are these unknown parts of the code base grok-able with a little bit of time or do they require a lot of time?" to estimate time spent up front.

In the end I got some barebone thing out and he took over. Still took him a couple more weeks to get the thing finished. Along the way he solved some problems I'm sure I have no chance of solving in that timespan.

With this evidence I was sure the task was legitimately too hard for me and was comfortable letting my manager know my opinion.

Back up a little bit, when I started working on the project, my manager knew I could not stick to the original timeline set by the engineer and encouraged me to take my time to learn the codebase. What is puzzling is my manager did not tell the engineer about this unrealistic estimate. The engineer reports to a different manager and has been around way longer than my manager.

Maybe there is some politics going on that I'm not aware of.

Anyway this has been a very stressful experience.

What could I do better? What should I do to mitigate any harm done through this experience?

167
2

Discussion

(2 comments)
  • 5
    Profile picture
    Robinhood, Meta, Course Hero, PayPal
    a year ago

    Seems like this ordeal was pretty stressful for you, sorry to hear that. Please take care of yourself more in the future!

    That being said, I don't think there's any dark politics or anything here so I wouldn't read too much into it. I might be missing something, but it seems like your team had a lot of good intent:

    • The staff engineer was happy to help
    • They gave you a 2x expectation, which is pretty meaty (on paper at least)
    • They didn't pressure you to meet the 2x timeline

    I feel like the only mistake here was the skip providing the 2x estimate. When it comes to a new mid-level engineer vs. the tenured staff engineer, I would expect the staff engineer to be 4x to 10x faster, not just 2x. But managers shouldn't be too technical, especially a skip manager, so I'm not surprised they whiffed with this estimate.

    In terms of what you could have done better:

    • Break down the work - It seems like you found out you were way over your head too late. By decomposing large tasks, you can figure out whether you're falling behind earlier. This can be done even if you don't have a good understanding of the codebase - Here's my guide on how to do that.
    • Communicate more - Mid-level is the point at which I would start expecting a software engineer to write good status updates. This is something I recommend all engineers do, but it seems like it would have helped in this situation to proactively raise awareness about your need for support.
    • Get more value from support - It's natural for a staff engineer to think at a higher-level level than you, but the best staff engineers should still understand what it's like for a mid-level engineer. You're not doing anybody any favors by being "polite" and not following up on an answer you don't really get - When you do this, everyone's time is wasted. The next time that staff engineer supports you, push them to "ELI5" everything. You're new - It's expected that you need this level of support. Here's our video breaking down this concept in more detail.
    • Take more time to focus and retrospect - Software engineer productivity greatly drops when you work >40 hours a week repeatedly as you start writing messier code and develop tunnel vision. Instead of using the extra hours to do more work, use them to look inwards and take a break instead. Here's our masterclass on effective time management.

    Lastly, I recommend these 2 masterclasses if you haven't gone through them already:

  • 1
    Profile picture
    Mid-Level Software Engineer [OP]
    Series C Startup
    a year ago

    Incredible answer. Thank you Alex!

    I'll go through the master classes you mentioned.