Working on Time Pressures

Have you ever had a client looking over your shoulder asking when something will be done? Have you felt drips of sweat on your forehead as you had only a few minutes left to fix something in a project before an event starts? We know these can be stressful and have faced these time and time again. The competitors in The Interactive & Immersive Championship experience this first hand when they’re given 60 minutes to tackle building something in TouchDesigner without any heads up! In honour of that, here are some of my top strategies for working under heavy time constraints.

Prioritize

The first step to beating any time constraint is to prioritize. This sounds obvious and you might even think “I know what the priorities are!” The problem under time constraints is you often can’t get everything done. Some things will more than likely need to be ignored or skipped. If I was to ask you in the heat of the moment “if you could only do 2/10 things right now, which would they be?” you better have your answer on the tip of your tongue, otherwise I’m afraid you probably don’t actually have a real list of priorities. A list that you can spit out immediately or glance at isn’t a real list. That’s just you thinking that you know the priorities, or worse you’re agreeing with the client that everything is a priority. That’s not how time constraints work. We’ll see why in the next steps why prioritizing is important but I always start with a list on paper that is visible, that everyone can see, and that everyone can agree on (read about client buy in here!). This could be as simple as bullet points on paper like:

  • Fix bug that breaks system
  • Polish render quality
  • Fix speaker routing
  • Change layout of weather data to match new design file

Simple, clean, and you put them in order of priority. The rest of the steps in this post won’t really work if you don’t have a clear order of priority, or worse, you’ll do your best but the clients and bosses won’t care. Set yourself up for success!

Infinite vs finite tasks

In software development, and in particular with media development, there are 2 kinds of tasks: ones with clear end points and ones that could be worked on forever. Knowing what kind of tasks you have on your list is really important when it comes to actually scheduling your time constraints (in the next step). In the example list above, we can determine that the following tasks are finite, meaning they have a clear end point:

  • Fix bug that breaks system
  • Fix speaker routing
  • Change layout of weather data to match new design file

There are clear objectives to achieve and when you achieve them, you’re done. On the other hand, polishing the render quality could go on forever. What is polished enough? Who decides? How long will it take? What’s involved? These kinds of tasks may or may not have clear answers to these questions and may just be wishes or directions people want you to move in. There is a very common and very easy to trap to fall in that goes like this (it may sound familiar!!!):

  • You have a list of 4 things you have to do in a short amount of time
  • You start the first one and finish it quickly because it has clear goals
  • You start the second one, but it’s kind of vague and you don’t know what is finished
  • You keep working on the second one and lose track of time
  • You’re out of time and you never got to items 3 and 4 on your list because you ended up working on item 2 the whole time
  • Client is angry item 3-4 aren’t finished (and they might not even see that much of a difference for all the time you put into item 2!)

Been there, done that. This is why it’s critical to know if something on your priority list is a finite task or an infinite task. If it’s a finite task, no problem. If it’s infinite, we need to mark it as such because in the step of scheduling, we may split infinite tasks into two separate scheduled items!

Deal breakers

This is a very short step but it’s an important one because some items may frankly be “deal breakers.” These are items on your priority list that if you don’t get them done, then the whole installation will fail or it’ll be an actual disaster. In the above list, “fix bug that breaks system” might be marked as a deal breaker. What’s the point of improving rendering quality if a user can’t actually get through the experience? This is important to decide between yourselves and project managers. Usually if you involve a client they might give you false positives on what is and isn’t a deal breaker because I usually define deal breakers as items relating to overall functionality unless it’s something visual like “please add the client logo to the screen.” Either way, after you’ve marked infinite tasks, mark the deal breakers. They’ll more than likely already be at the top of your priority list, and if they aren’t, you should consider how it can both be low priority but also a deal breaker.

JOIN THE INTERACTIVE & IMMERSIVE HQ PRO

Want to take your TouchDesigner career to the next level?

The HQ PRO is the only comprehensive TouchDesigner training resource available.

If I’d had access to the tutorials, workshops, coaching and community found in the HQ PRO when I first started with TouchDesigner, I would have hit my career goals years sooner

Scheduling

Ok, enough talk about making lists and marking items! Now is the time to actually make a schedule. This is critical because if left to our own devices, we can spend tons of time on things that don’t matter. Let’s look at our example list again all marked up:

  • Fix bug that breaks system – finite – deal breaker
  • Polish render quality – infinite
  • Fix speaker routing – finite
  • Change layout of weather data to match new design file – finite

We can now dive in to allocating the time we need for each task. A few important things to remember here are:

  • allocate time for everything individually
  • break infinite tasks into smaller finite tasks
  • deal breakers usually must be finished before moving on

If you follow those three rules, you can quickly get to an effective schedule. Some of these rules will need practice. Estimating the time it takes to do something in software development is not something you’re born with. You learn how fast you work, what things are hard, and what kind of traps you might fall into. But you do your best and review the success of your plan after. If I only had an hour to do the above example, it might get broken down like this:

  • 10 minutes – Fix bug that breaks system – finite – deal breaker
  • 15 minutes – Polish render quality – update to use PBR materials
  • 5 minutes – Fix speaker routing – finite
  • 15 minutes – Polish render quality – add shadows
  • 10 minutes – Change layout of weather data to match new design file – finite
  • All remaining time – Polish render quality – add better lighting setup, add better transparency, etc

In this schedule, if I finish items faster than expected, great! But if they take longer, I only give them a minute or two of leeway before I wrap up and move on. Minutes add up quick, and slippages add up even quicker. The key here is that I wouldn’t move on from the first task unless I finished it. Then I’d carry on with the rest of the schedule as best I could, knowing that if some items from the end never get done, that’s ok because I prioritized the most important things, got buy-in from other folks on the project, and approached the situation in an organized and logical way. That’s all anyone can ever ask of you because no one is magic, we’re all just people doing out best. Another thing to note in the above schedule is I took “polish render quality” and actually broke it down to smaller tasks that are finite so that I could both work on it but also not lose myself completely to that single task without doing any of the other priorities. This is important especially considering diminishing returns on tasks like that, after a while no one but you will notice that you’ve been working on it forever.

Wrap up

Working under a time constraint can be stressful. First and foremost, take lots of deep breaths and focus on doing the work and not how you feel. Once you’re getting ready to dive into the work, I’d highly recommend the strategies I’ve laid out here of making a priority list, marking the infinite tasks, and then scheduling everything as best you can. These few steps, as simple as they sound, will help you get the best out of yourself and your work under tight time constraints and will ensure that everyone you’re working with/for will also appreciate and agree with the work you’re doing and how you do it. If you don’t end up doing these steps, you’ll repeatedly encounter what many folks in our industry do, which is the stress of having too much to do on too short a timeline and never being happy with the results. Dodge the bullet on that and be successful with the strategies above. If you want to see these strategies in action, the final round of The Interactive & Immersive Championship is happening on July 25th from 12pm – 4pm on our Twitch channel, where 29 competitors are given tight time limits to build complex things. It should be a blast and you can learn more by clicking here. Enjoy!