Today let me take a break from my usual Flutter tutorials and talk about productivity.
I know you've been there.
You started the day with good intentions.
Maybe you wanted to make progress on that side project. Or close a few bugs that you've been putting off for too long.
But by the time you clock out, you haven't accomplished what you wanted.
You got stuck and spent 2 hours down the (wrong) rabbit hole. Or maybe you got distracted and your daily goal flew off the window. Or maybe you didn't even have a goal to start with.
And you know what? It happens to all of us.
It certainly used to happen to me. But I'm doing much better now.
How to be more productive (tips for ordinary humans)
Let's set one thing straight!
I'm not going to say that you should work 85 hours/week as Simon does.
I'm also not going to talk about the best extensions and shortcuts for VSCode (though you can find plenty of great videos about that).
I want to talk about a very simple and boring technique I have used for the last 15 years.
And that is (roll of drums please 🥁)...
Write down your tasks/goals
There is something powerful about writing things down.
You can use a to-do list, a Trello board, or whatever else works for you.
Just. Write. Things. Down.
Here's my to-do list for today and tomorrow:
Here's how I use it:
- Every week, I write down all the tasks that I want to complete
- Then, I allocate all the tasks from Monday to Friday
- Each day, I work on the tasks and tick them off when finished
To make sure I work on the right things, I also have monthly, quarterly, and annual goals. These help me see the big picture:
Every month I update my goals and break them down into a set of discrete tasks that I can tackle every day.
Of course, in software development (just like in life), change is the only constant.
So I'm not too strict with things. If something comes up or a task ends up being bigger than expected, I move the remaining tasks to the next day.
So what are the advantages of working this way?
The rabbit hole is no more
I have a rule that if I'm stuck on something for more than 20 min, I take a break or work on something else.
I have to, because the todo list is staring back at me and I don't want to push back all the tasks to the next day.
Time and again, I've come back to a problem with a fresh pair of eyes and found the solution right away.
Taking breaks works well for articles/blog posts too. I always write articles over 2 to 3 days even if I could do them in one sitting. The result always ends up better.
Doing the work that matters
Having a to-do list is well and good, but if you're working on the wrong things you ain't going far.
So alongside my todos, I also do planning and ask myself what will get me closer to my goals.
When viewing things from that angle, certain tasks don't appear so important and I can push them back to the backlog (or delete them).
Working for yourself vs others
Of course, this method works for me because I run my own business and get to choose my priorities.
But even back in the days when I was a full-time dev, I had a daily to-do list that I was using to prioritize my tasks and hold myself accountable.
Even if my workplace was using JIRA or some other project-tracking tool, I would always have my little to-do list tucked away.
This allowed me to set my own timeframes (which were more aggressive than what was expected of me for a given sprint) and deliver better results, faster.
So give the humble to-do list a try. 🙂
And if you have other productivity tips, share them with me on Twitter.
Happy coding!