How I Use a Task Manager to Organize My Dev Work
An Approach to Breaking Down Programming Projects to Increase Productivity
As a super Type-A person dealing with the recent increase in remote work, it's been critical for me to structure my dev work in a way that allows me to get up and running quickly. Up until last year, I mostly used a pen and paper to-do list approach. I'm still a fan of the tactile nature of that approach, but I wanted to see if there was a way that I could automate my workflow in some capacity. It took some time and tweaking to get there, but I finally have a template that I am happy with.
In this article, I will show you what that template looks like and walk through my thought process of how I use it regularly. I hope that this article will give you some ideas of how you can break up your dev work to increase your productivity.
The Template
Things 3 is my task manager of choice, but feel free to use whatever works best for you. I'll go into more details in the following sections and provide an example that demonstrates how I would go about using the template as a guide to breaking down my work into atomic units.
- Research
- Scaffolding/Styles
- Implementation/Logic
- Testing
- Miscellaneous
- Bugs
- Cleanup
- PR TODO
1) Research
This section houses tasks for topics or library documentation that I know I need to spend time sifting through. Simply put, this section is mostly for upfront research that you may need to do.
When I'm working on a particularly complex task or know that I will be looking at code that uses some third-party library that I'm not super familiar with, I will add a few tasks in here to set aside some time to watch tutorials or read through the documentation.
2) Scaffolding/Styles
This is predominantly a UI-only thing, but this section comes in handy when I am working on more greenfield development. For example, you could place tasks like "stub out new landing page" or "modify the button component styles."
3) Implementation/Logic
This is where the bulk of my tasks go. I add all the tasks that will make up the core of the work I need to do to implement whatever feature I'm currently working on. This can be a little tricky to task out since it's difficult to identify every little step that you'll need to take to implement something, but it helps as a general guideline and I am constantly adding new tasks to this section as I work through a feature.
4) Testing
This includes general testing I want to ensure I do once the functionality has been wired up and/or official test cases that I need to write up before submitting a pull request.
5) Miscellaneous
As the name suggests, this section consists of a grab bag of tasks that don't fit under any of the other categories.
6) Bugs ๐
This is a heading to house those pesky bugs that you may find while testing your work as you implement a feature. Sometimes determining the root cause of a bug is not super apparent and will take a deeper dive. Due to that, I like to put those tasks here so that I can make sure to fix them later on. This gives me the ability to forge ahead on the bigger feature at hand while still making sure that the code quality is met.
7) Cleanup ๐งน
This section is for general code cleanup things I need to do. Things like "Remove log statements" or "Rename variables" could go here.
8) PR TODO
This is a placeholder heading that I rarely have to use because I write perfect code ๐ (just kidding!). On a serious note, if I get pull request comments from teammates to address certain things, I will place them here.
Caveats
Planning dev work is not always the easiest thing to do. Especially since the effort involved varies on the type of work you're doing. I utilize these broad sections in my template as a general guideline to help me in completing the overall job at hand.
The template I've outlined works best when you have a bigger feature that you need to implement with multiple moving and/or complicated parts to it.
El Fin ๐๐ฝ
Thanks for taking a sneak peek into how I use Things 3 to structure my dev work. I hope this birds-eye view will inspire you to create a system that works for you. Feel free to share any comments about how you tackle your dev work.
Thanks for reading and happy coding!