NANVEL

What To Do Framework

Plan^2

What To Do Now/Next? Follow the plan.

Multiple levels

There are multiple plans: for a day, a project, a ticket, a specific issue, etc.

Start from a plan

For every problem there has to be a plan, if there is no idea what the plan should look like, we can start with this example:

  • figure out that to do
    • study the issue
    • check the documentation
    • check the code
    • look for possible solutions
    • write down questions
  • update the plan

Plan is subject to continuous adjustments

Add new points, remove, update, add subsections.

A difficult problem encountered

If a problem is complicated and takes a lot of time - create a plan for it.

If a problem took 1hr of time and there is no progress - ask for help:

  • have to be a single message
  • contain the problem description
  • links
  • expected result
  • observed result
  • what was tried
  • code snippets
  • instructions on how to reproduce

In many cases, this could work as rubber duck debugging, and the issues will be resolved without sending the message.

Distractions

After each distraction we need time to recollect what we have been doing and what has to be done next, plan helps to speed up this.

Anxiety

If something important came to your mind (do not forget to extend a test, run a data migration before deploy, etc.) - add it to the plan (I remember nothing, I write it all).

This will eliminate the fear of forgetting important things.

Track the amount of work

The amount of work is easier to evaluate, and the remaining time can be estimated.

Gratification and gamification

Each subtask completed is a small gratification we can receive multiple times a day.

Not To Do

YAGNI

You Arent Gonna Need It. If you are not sure you will need it - don't do.

Invent the wheel

If got a brilliant idea - it is, probably, implemented, search for libs/services.

Do what tools can do for you

Invest in tools:

  • code formatting (prettier, black)
  • code editor functionality
  • ipython/jupyter for scripting
  • testing/debugging/profiling tools
  • etc.

What makes you “busy” (email box, instant messages)

Unsubscribe from emails you don't need. Pause notifications while working.

Repetitive, not creative work

Outsource.

Slow

Speed up:

  • speed up videos
  • skip not important texts
  • use threads, vector math, to speed up data loading and processing
  • optimize data loading (for example: remove/recreate indexes before loading data, use batch loading)

AAR

After Action Review.

Common sense

Not every problem requires a plan. And how detailed a plan could be is up to the individual preferences.

Licensed under CC BY-SA 3.0