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.