Rapid Iterations, Scrum and Individual Methodology

Gamasutra has an interesting article about applying Agile software development methodology in game development. The argument is basically that the Waterfall model should be abandoned in favour of an adaptive Agile method called Scrum. Scrum requires more communication and collaboration, and rapid iterations in which functional versions of the software are released often – in general, it pretty much follows the Agile manifesto and seems suitable for game development.

On page two of the article, you can find a few diagrams over finished functionality versus time - the Waterfall method won’t show results until the very end, while Scrum’s functionality boost is primarily in the beginning of the project since it concentrates on making rapid releases with the most relevant elements first. I agree that the tendency is along these lines, but I think the author’s optimism is colouring things a little. Scrum relies on adaptation, so the functionality can go up and down depending on the decisions; and in fact, since the functional requirements change due to adaptation, the functionality axis can’t very well be displayed completely static, can it? The functionality becomes subjective since the goals change, unlike with the Waterfall method.

Don’t get me wrong: I’m not defending Waterfall thinking. If the requirements are static, it means either that

  1. Someone has the hubris to think that they can define a project’s end result detailed enough from the beginning, or
  2. The project will probably fail. It may be a de facto success, but still probably a de jure failure. (If we assume that the requirement specification is law – you’ll have to give me some poetic license.)

An interesting question was posed in a blog entry which also comments on the article above: are there software development methodologies that are applicable for individuals? At first glance I agree that there aren’t many that apply directly - development methods mostly concentrate on using resources optimally, and that is never really an issue for a one-person project. After all, a single person rarely finds himself waiting for himself to get done with that bloody document, or for himself to finish coding that damn module that’s needed for the next part. But one thing does spring to mind: rapid iterations!

I’m a firm believer in fully (or as good as) functional increments delivered in relatively rapid order. At work we are moving more and more toward rapid iterations in order to constantly have a stable base for testing. When I work on my hobby applications I try to specify many minor increments that span over a long time, since it helps me keeping focused. “1.0 will have this functionality… 1.1 will have encryptions on this part, and an improved user interface…” and so on. Of course with room for adaptability as well. Technically this may not be following either Scrum iterations or the Iterative method, but I find that specifying desired increments ensures that I don’t get side-tracked as much.

I guess I should have posted this bit as a comment to the blog entry above, but I’m not only a cynical bastard - I’m lazy as well.

2 Responses to “Rapid Iterations, Scrum and Individual Methodology”

  1. GBGames Says:

    Actually, a new blog post means that there is one more point of reference for people to find when looking for similar topics. Having written your comments as a separate blog post likely took more work than simply posting a comment that most blog readers don’t read anyway.

    Rapid iterations sounds good to me. I’m currently feeling stuck because getting my game to a playable state is taking forever. I may need to rethink my plan of attack since it would currently take a lot of added functionality to get to that state.

  2. Karja Says:

    That’s a good point.. Still, it does feel proper to give a response in the indended place instead of going off on a rant of my own.

    Ouch.. Then it sounds like it’s way too late in the process to start thinking of rapid iterations, and trying to divide the game into semi-functional minor increments (if that’s possible at all). I guess a development methodology is only really useful if the entire project is designed with it in mind.

Leave a Reply

Copyright © 2008 KarjaSoft