I first thought I’d have to sit this one out. I’ve never been really big on tips and tricks. I sometimes look in awe at all the handy stuff I see other people do. And then I try to memorize it all … and fail miserably. For me, it is apparently more efficient to just use the simple, standard methods, then it is to try to memory all the hacks and tricks that are intended to make my life easier.
But then, just yesterday, as I was busy writing script and slides for one of the chapters of the SQLServerFast execution plan video training, I realized there’s one thing I have learned to do that helps me manage my activities better.
Planning my activities
I often have a lot of things going on at the same time. I of course have my family. I do contract work for clients. Those are the obvious ones. But then, there are other activities too.
I need to make sure to send bills to my clients every month. Need to make sure that my company pays my salary in time, and pays its other bills. I need to file taxes. But I also want to add new content to my blog every once in a while. I want to keep adding new pages to the SQL Server Execution Plan Reference. When I am selected for a conference, I need to make sure to arrange travel and stay in time. To finish making or updating my slides and demos, and to upload them to the conference site. And a ton of other things.
With so much to do, I tend to forget stuff. Especially the boring stuff that brings no fun. I tend to spend all my time on something I enjoy more, postponing other tasks. Or I go through a lazy period and spend too much of my spare time playing games, and not enough doing community stuff.
The solution: Azure DevOps
So here’s what I did to solve it. I created a project in Azure DevOps, and set it up with all my activities. I’ll admit that I took some liberties to get everything arranged the way I wanted to. I use Epics for a high level distinction of my activities (I currently have epics for “Conferences” (this includes submitting, booking travel, and preparing decks and demos), for “Recurring activities” (such as invoicing customers or paying my company’s bills), for everything related to this website (Execution Plan Reference; Execution plan video training; etc.), and for private activities I need to plan so I don’t forget them. I use the Feature and User Story levels for further subdivisions, and at the lowest level are obviously the Tasks where I plan my activities. I try to keep each task fairly small. So for instance, when planning a new chapter for the video training, I have separate tasks for preparation (script, slides, and design of the demos), for recording, for editing, and for adding captions.
And then I created sprints. Two weeks each. All tasks that have an obvious point in time when they need to be done are assigned to the appropriate task. And then I assign other tasks based on the order I think is important, and based on how much time I asses I’ll have available.
Why it works (for me)
I like this solution because now, when I have some time to spare, I can just visit my Azure DevOps site and look at the taskboard for the current sprint:
I scroll through the list of all tasks that are in progress (“Active”). Or that I still need to start (“New”). Some I cannot start yet. Some are becoming urgent. Others are just there, waiting for me to work on them.
Based on the restrictions and priorities, I pick one and work on it. And then I change the estimate of the time remaining. Or I mark the task done (“Closed”). And at every time I want, I have a nice overview of all I need to do.
If I realize I have a new task to pick up, I simply add it, then assign it to the appropriate sprint. Sometimes that’s somewhere in the future, and by adding it in Azure DevOps I now make sure I won’t forget. Sometimes I need (or want) to start working on it right away.
There’s also a motivational aspect to this. See the graph in the top right corner? I can click it and see a bigger version, like this:
Ideally, the remaining work goes down in sync with the remaining capacity and/or the ideal trend. But life is seldom ideal. In this case, I started the sprint already with too much work planned, hoping I’d catch up. On June 4, I even added an extra task that I wanted done this fortnight already. And then I didn’t do much for two days. But that motivated me to pick up the pace, and as of June 7 I am working full steam to try to catch up. Though I’ll probably have to reschedule some of the tasks with lower priority.
The motivation works two ways. Seeing myself fall behind is a good motivator to kick my own behind and get working. But other periods, I go on schedule or even faster. And seeing a burndown graph such as the one below is then a great reward.
I love looking at the burndown graph and realizing I’m on schedule. Or even ahead. I love that so much that the prospect of being able to look at a picture such as the one above can sometimes really motivate me to step away from my game and work on something else instead.
For me, Azure DevOps has turned out to be a good way to help me keep track of my activities, to plan them, to track progress, and to motivate myself. I don’t know if it’s the best tool for the job. But it’s a good enough tool, at least for me.
Now I do need to add a disclaimer. As a Microsoft MVP, I do get certain perks for free that other people have to pay for. I also own a company that has a (paid) Microsoft 365 subscription, mainly for the OneDrive storage and the Office apps.
I often honestly don’t even know anymore which of the things I can use for free are free for everyone, which are included in my companies’ Microsoft 365 subscription, and which are given to me as an MVP. So if, after reading this, you are now all excited to try to set up your own Azure DevOps project to plan your project … I hope you get it for free, just as I do, but I honestly cannot make any promises.
(Feel free to use the comments section to give me some feedback on this).
(EDIT: Bas Lanting commented that the Basic Plan for Azure DevOps is included with a Microsoft 365 subscription at no additional cost, and supports up to 5 users. Which is of course more than enough, since a personal planning tool needs just one user anyway.)