7 Tips for Time & Project Management - Devlog #5


One of the questions I get asked frequently is "Wil, how do you manage to have full-time job, to spend time with your wife and baby, to workout, to play games, to watching shows, and to make video games? Where the hell do you get the time?"

The answer is easy, my friend:

I made a pact with the devil. See you in the next blog!

Jokes aside, juggling so many things is a real challenge but after doing it for so many years (without dying in the attempt), I thought that sharing what I do might be of help to someone else out there.

The first thing I want to say (in a disclaimer fashion) is that what I'm about to share is not a recipe for success. It is just a collection of tips and tricks I have been developing and tuning over the years that work for me, use them as a reference to find what works for you and make sure you adapt them over time as your life changes.

Are you still with me? Good! Now to the fun part.

Tip #1: It's all about consistency

Let’s start with what I consider the most fundamental part of it all: consistency. Without consistency you won’t get far.

I use a technique I call "one commit a day" and the goal is to make at least one code change every day, no matter how big or small it is, as long as it is something I can push to the remote repository. But this technique is not limited to code, I also apply it to drawing, planning, designing, writing, and pretty much everything else. The idea is to move forward with whatever goal you have in mind, even if it’s just the tiniest bit.

I've read about variations of this technique, specifically, one called the 2-minutes rule, but it doesn't matter what you call it, it's all about keeping your project relevant in your head, fighting procrastination and making it a habit. As the old adage says, one commit a day keeps regrets away.

But it goes even beyond that. Me and my friends meet remotely every Wednesday night and Sunday morning for about 2 hours to work on the game. Some days are super productive, some others not so much but we are there, consistently.

Tip #2: Discipline is key

Sometimes, even with the "one commit a day" rule, it's really hard to get things done. Motivation is great and it will push you through the initial phase of any project. The problem with motivation is that it is ephemeral. Once you start facing challenges and things start getting real, your brain goes: "Oh, hey! This shit is harder than I thought, so how about we just forget about it and find something easier and more rewarding?". That's because the brain loves dopamine and it will do everything in its power to keep us hooked to any source of instant gratification.

That's when I put my discipline hat and say: "Fuck off, brain! I have to do at least one commit" and more often than not, that commit turns into multiple commits and sometimes even into a full feature. It goes along with the 2-minutes rule, you just need the discipline to sit down and overcome that initial resistance, then things will start to flow.

Discipline is what keeps you going when motivation evaporates.

Tip #3: Be S.M.A.R.T.

Perhaps it is because of my background but I use standard practices from Software Engineering in my personal projects and it has yielded very good results. In a nutshell, this is what I do:

  1. Figure out what is the objective I want to achieve.
  2. Define a series of S.M.A.R.T. goals (no more than 10) that will help me achieve the objective and sort them by priority/importance.
  3. Take the first goal and create a sprint/iteration for it.
  4. Define (grossly) the tasks required to accomplish the S.M.A.R.T. goal (also known as planning in Agile methodologies).
  5. Work throughout the iteration and complete as many tasks as possible (aiming to 70%).
  6. Generate a build and share it (friends, reddit, etc) to get feedback. This feedback is SUPER valuable to improve.
  7. Based on the feedback, create new tasks and assign them to sprints according to how they match each goal (unless they are bug fixes, I assign those to the immediately following sprint)
  8. Take the next goal and jump back to step 4.
  9. Rinse and repeat until finished.

As you can see, the overall idea is to have a roadmap and understand where to put the efforts to maximize them. Remember, nothing is set in stone and you need to embrace and be prepared for change. I usually iterate over this planning often to adjust, reprioritize or simply discard stuff that doesn’t make sense anymore.

Tip #4: Optimize the idle time

When I was a kid, I learned to take advantage of the idle time to organize my thoughts and prepare for exams. For example, while my mom was cooking I'd sit with her in the kitchen to review my cheat-sheets or had her quiz me about the subject I was studying (yeah, and I'd prepare the quiz too :P).

Nowadays I still follow the same principle. While I'm waiting in line at the grocery store, while the kiddo is playing by himself after he took his bottle or while I’m in the bathroom doing #2, I see opportunities to organize ideas, make notes, catch up with that article or video I have in my to-do list or simply review and reshuffle the priorities of my current iteration. In my head, every minute counts.

The only thing I cannot do in these windows of time (20 minutes or less) is to code. It simply doesn't work for me. My brain cannot switch contexts fast enough and, by the time I understand what to do, the time is over. However, that doesn't mean I cannot use the idle times to improve my time programming.

Here's what I do. I take a task from the current iteration and start thinking about the problem, how to solve it and then I take notes (as detailed as possible). The magic happens later, when I sit down to code, check my notes and find a solution documented and ready to be implemented. I don't have to waste time thinking "what's the best way to solve this?" or make any decision. Just write the code. It's like hitting Cmd+P (or Ctrl+P if you use a PC) and watching the code getting printed.

Tip #5: Cut down on social media

Social media can take up a lot of your time without you realizing it and, as an adult, time is very very limited. The way I see it is, any time I spend on social media is time I'm not spending on my game or with my family.

So, I stopped using Instagram, reduced my time on Twitter and Reddit to no more than 15 minutes a day, and repurposed that time to work on the game, either coding or as optimized idle time. This has definitely improved my productivity.

It's still a huge dichotomy because I just want to disappear from social networks and use that time to work on my game, but who's gonna know my game even exists if I don't talk about it and promote it on social networks? Finding the right balance here is tricky but necessary.

Tip #6: Maintain a healthy work-life balance.

And I'm not only talking about work-work, side projects sometimes can become almost like second jobs and we shouldn't let ourselves get lost in them.

Whether it's "me time", hanging out with friends or spending quality time with my family; disconnecting from my projects and enjoying these moments is extremely important to make this whole thing sustainable, nurture the relationships with my loved ones (yes, those supporting me unconditionally through thick and thin) and even gain new perspectives by experiencing what others have created.

So I workout, play a game, watch shows with Andrea or just catch up with friends. I do something that is not my project but also makes me happy. I appreciate those little moments and the people around me.

Tip #7: Choose your battles wisely.

Last but not least, learn to prioritize.

If you ask Andrea, she will tell you I’m the type of person that wants to workout, share quality time with her and the kiddo, make a game, go on a date, watch shows, practice drumming, learn to play the guitar, learn to sing death metal and ALL AT THE SAME TIME. She always says to me: “You can’t do everything, choose your battles wisely” and that’s what I’ve been doing for the last few years. As I’ve already mentioned, time and energy are limited, so I prioritize my tasks very carefully. Based on the S.M.A.R.T. goals, I find out what is the most important thing at the moment (basically the one that contributes the most to the goal) and then focus my efforts on it.

There you have it, my 7 tips to management your time and project without dying in the attempt. What do you think about these tips? Do you have other tips that have improved your productivity? Let me know in the comments.

Get Hope: A Sky Full of Ghosts

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.