SSW Foursquare

Rules to Better Workflow - 2 Rules

These are some rules that will help you stay productive.

  1. Do you know when and how to ask for help?

    Ideally, you should point out any problems with a work item when you are first assigned it in Sprint Planning. However, sometimes you think a PBI will be fine, but then you run into blocking issues during the Sprint. In that case, you shouldn't wait until the next Sprint Planning because that is burnt time being blocked. So, you are forced to do some googling, and investigation on how to move forward. These moments can be stressful, especially for junior developers and the question arises... "When should I ask for help?"

    Asking for help should follow 4 phases:

    1. Determine if it's time to ask
    2. Do your due diligence
    3. Figure out who to ask
    4. Prepare to talk to a senior

    1 - Determine if it's time to ask

    As everyone's struggles are different and everyone's way of handling pressure differs, it's hard to provide a useful metric for when to ask for help. However, here are some useful guidelines:

    • Don't spend more than 1 hour blocked on a PBI before asking your team
    • Don't spend more than 1/2 the allocated time of a PBI blocked before asking for outside help

    If you've spent more time than that blocked and haven't spoken to anyone That is a problem!

    For example, if a task is 2 days long and you haven't been able to get anything done on the first day... You should be asking for help. If you aren't then that's a red flag.

    2 - Do your due diligence

    Before asking for help, ensure you've done your due diligence and exhausted your usual avenues for unblocking yourself. This concept is critical when trying to talk with senior developers because their time is valuable. You need to start your communication with a senior prepared and make it clear that you've tried to help yourself first. Often by doing this, you'll also resolve your own problem.

    Here are some things developers should do before asking for help:

    • Try Googling it
    • Check Stack Overflow
    • Read the documentation e.g. Microsoft Docs
    • Explore the code

      • Look at pages that do similar things
      • Put breakpoints and check the values to see if you can figure out little bits
      • Debug systematically by checking a tiny part, confirming your understanding, then moving to the next part
    • Try to resolve it yourself a few times
    • Explain the problem to yourself

    3 - Figure out who to ask

    Now that you are sure you need help, it is time to figure out who can help you.

    Your development team cares the most about your problem, and you want to bother those with the least valuable time first. So, follow the below process:

    1. Run your problem past someone at a similar level to you
    2. If they can't help you, move to the next level of seniority
    3. Repeat step 2 until there is no one with higher seniority in the team
    4. Call in outside help

    Tip: If you have no idea who to contact, ask your Scrum Master!

    4 - Prepare to talk to a senior

    If you still feel you're blocked, it's time to prepare to talk to a senior.

    Make sure your struggles are documented in a PBI including context, screenshots and what you have tried. Now, ideally you want to provide a recommended action before you call. Do your best to find one and then there are two paths:

    If you have a recommendation
    1. Document the recommendation in the PBI so that you can manage up when you call.
    2. Call and share screens showing the documented information.
    If you do not have a recommendation
    1. Document what you did to try and find a recommendation in the PBI.
    2. Call and share screens showing the documented information.

    That way, the senior doesn't need to interrogate you to figure out what you have tried already, and they can see you have made an attempt. If you can’t get hold of them, send a message with the prefix “⚠️ Blocked” to ensure the other person knows that you can’t proceed without them.


    Other tips

    • A Done Video can help you organize your thoughts and prepare to explain the issue
    • Bring your issue up in your Daily Scrum as a roadblock
  2. Do you use timeboxing to avoid wasted time?

    Sometimes you can set a task or be given work that ends up taking much longer than expected. Timeboxing sets a time limit to a task, after which you must stop and move on.

    Timeboxing allows you to give more context to a task by showing how much time (and therefore money) you are willing to spend. This typically applies to:

    • "Nice to Haves" - If it takes too long, don't worry about it
    • Risky tasks - I'm not sure this will even work, if you can't figure it out, don't worry about it
    • Unknowns - This could take 2 minutes or 2 days. If it takes too long don't worry about it

    Time box: 1 hour.

    Figure: Good Example. A timeboxing of one hour. Assignee should not spend more than the time allocated on this task

We open source. Powered by GitHub