Taro Logo
3

What can I ask to break down vague requirements?

Profile picture
Mid-Level Software Engineer at Consulting Startupa year ago

Hello! 👋🏼

I finished my first JIRA ticket today and I was assigned another ticket, but this ticket feels different…its requirements are significantly more vague.

I understand at a high-level what the requirements for this task are:

  1. check a folder for new files every x min
  2. copy new files to another folder
  3. keep track of copied files

These are examples of some the questions I had, however they feel too low-level for the analysis stage.

  • what file types can I expect?
  • should the frequency be editable?
  • how should the program handle a job run that takes > x minutes?

So, my question is this: what high-level questions can I ask to further demystify these vague requirements and future requirements?

164
1

Discussion

(1 comment)
  • 3
    Profile picture
    Robinhood, Meta, Course Hero, PayPal
    a year ago

    Here's my process for refining requirements:

    1. Read the task carefully.
    2. Envision the code in my brain.
    3. If there are gaps in what the code looks like in #2, ask questions to clarify.

    That being said, you generally ask lower-level questions to refine requirements. Coding is a very precise craft - All halfway decent software engineers know how badly 1 bad line of code can mess up everything.

    All of your questions make sense to me - If you can see how that affects your code, just ask them!

    • file types can I expect? - Maybe you need to call different APIs to process tricky file types like video or very large files (>1 GB).
    • should the frequency be editable? - If this is a cron job, it can be expensive. This could easily be a core requirement.
    • how should the program handle a job run that takes > x minutes? - If there's some sort of UI involved, maybe you want to throw up a loading animation.

    what high-level questions can I ask to further demystify these vague requirements and future requirements?

    As mentioned before, I don't think high-level questions can really demystify the current requirements, but they can put you in a better position to figure out future requirements by deepening your understand of your team's process and people map. Here are some questions:

    • Who's the best person to go to with these kinds of questions? (this will likely point you to some people)
    • What kind of scale is our system dealing with? (are there tons of files or extremely large files?)
    • How fast do I need to complete this task and similar tasks in the future?