Auxilium is a 4v4 capture the flag game made using the Unreal Engine. It was developed by student developers over the course of a semester for the curriculum of SMU Guildhall. The team consisted of around 50 team members split across art, level design, programming, and production. The team was organized into four sub teams in charge of delivering a single level of the game, and a small team of project leads. On this project I held the role of co-producer. The following information was collected from a 360 postmortem at the Guildhall.
What went well
- Leads stepped up
- Made a fun game
- Overcame challenge of 50 person team
- Morale stayed high
- Pivoted well mechanically
- Got better at resource allocation
For context, Auxilium was a student project. Up to this point, each of us had only developed a game on a team of four to five developers. Moving to a team size of around 50 was extremely challenging for obvious reasons. We knew that many things could and would go wrong, so myself and the other producers worked hard to maintain high morale. The team worked late shifts twice a week, so I held a barbeque every week before our late shift. The team spent time together and focused on something other than the game. We also added fun elements to the work day. For instance, one of the other producers would blow a conch horn (with varying success) to signify the beginning and end of a core hour session. We also held show and tells at the end of each day for developers to show off their work to the rest of their team. Morale stayed higher than expected considering the problems that arose from a larger team. Through the difficulties, we shipped a game we were proud of, and we believe the bonding elements we injected into the process helped us reach our goals in the face of adversity.
What went wrong
- We didn't grok POCT
- Didn’t have a clear end goal
- Ill-defined roles
- Stakeholders and project lead communication
- Strong identity, weak culture
- Lack of trust
- 4 sub-teams
- Poor sprint planning
- Non-existent product backlog
- Lack of agile fundamentals
- Learned bad habits in boot camps
Our biggest pitfall was our lack of agile fundamentals. This was apparent in our poor scrum hygiene, lack of a product backlog, and incomplete sprint planning. In the beginning of the project we became so distracted with the most immediate issues on our team that we forgot our agile training. The problem was across the whole team, as nobody realized until far too late in the project that we were not performing some of the agile fundamentals. The lack of a product backlog was due to an undefined direction to the game, and made our sprint planning much more difficult as we had to start our planning from scratch every sprint. When our sprint plans became rushed and incomplete, that had an effect on the scrum meetings as some people were unsure what they were doing day-to-day. All of these problems served to slow down our development cycle and prevented us from making something stellar, but provided us with excellent learning opportunities.
What we learned
- Realize POCT is about risk mitigation, not R&D
- Develop a clearer vision in preproduction
- Use RACI to define roles early, revisit constantly
- Validate understanding/comprehension by leads/producers from stakeholders
- Work on holding each other accountable to team standards
- Organize the team by discipline and function, hold people accountable
- T.b., accountability, culture + time (what does this mean?)
“Trust but verify” is a phrase we learned to echo at the end of Auxilium. Simply, it means that it is okay to trust that someone else is doing something, but it is your responsibility to follow up with them and make sure everyone is on the same page. If we had followed this thought process from the beginning, we would have caught several of our classic software development mistakes before they derailed our project. Two instances where this would have been helpful would be with understanding the roles of the individual on each of our sub-teams. Throughout the project there were people that thought someone else was working on a task when they were not. Following up with the person would have alleviated that problem on the spot. Additionally, we had a miscommunication with the stakeholders about the definition of our proof of concept: technology milestone. We thought we were expected to research solutions to risks, but were informed in a regrettable milestone presentation that we were supposed to be mitigating those risks and delivering solutions. Our milestone could have been saved if we had verified our assumptions with the stakeholders at the beginning of the sprint. This goes to show the power that "trust but verify" holds in a game development context, and it would be one of the most important lessons we would learn from Auxilium.