Canned Rice Retrospective: Who’s Gonna Have Your Back?

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:

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.

valve_t_shaped_people

Taken from the Valve employee handbook.

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.

Caelyn Sandel - Design, art, SFX; Carolyn VanEseltine - Design, code; Danielle Church - Code, animation; Jamie Sandel - Music

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.

Bookmark the permalink.

5 Comments

  1. I find it very cool that the stuff you talk about like this (e.g., defining roles & responsibilities, taking lessons learned, issue management) mirrors pretty closely what I deal with in my day job with a firm that deals in formal project management consulting. Only you’ve got much cooler resulting products than a lot of what I run into there. :P

  2. My mother was in the pharmaceutical industry her entire life, first as a programmer, then in quality, and finally as a project manager. We had some lengthy discussions about how similar and yet how different the two industries are.

    I remember rather vividly one day when I was upset about missing some bug or other, back on web at Harmonix. I was the only web QA person at the time, so if I didn’t catch it, it didn’t get caught, and this one had been reported by users.

    My mom let me rant for a bit, and then she looked at me and said, “Well, honey, you messed up. But look at it this way: you’re in games. No one’s gonna die.”

    And that put everything in perspective.

    • (This shouldn’t be taken to imply that anyone DID die from mistakes made under her watch. Quite to the contrary! When your company makes prescription drugs for a living, you never, ever have just one person on quality, because you can never, ever afford for the consumer to find your mistake.)

  3. Thank you for the informative recap! I LOL’d (for real at work) at the part about code written with your face not compiling correctly. I certainly hope you feel better!

Leave a Reply

Your email address will not be published. Required fields are marked *