Time management & productivity tips for devs ⏳
The other day I had the honor of being approached by a fellow dev for advice. Advice regarding time management for devs and how to best make time for learning new skills and working on side projects.
Disclaimer: I am by no means a guru in time management, so don't get your hopes up! 😂
I must admit that I personally struggle with time management and accountability (especially in these challenging times). Despite being a failure at managing my own time, I can still give some "advice" and tips in this area. After all, what have I not tried yet? 🤔
Without further ado, let us dive right in! 🤿
Tip #1: Build in public
Or in simpler terms: start blogging. If you happen to struggle with accountability and "motivation" to keep working on something (whatever it is, really), have you thought about building in public(aka blogging your journey)? Why am I suggesting you blog about whatever you are hacking on? Here's why:
- Share your learnings with the community. It may help someone out there. In other words, you get to be a hero...sort of 🦸♀️🦸♂️. After some time, you may wind up with a followers base that looks forward to reading your blog posts, which is lowkey a way to hold yourself accountable. Don't leave your followers waiting!
- You hold yourself accountable by documenting your journey on a regular basis. Trust me, consistency is key.
- You flex those blogger muscles, duh! 💪🏻 But seriously, you get to improve your soft skills (such as (technical) writing and communication). As a bonus, you build up your online presence a bit. Pretty neat, right?
Now, if you don't fancy the idea of going public and blogging, you can try journaling for your own sake too. I'd say keep an open mind about it and dare to try. Only by trying will you get the formula to success! 😁
Tip #2: Set (attainable) goals for yourself
Oh, this one is tricky. Ever heard about SMART goals? In this context SMART stands for:
See the infographic below for a nice summary of this concept 👇🏻 Image Source
If that's too much for you to handle, I'll share with you what I do to set attainable goals. For instance, I started blogging on here recently and I have promised myself to post two blogs every week (with a fun lil bonus on weekends, usually). It does not matter on what days I post. As long as I spit out two blogs a week, I'm happy. 😂
The bottom-line here is: keep it simple if you absolutely have to. Set a sense of importance on the goal and work towards it as best as you can. Ah, and be patient with yourself. It takes time to build habits.
Tip #2.5: Start small
Often times we self-sabotage by wanting to accomplish too much at once. One thing I have learned is that the best thing to do is to start small. The goal you set for yourself may be attainable and SMART, but if you try to do too much at once (or everything at once for that matter), you'll soon find yourself either burnt out or frustrated. 😤
Let me give an example. Say you want to work on a side project. A todo-list app for example (bare with me, I'm sure you are well past that stage by now). Don't work on the whole app in one swoop. Instead, start with ONE feature, like adding a todo. Hack on that one feature, get it to work, refactor your code, pat yourself on the back, and on to the next task. Not only will this help you work in an organized way, but it will also spare you the frustration and hopefully keep you from quitting altogether. (╯°□°）╯︵ ┻━┻
💡 Remember: START SMALL!
Tip #3: Learn on the job, as much as possible
Okay, let me explain. Let's say you are either working or still in school (uni or whatever), yet you find it hard to make time to work on side projects or to learn new skills. I know the struggle. 😢 Now, don't be so easily discouraged.
Here's how I have managed to learn new things in the past:
- Whenever I had the freedom to choose my tech stack in college (for a project and the like), I'd pick things I wanted to learn more about. If I had to build a website, wanted it to look neat and I was already comfortable with CSS, I'd want to try a UI framework (Bootstrap, Materialize CSS and such). That was my train of thought. I knew that sticking to the same old was not gonna work in my best interest, so I'd choose new things to pick up.
- During my traineeship I had the opportunity to learn about MANY things on the job; Angular, CI/CD, Android development, Scrum, Test Driven Development...and the list goes on and on. Learning on the job left me with some free time outside of work that I could use for something else. (I was usually pretty drained after work, so the last thing I wanted was to learn even more).
- Later during my internship I chose an assignment that spoke to me. I was offered various assignments, but I went for cross-platform app development in Flutter. And so I was able to learn waaay too much about Flutter (which was something that had piqued my curiosity for a long time).
In a nutshell; learn on the job. Use the time you already have and try to incorporate something you want to learn into your schedule.
Tip #4: Make a SHORT to do list
Nope, SHORT is not an acronym here. It is literally just an emphasized version of the word short. Sorry to disappoint.
More importantly, making a short todo list allows you to better prioritize your work or time (or whatever you attempt to manage). By short I mean no more than 3 items. You could go as far as 5 items for all that I care, but please no more than that. Narrowing your focus to the MOST pressing to-do's is important because you make the best use possible of your time. And it also keeps you from procrastinating (at least for a little) and getting completely derailed and absorbed in mundane tasks.
Tip #4.5: Breakdown large and tedious tasks (Start small, remember?)
Make it smaller. Smaller = more manageable.
Allow me to give you a concrete example. I'll use my past self as a bad example, hehe. During my internship (has not even been a full year since), I would frequently get stuck on tough tasks. My mentor at the company realized this and said to me: "Amelia, look, you need to break down those large tasks. It seems like you are not making progress, though I know you are. But as it stands, your progress is hard to measure. Why? Because your tasks are not small enough". BOOM. 💣 FACTS. Right to my face! (My mentor is a hardcore agilist PO (Product Owner, that's Scrum lingo by the way) in case you were wondering 😉). And I must say he was absolutely right! Fast forward to my graduation project (same company, same mentor), and I am breaking down my tasks much better than before.
The bottom-line? Break down your large tasks into small chunks. You'll be able to better measure your progress while also maintaining a good pace. As a bonus, you'll likely not get as frustrated when you get stuck. (And you will know exactly where you are stuck. Makes getting help easier too 😮)
Tip #5: Time blocking
You probably heard about this before. You work for a fixed amount of time, say 60 minutes, then you take a long break of about 15 minutes. Then you repeat this cycle until a certain criteria is satisfied, like completing the task at hand. Thus by time blocking you work uninterupted on a task and take regular breaks in between each time block.
A very popular time blocking technique, is the Pomodoro technique (so sorry for the tomato haters out there 🍅).
Tip #6: Make time estimations
Estimate how long you will take on a certain task. In other words, treat your time like money. How much time can you allocate for task X? 1 hour? Cool, that is your "budget". Need more time to finish it? Write down why. And keep improving from there onwards.
Don't be hard on yourself if your estimations are way off. We humans suck at making estimations, so it is not just you! (Don't take my word for it, there is sufficient research to back this statement. Just do a Google search) Be careful not to underestimate tasks or overestimate your skills. And don't forget: break those tasks down! 🪓
Tip #7: Use mail filters
Oh boy, do I hate a full inbox! Now, some of us really can't dodge these mails. But filters to the rescue! At least that will automate the process of filtering and organizing those mails. Also, please unsubscribe from newsletters that you know damn well that you don't read. Just a tip 😉 You can try a tool like unroll.me or you can manually create filters in your preferred mailbox. If you don't know how to create filters, do a quick search on the net. You'll find enough step-by-step guides to help you in the process.
Author's note: this post is not sponsored.
Tip #8: Turn off non-critical notifications
We all know this one too well. We hear a "pling!" or see our phone screen light up, and like drug addicts we grab the thing and waste an hour on Reddit, Facebook or Instagram (or wherever you like to waste your time). Now, in order to curb that urge, I recommend you do the following:
Just kidding, you may want to avoid that! 😂 Instead, you can try to disable non-critical notifications. If you don't need certain notifications during working hours, block them. One less thing to distract you. Thank me later. 😁 (P.S.: Do Not Disturb can also do wonders for you).
BONUS: set timers on apps to limit daily usage (if your OS allows it. Else, get yourself an app like Forest). Remember, treat your time like money. If you only have 30 minutes to spend on Instagram, stick to the budget. (Before y'all go coo-coo in the comments; if IG is part of your work or social media presence or whatever, limiting the time you spend there may be counterproductive for your goals. So, restrict app usage wisely!).
Oh boy, we made it. That's it! Here's your medal 🥇. All jokes aside, thanks for reading all the way here. Hope you enjoyed this one. Don't forget to share your thoughts and tips below!
Bye bye world! 👩🏻💻👨🏻💻 See y'all soon!
P.S.: If you have written a blog on this, feel free to share it below in the comments. It's self-promo time! 🥳
Still here? Catch me on Twitter or find me elsewhere! If you like my blogs and are feeling generous, kindly consider to 👇🏻