Alexander M. West
Downfalls of Waterfall and Importance of Scrum
Waterfall and Scrum are the two distinct and popular ways to complete a development cycle. These methods are used on software, games, and various other fields.
Waterfall is a development method where you complete individual steps that build off the last. For example, you would first start off with an idea of what you want to do. If you want to build a game, you would then lay out the mechanics and systems that you need to create for said game to be able to work.
After the designing process, you would then move on to the development phase where you complete programming and art; you create content. The final step in this example of the waterfall method would be testing and fixing to make sure that things work individually as well as with each other.
With the waterfall method, you go from the highest level conceptually to the lowest level conceptually.
Scrum, also known as Agile, is a development method where you start off with an idea or a concept. When applied to games, you figure out a core that you want the player to experience. An example would be that you want the player to be able to fight enemies;it can be something simple.
Once you find out what this core gameplay is you then move to development. Starting from square one the idea is that in a week or two time you have a game that you can test and get feedback on. During development,you have what are called sprints where you set out to iterate on the previous stuff. This process of iteration using sprints rinses and repeats through milestones, which can be simply: get an alpha build, beta, code freeze, release. These milestones are used as markers for where the game should be at specific points.
Waterfall and scrum are both popular development cycles. However, scrum is much better for game development. Scrum allows for a product to be made, for the core of the game to be tested, and for it to be proved fun all in a short amount of time. This is so that you don’t waste resources or time on something that isn’t fun or something doesn’t fundamentally break when you try to bring it all together in waterfall.
This semester I’ve learned the importance of sticking to scrum when it comes to game development. On our production 2 team we set out with the goal of making a product and shipping it to the iOS and Google Play stores. We started out with creating and envisioning all of our mechanics and systems that would play together. We also had visions of art and story animation that would come together and be a nice polished product that we were proud of and that we could all put on our portfolios. The problem is we didn’t quite envision how we would get there.
We started off production in a phase of what we wanted to reach and what we wanted to get done, which is fine to an extent. However, we were trying to plan out the rest of the semester before we even had a game to prove that it would work. We continued to work in this way of create asset, okay next asset, until we ended up with only a couple weeks left and we still didn’t have a game. This was bad because we hadn’t tested our game, we didn’t even have a game to test, and we hadn’t found out if what we were doing was even going to be an enjoyable experience. We tried to put a game together and then found out that some things definitely were not going to work and some things were not going to work well together. After this happened we buckled down and came up with a game plan of what we had to do to get a working game and to begin the iteration process.
This experience has really shown to me the importance of creating something that is playable as soon as possible. It shows that the scrum cycle and iteration are actually really good and practical; following the cycle creates more benefits and keeps clear of the problems that waterfall cycles face. There’s a reason that scrum is used more often for games and is so heavily pushed to us as students and this experience really showed it. There were a lot of other things I learned in this project but I’m going to save that for a later post.