Getting stuff done - practical solutions for pulling off large projects

17 min read Original article ↗

So this might be an unusual post for a site that I predominantly intended to be a collection of tech-articles, but over the recent years I’ve both been observing and noticing in conversations that while there’s plenty of technical material online about how to learn to program, do graphics, engineer music, and so on, much of the writing about how to get projects done seem to veer over into either “life hacks” about how you should do stretches and open your window for fresh air, or escalate into the territory of motivational speeches and emotional, heart-to-heart peptalks; now, while I understand and appreciate their usefulness in certain scenarios, they seem to cultivate a misunderstanding that all you need to get a project done is a positive attitude and ab-crunches.

After having been in an industry for 10 years that has a relatively high throughput, and having had many relatively recent conversations with people who were in awe or disbelief about my ability to handle large projects, I was reinforced in my belief that most people are unaware how much of getting a large amount of work done is down to cold science, scheduling, professional planning, and the ability to retain control of a project even when unexpected events happen.

With that in mind I’d like to present a few random bits and bobs about what I learned about project management - not necessarily only in programming, but in any sort of creative activity - while hoping to keep the popular psychology element in them to the mininum.

A quick note before we dive right in: I’ll be talking entirely about sparetime activity that you want to invest time in. While it can be useful to apply professional techniques to your sparetime activity, you should definitely not treat the two as they’re one of the same. That’s a good way to hate what you used to like. (Trust me.)

Who’s producin’?

Before we start talking about actual work, it is important to introduce ourselves to an important term, namely production. Most people think “production” is the act of making something, and the “producer” is someone who makes things, while I would wager a large portion of the populace can’t tell you what a “film producer” does aside from “making films”; on a day-to-day basis, that role seems to be an opaque cloud to most people, even if it’s one of the most important.

The short version is that the producer’s job is to make sure that the project is finished on time, and on budget. The slightly longer version is that the producer takes the amount of time available, the amount of resources available (budget, people, inventory, etc.), consults the respective heads of departments actually doing the work, and then comes up with the plan and schedule as to what happens when, when something finishes, who works on what, and what resources will it take; once production starts, they transition their role into making sure everything goes to plan and if something doesn’t, what are the options to salvage things.

There is a reason why in most professional environments, there are entire departments for this: it is a tough job, often frustrating, sometimes disheartening, but at the same time a producer is always aware of the state of the project and can have a good idea of progress being done, and whether the whole thing will come together in the end. This will become extremely important later.

Weeks of coding can save you hours of thinking

Projects are usually broken up to three important segments: Pre-production, production, and post-production. These tend to vary from industry to industry as to what they mean, but pre-production generally consists of building a production plan out of the resources and time available. Pre-production is one of the most important parts of a project, because it will define how the rest of the project will be committed, and thus it’s important that we first delve into the ins-and-outs of planning.

First thing first, decide if you have a deadline for your project. Deadlines are cruel, they’re unforgiving, but that’s why they work miracles on productivity; projects without deadlines don’t put pressure on the authors and eventually they just get dropped down the chute of “maybe later”. Pick a hard deadline, or pick a reason to have a hard deadline. (Sidenote: demoparties work wonders as deadlines.)

Secondly, once you picked a deadline, assess your project’s needs: Assuming your project is in some way technically complex, what are the things that you don’t have and need to create or acquire for this? If you’re doing music, are there plugins or samples you need, or instruments to acquire, or musicians to talk to? If you’re painting, do you have the paints and brushes, or is your tablet broken and need to get it fixed? If you’re making a demo, do you have an engine, can it do what’s needed? Think about every single thing you need.

Once that list is done, break down your project into elements, in detail - this is the most crucial part of production. If it’s a song, roughly jot out the parts on paper and maybe the list of instruments you want in there. If it’s a large 3D scene, write down the elements you want in it in detail. If it’s a novel, jot out the chapter titles. If it’s a demo, chart out the parts with rough ideas on how long each is and what’s in it. If it’s a game, map out all the mechanics, characters, levels, cutscenes, and so on. Break everything down to parts, and do it visibly so that if something is missing, you can spot it. Once that’s done, take the parts and break them down further: What is needed for each part? Roughly how long is the duration of each part? What are the technical necessities of each part? What are the assets needed for each part? What is the process for creating each part?

There are many reasons why all of this is crucial. Firstly, this will serve as your gameplan for the rest of the production process. Secondly, and more importantly, the more you break a large project down to small parts, the less daunting it will seem: if you embark on a project that can take months to complete, you have to take it on one day at a time, and each day will need to end with some sort of progress. If you have a roadmap that tells you each day what that day needs to get ticked off at the end of it, you will no longer be fighting an endless battle; instead you’ll focus on the task at hand, with a bigger roadmap to keep you in check.

This leads us into another important consideration, and one of the more murky ones: time estimates - for each of the broken down tasks, give a good guess as to how long it will take. Then multiply it by at least two, and that’ll give you a good idea of the time you will need. See, the first thing you should learn about when producing is contingency: contingency is a multiplier for each task’s estimate that adds extra headroom that accounts for anything the estimate doesn’t account for. There are many things that can make a task take longer, and not all of them are relevant to the task: you might run into edge-cases that add extra complexity, but on a much more basic human level, you never know when you’re going to break a leg, or your cat will get sick, or your apartment gets flooded - anything can happen, and it probably will, so make sure you account for that, and leave yourself plenty of headroom as contingency, and best case scenario you’ll just have a more relaxed process.

Sometimes, however, even contingency isn’t enough, and you’ll find yourself running behind schedule. This is why this next step is important: Nail down your scope, and stick to it. There are many things you have listed in your above breakdown, but they all vary in importance, so make sure that next to the time needed, you also note down their importance. As the late great Randy Pausch said in his Time Management talk, it’s important you distinguish between things that are important, and things that are urgent: there might be things that are urgent for a project, but ultimately not important, and it is up to your discretion to rank them upfront. [Update: I’ve recently found out that this is called the “Eisenhower Decision Matrix”.] As for ranking, this is up to you; you can do it on a scale of 1 to 10, but I personally prefer what they call the MoSCoW method, where “MoSCoW” stands for “Must”, “Should”, “Could” and “Would”/“Won’t”, and they signify how important that specific thing is to the project: “Must”-s are the things that are the bare minimum to get a project off the ground, “Should”-s are important, but not necessary, “Could” are polish, and “Would” are just whatever there’s time left for if you’re ahead of schedule. Ranking by necessity is very important, because once you start running out of scheduled time, the only option you will have aside from having a project fail is to cut stuff. Ranking by importance also allows you to schedule accordingly, making sure that unimportant polish tasks are moved towards the end of the process instead of wasting time with them at the start.

One thing to note here is that it takes decades of experience to get all of this right, so much like your actual skills of making things, your production skills will get better with time - a good rule of thumb here is to just keep your eye on the ball: decide whether an item on the list fundamentally contributes to the production, or is it just something that you think it would be cool to do, or something you wanted to do anyway. It’s tempting to get sidetracked by excessive detail like splurging on instrument recordings or adding engine features, but focus on the goal: If it doesn’t contribute to your end goal, cut it.

I also want to remark that I actually did the same for this article: earlier I wrote down bullet points about what I want to mention and started arranging them into a flow.

Doin’ the work

Once you’ve planned your stuff out, then it’s just a matter of discipline of taking off the next item on your list, and working on it until it’s done. This is of course both easier and harder than it sounds, but remember: you made this list with full knowledge and intention to follow through on it, so at this point this is your best bet to get to your goal. I usually reinforce my adherence to the plan by putting the physical (printed) schedule in a visible place in front of me somewhere in the room, to keep me focused on the goal; I also mark off items that I’m finished with, because I personally find the physical act of ticking off or crossing out an item very satisfying - it’s the little things, really.

image
The production document for PILEDRIVER

There are a few things that can help with getting into a good workflow: One thing a lot of people underestimate are placeholders - when your final art isn’t done, just stick something in there that only vaguely resembles what you want in there, and every day you work on it, not only will it remind you that it needs to be replaced, but on occasion it will reveal problems in the grand picture.

To bring a practical example, both with “Signal Lost” and especially with “PILEDRIVER” I went absolutely crazy with placeholders, essentially building both of those demos twice as what in the 3D industry they’d call “animatics”: just rough boxy versions of the scenes with approximate camera/lighting, just to be able to get a feel for the pacing / length of the scenes, the camera speed, and so on. Making an animatic version of the scene and getting it in the engine usually took less than 15 minutes, but with the music done, I was able to immediately get a feel for whether I need to adjust my initial idea slightly, or perhaps I needed to find another camera angle, or break a section up to more parts.

The PILEDRIVER animatic

I actually went one step further earlier in the process; I knew I wanted the rap part in the middle, but the lyrics I wrote were fairly complex, and I knew Fantom would struggle with some of it (especially in pronunciation), I decided to take the lyrics and put them through my favourite speech synth, Daniel, and then chop it up so that it resembles the flow I thought sounded best for that particular part. This not only helped with the recording, but also reassured me that the idea would work.

Against all odds, I managed to coax Daniel out of retirement.

As you can see, my work methodology was often designed around one thing: quick feedback and iteration. I find myself having very clouded visions about art-related things most of the time, so for me it is very crucial to be able to try stuff as quick as I can and fail early, so especially with music, I do what the late Linds Redding coined as The Overnight Test: If something I make late at night doesn’t sound great the next morning, I scrap it and start something new, maybe cannibalizing the good bits from the previous iteration. When on a timer, sometimes iteration means not getting stuck on something that would never work.

Note: I’m aware that Mr. Redding used his term in a more somber context later in his life, but I’m merely sticking to its original meaning here.

And speaking of overnight, let me stress one thing: always do nightly snapshots of what you’re doing. If you’re making a demo, build the whole demo every night and watch it, maybe run it on your work computer the next day during lunch. If you’re making a song, render it out and put it on your portable player and listen to it on the bus the next day. Not only will you internalize the work and make a list of issues to fix over the course of the day, but it assures the integrity of the technical side of the project - I’ve watched way too many demogroups, as recent as last month, make an awesome prod that just doesn’t compile or crashes before the deadline because they were too busy working on content and never tested the actual executable. If you do this every night, or maybe even every few nights (but always at least once a week), you’re more likely to realize that your compile config hasn’t been updated for a while and you really should do that before you’re 5 hours before the deadline and you’re drunk.

Sidenote: I’m aware that this is perhaps too specific of an advice to programmers, but probably worth mentioning, and I can imagine variations for other artforms as well, like importing/exporting problems with 3D.

Pushing on

So this is the bit in the text where we might be veering close to a pretend version of popular psychology and talk about subjective things like motivation and dedication, so I’d like to make a disclaimer that I’ve never formally studied these things, and you should not take any of this as gospel or any level of scientific; these are just things I noticed about myself, and tried some simple methods to counter them, and they (mostly) worked fine.

One of the big things I’ve mentioned earlier is the daunting vision of the road ahead; with large projects, it’s incredibly demoralizing to just sit at the start and be crushed by the amount of work that needs to be done, especially if you’re doing something where it takes a large amount of work just to be able to have something basic; with music it perhaps only takes a ~10 second loop to feel like to be on the right track, with a full demo, the aforementioned placeholders do a great job, but with e.g. writing a larger engine, it can take weeks before you get to the point where you have anything on the screen simply because of all the modules you need to work on first. My mitigation for this was what I call the skeleton method: What’s the least amount of work I need to do to get anything to get on screen? For that, what’s the least amount of work I need to do to get something to just run? All of this ends up in the pre-production document as well, so when I start working, I can relatively quickly get to a stage where it’s just a blank window, but it’s built on an engine skeleton where replacing things is straightforward once I reach that point in the process. I myself noticed that my work morale improves once I’m able to send screenshots or chunks of the thing I’m working on to people, so I try to get there as fast as I can.

Another thing I noticed about my working style is that even with managable work chunks I have problems getting started simply because it takes a while to get into “the groove”, so a little technique I’ve been using is that when I’m about to wrap up for the day, I make sure there’s a glaring problem with what I just did, like an obvious bug or mix error that I could fix in a few minutes - and then I leave it like that until the next day. That way, the next day I’m able to jump in and start with something easy.

The final thing - which I kinda hesitate to mention because we’re already way too deep into motivational speech territory to my taste - that I found extremely useful is regimen: making sure that there’s a period of time either or daily or weekly that I get to work on the project. Perhaps the ultimate guru of regimen is the great Beeple, who has been releasing a piece of art every day for more than 10 years now, and has given expletive-laden talks on the subject of why regimen is important. Now, I think we can safely consider him an edge-case with 10 years of everydays, but at the same time, there’s value in doing something in a regular manner, and there’s also a consideration of the amount of work you need to do versus the amount of time you have.

One important aspect all of this is that while guilt can be a good force of motivation, you shouldn’t beat yourself up if something doesn’t work out. Failures are a part of life, and they’re an even larger part of any artistic or techical process, and you should accept that sometimes best laid plans can go absolutely up in flames because of a variety of reasons - like, say, because there’s a global pandemic going on, and that the existential pressure of it takes away your motivation to do things. All of that is okay. As Eisenhower once (supposedly) said, “Plans are worthless, but planning is invaluable.”

In summary

I’m mentioning that failing is always part of the process, because I’ve been listing a lot of rules and constaints and limitations on what you should and shouldn’t do, and I must again emphasize that all of this is meant as advice and observations with regards to spare-time activity, and that how much of this you use will depend on how bad do you want one thing over the other: Managing spare time can require a delicate balance especially if you have a healthy social life, and if you do, you have to decide how much to work on retaining that versus how much you work on your passion project, and in my eyes this ultimately all leads back to pre-production: if you know you can’t spend time on something every day and the deadline is right around the corner, rein in your scope early so that you can deliver rather than giving up halfway, because no unfinished project is as impressive as a finished one.