1

Scoping out Ambiguous Work

Profile picture
Mid-Level Software Engineer at Taro Community13 days ago

Context: I've recently received feedback from my manager that my execution on small-medium tasks was very good, but I do struggle scoping out tasks / projects that are more ambiguous. On my most recent work, this led to delays delivering work on time, and concretely defining when the work can be marked as complete.

Question: How do you approach an ambiguous project, where requirements are not very well-defined ? Walk me through your thought process on how you would scope out the problem, align on with your teammates / TL, and land a design :)

42
3

Discussion

(3 comments)
  • 2
    Profile picture
    Helpful Tarodactyl
    Taro Community
    13 days ago

    I have faced something similar in my previous job and here is my thought process on approaching an ambiguous project. I'm pretty sure Alex/Rahul are far more knowledgeable than me on this topic, but I'll give it a try:

    • Before jumping into design, are you taking a step back to understand the "why"? Meaning high level goals, key stakeholders, success metrics etc. Knowing why this project exists is essential context to have before doing any scoping/implementation
    • To better understand the requirements, I would sync with PM/TL or teammates regularly to ensure alignment. Something I found helpful to say, "Here’s a few options I’m considering, and here are the tradeoffs I see [insert tradeoff 1] [insert tradeoff 2]"
    • Once requirements are disambiguated, might be good idea to decompose everything similar to the decomposition video in the amazing E3 to E4 growth video. I would aim to break the project into several milestones with deadlines for each and regularly communicate this plan to the tech lead. I would err on the side of being conservative with regards to project estimates.
    • Finally, I document the proposed design. I send it to the team for approval. Once it is approved, I begin execution.

    In summary, I find it helpful to spend time understanding the problem before beginning the design/decomposition/execution. This way, it minimizes the chance I deliver something the team did not quite want.

    This resource may be helpful: https://www.jointaro.com/question/MVyu85xVBvFAZFEdSosX/how-do-i-build-my-time-estimation-skills-for-project/

    Hope this helps :)

  • 1
    Profile picture
    SDE @ Amazon
    11 days ago

    Because you are a SWE, your first though would be technical, ditch that, the problem is there. If the requirements are not defined, this is your first job then.

    You have to reach out to the stakeholder, identify main headlines, fill with assumptions, and split into milestone.

    What you have now is something that may be 20-40% correct, then use it to circle back to the stakeholders, challenge what they say, let them correct it, it's a lot easier going with something already written, even if far from what they want, other than going with nothing and asking for requirements.

    I can guarantee you, by this point, you might have something that's ~70% accurate. Go back again, and get their signoff. At this point, they will be willing to agree on that.

    You will not get 100% complete requirments from the first phase, or even the tenth! So live with what you will have at that point, buffer for some last minute changes, and iteratively start the design. Good luck!

  • 0
    Profile picture
    Tech Lead @ Robinhood, Meta, Course Hero
    12 days ago

    Helpful Tarodactyl's advice is spot-on, and their linked resources are very good.

    In a nutshell, your goal is to talk to more people and write more stuff down. I need to modernize this course, but it still has a good example on what a good planning doc looks like: System Design Masterclass: Shipping Real Features To Production