For a number of years now, game developers around the world have been talking about replacing traditional approaches to development with new, agile workflows and development processes. In this episode, we are visualizing the “old” and the “new” and will illustrate why agility is essential when developing games as a service.
What waterfall approaches in game development can look like.
The Waterfall
This approach obviously borrows its name from the natural phenomenon: just like water flowing downhill, workflows that follow this traditional approach are characterized by several phases that follow a linear, one-directional sequence.
Fun fact: American Computer Scientists Winston W. Royce was one of the first to employ this model in a software development context, in his essay “Managing the Development of Large Software Systems”.
Developing games following a waterfall approach means that the entire product is handed down the workflow chain, department by department, after each has finished their work on it. Product Managers will plan and conceptualize, Game Designers will then develop concrete features and gameplay mechanics, Artists will then create all assets needed for the game, after which the Developers will write the code and implement the assets. As the last step, QA Testers will test the final product to rule out any bugs before release. This workflow often results in extremely large development cycles that can take years to complete.
While rather suited for AAA studios with large headcounts and even larger budgets, the waterfall approach is often criticized for its lack of flexibility and the ability to get feedback on the product in its early stages.
What Agile development looks like at Kolibri Games.
Agile Development
Agile development tackles all the abovementioned criticisms against the waterfall approach. Products are broken down into smaller features that are developed by independent teams and tested by users early on. This approach advocates short development cycles (sprints that can last as short as a week) and early release on the market, in order to gain user feedback as quickly as possible.
Fun fact: The term “Agile” was coined in the “Manifesto for Agile Software Development”, which combines elements from other approaches to software development, such as Kanban and Scrum.
In game development, an Agile approach means that games are often released as prototypes after only a few months of development, and then continuously improved based on player feedback: Community Teams will collect and analyze feedback from the player community. Based on that feedback, Product Managers will decide what feature to implement next. Game Designers, Artists, Developers and QA Testers will then almost parallelly develop, execute and implement that feature to guarantee a quick release. This approach requires careful planning, allowing for example artists to finish all necessary assets ahead of the actual sprint. In addition, features are often broken down into even smaller elements that are immediately tested when completed, avoiding extended testing sessions at the end of a sprint and unpleasant surprises when a feature has been finished.
If you’re curious about what Agile game development means for individual teams at Kolibri Games, have a look at these blog posts about our Artists, Developers or Community Managers.
Delivery Teams at Kolibri Games.
Extra Agile Development: Delivery Teams
At the beginning of the year, we re-structured our Idle Miner Tycoon team by implementing Delivery Teams. The team had grown to over 35 people and we were looking for ways to keep development lean and agile, despite the large team size — and Delivery Teams helped us to achieve that.
Essentially, a Delivery Team is a team responsible for delivering one unit of work throughout the duration of a sprint. Each team has representatives from every department: a Product Manager, Artists, Devs and QA Testers. Together, they get full ownership over their assigned tasks for the sprint, reducing the number of stages in approval processes and thereby allowing for faster delivery.
In addition, Delivery Teams allow us to efficiently tackle multiple issues in a one-week sprint. For example, Team Core will integrate a new ad mediator on the back end, Team Disruptive Force will implement new skills in the Research Tree and Team Rocket will roll out the new Super Manager, Sir Henry.
Developing games as a service requires meticulous collection and analysis of player feedback and fast and continuous delivery. Every week, Agile development and Delivery Teams allow us to accomplish this, and to bring joy to our over 12 million monthly active players.
Interested in working for our Product team?
Freelancer - 2D Concept Artist (f/m/d)
Freelance | Berlin, Germany
Junior QA Tester (f/m/d)
Full-Time | Berlin, Germany
Lead 2D Artist (f/m/d)
Full-Time | Berlin, Germany
Lead Unity Developer (f/m/d)
Full-Time | Berlin, Germany
QA Tester (f/m/d)
Full-Time | Berlin, Germany
Senior Unity Developer - Core Tech (f/m/d)
Full-Time | Berlin, Germany
Senior Unity Developer - Game Team (f/m/d)
Full-Time | Berlin, Germany