I was thrilled when Zoe Quinn accepted my team’s pitch for #Antholojam, which had a game creation window from November 19 to December 19. Our initial plan for responsibilities looked something like this:
- Caelyn Sandel – Art, writing, and design
- Carolyn VanEseltine – Programming, design, and additional writing
- Dani Church – Back end and UI
- Jamie Sandel – Music and SFX
But from November 29 to December 21, my life looked like this:
Making my dog happy is the only thing I've accomplished today. Maybe my real calling is to be a dog bed. Bluuuuuuuugh hate being sick.
— Carolyn VanEseltine (@mossdogmusic) December 3, 2014
Facekeyboarding is not producing code that compiles. Thought I was well enough to sort-of work, but the answer is rapidly turning into "no".
— Carolyn VanEseltine (@mossdogmusic) December 4, 2014
Killer sore throat over; now, just coughing so hard that I wake up the dog. Yay? Glad @Cirne isn't here to get it.
— Carolyn VanEseltine (@mossdogmusic) December 5, 2014
I am so very, very tired of being sick.
— Carolyn VanEseltine (@mossdogmusic) December 10, 2014
I needed help opening a tupperware, because of sick and weak. I was so embarrassed I wanted to cry. @Cirne said it was a hard tupperware.
— Carolyn VanEseltine (@mossdogmusic) December 18, 2014
I tried to work through most of it, but it wasn’t pretty. Even when I was feeling better, I wasn’t thinking clearly. My ability to read anyone else’s code (or remember how my own worked) dropped precipitously, and I struggled to understand new concepts and systems – such as the new Unity UI system released on November 26.
The farther I fell behind, the more it impacted Dani’s UI work. I wasn’t grasping the new UI system, so I wasn’t providing adequate support for the new system, and eventually she refactored a decent chunk of my infrastructure so she could move forward without me.
I’ve always struggled with imposter syndrome, and the changes threw me a very bad curve ball. “I can tell your code is an improvement over mine, but I have no idea how it works or how to work with it. I can’t tell if I’m just this sick, or just this stupid,” I said.
“You’re just that sick,” Dani said. Repeatedly.
And while she did, I lost ground on the project and lost control of the code base. If Canned Rice was going to come in on time, there wasn’t time for me to catch up.
I lost my role on Tuesday, December 16. I’d run through a full course of antibiotics, and while some of my symptoms had abated, I’d awakened in severe pain from full-body muscle aches. I went back to the doctor, and she told me to stop working for several days. “Lie in bed. Drink fluids. Sleep. You can maybe watch some TV… if you feel up to it.”
And that was that.
Alone vs. not alone
I’m usually pretty healthy, but this wasn’t my first time battling illness during a project. I had an entry lined up for IFComp 2009, but a nasty flu during the final two weeks of development cost me a few days of dev time and a lot of momentum. It hurt to admit that I couldn’t make my deadline, and once my goal was past, it took another two years for Beet the Devil to see daylight.
If I had been doing #antholojam alone, Canned Rice would have reached a similar end. I would have written the organizers and said, “I can’t finish this. I’m too sick. I am so sorry for letting you down.” (My doctor wrote a note and everything.)
But I wasn’t alone. And because I wasn’t alone, we shipped Canned Rice on time. When the #antholojam bundle comes out, our game will be part of it. We made it work despite all the challenges we faced, and we pulled it off without cutting anything from our intended feature set. We’re confident that people will get lots of enjoyment from our funny, quirky storytelling game.
Were there things we could improve on? Yes. (Even apart from “Carolyn, don’t get sick!”) But I’m not the right person to postmort those problems, because it’s hard for me to see past the part where I got sick. Instead, I want to talk about what we did right.
These are some of the good decisions that allowed us to ship.
1. Every necessary role was covered by at least two people on the team.
Two of the people on our team are professional game developers, and three had prior game jam experience. As a result, we had a team composed of T-shaped people (as Valve puts it). Everyone had their own specialty on the team, but in a crisis, we could have survived the loss of any one person.
We didn’t do this on purpose. It just worked out that way. But it worked out well.
2. We all understood our spheres of authority.
Even though we had a versatile team, we didn’t have a situation where people were jockeying for position, because we all had established roles from the beginning. If we needed a few lines of dialogue, if the game logic needed to be tweaked, if we needed a text box animated, if we needed a new piece of music, then we all knew who would be responsible for each task. It allowed us to work rapidly with minimal conflict.
3. We reliably shared our work and sought out feedback.
We sent our work around for review every time we accomplished something new. This meant there was something new to see and talk about almost every day – a new piece of art, a chunk of music, some written examples of how interaction would work.
We incorporated new assets into the build as quickly as we could, so everyone could see how their work was changing the game. Builds went out once a week at the beginning, and once a day by the end. Whenever a build went out, a request for feedback went with it, and we responded promptly to those requests.
4. We celebrated each other’s successes.
Caelyn told me once: “Listen to your inner cheerleader, not your inner drill sergeant.” We were playing DDR at the time, but it’s good advice for game dev too.
Despite our prior experience, everyone on the Canned Rice team was trying something new. Caelyn hadn’t worked on a project this big since leaving Harmonix. I was experienced with game engines and C, but I was still shaky on Unity and object oriented programming. Dani was fantastic at object oriented programming, but had no experience working in a game engine. And Jamie had never worked on a game before.
Because we were all stretching ourselves, we made a point of being enthusiastic when people succeeded at things. We weren’t just accomplishing goals and learning stuff – we were accomplishing goals, learning stuff, and having fun together! Good morale leads to good momentum, and that helped buy us some time at the start, even more than…
5. We kept an eye on scope and the deadline from the very beginning.
During Canned Rice production, we used a hybrid agile/waterfall production model to stay on track. Within the first few days, we planned a timeline with major milestones against our intended feature set, and those milestones included a bit of breathing room in case things went wrong. (As a former producer, I expect things to go wrong. Didn’t expect this exactly, of course….)
After that, people chose their direction and immediate goals, which gave us flexibility – but having the milestones made it immediately obvious when we started slipping. And because we had some breathing room in the schedule, there was enough time to recover when things went wrong.
Personal lessons learned
I wish things hadn’t gone wrong. I wish I hadn’t gotten sick. But because I got sick – because I was the crisis, like it or not – Dani discovered all the magic of Unity animation, and Caelyn sorted out missing pieces of the design puzzle, and everyone worked together to rebalance the roles until Canned Rice could ship without me.
I’ve often been the driving force at the head of a project. I’ve often been the person who evaluates progress and assesses risk and sees what needs to be done next, the person who recruits new resources, directs energy, opens channels of communication. The person who ensures that things get done.
This time, I wasn’t. I couldn’t be. And as unpleasant as the experience was (may this never happen again!), I learned a lot from it.
Now I understand that sometimes what you need in a team… is for them to believe you when you say that you’ve tried your best, and to carry the project when you can’t. To be the people who will not only follow your lead, but have your back.
Thank you, team. I’m so impressed by you all.