Hello my friend!
In this post I would like to talk about the game development process we've acutally used during the last years for our games.
To start by, I would suggest you to read even the "Agile Game Development with Scrum" book by Clinton Keith:
The process we're acutally using is very similar even if it's applied to a much smaller scale studio (of 5 people instead of 200).
What is Agile?
Agile is an approach for developing products using short and fast iterations.
The ideas is to make small features for the current project in small periods of time. In this way the results of each iteration are used to adjust the project plan: each iteration is like a short project in itself.
What is SCRUM?
SCURM is an iterative and incremental Agile process that produces demonstrable working software every few days: for example a build of the project that can actually be tested.
How Agile can be used for Indie Games?
I think Agile can be really useful for indie game studios if used wisely:
Since the initial concept of a game does never perfectly reflect how the final game will be, I think a Waterfall Development process is useless in most cases.
We usually start with the Concept of the game and then start the Preproduction and Prototyping process for testing the main mechanics of the game.
While we're still in the Production process, the Concept and Design core of the game can still be modified depending on the feedbacks of our testers that are testing the first prototypes.
If something is not working well in a game mechanic, we're still able to modify it without great effort from the Programmers.
This is just an example, but this process can be used to every phase of the development: for example while the Sound Designer is making the sound effects of a character and the Animator is making the animations for it, the Game Designer can test both and give feedback on how well the sound effects are linked to the animations.
Personally I think that Concept and Design can be modified through the entire development process of a game (even in the final Post Production stages) if this does not change too much the Deadline Release.
I think Agile can be even extended while working on multiple projects at the same time.
We usually develop 2 or 3 games at the same time and Agile is really useful since some of the ideas, concepts and mechanics could pop up in the development of a game and can be used even on other projects.
This process can even be useful to avoid Dependencies of members of the team: for example if a programmer is waiting for the animations of the main character in order to finish the code for the run mechanic, he can meanwhile work on other mechanics or on another project.
It's important to have a cohesive team, since the potential savings in cost for team is lost when time and effort is wasted through iteration delays and dependencies between team members.
One of the most interesting phrases from the Agile Game Development book referring to the best team Clinton worked with is:
"Much of the chemistry of that team is a mystery to me. There doesn't seem to be a formula for how such teams can be created, but I've found that it's quite easy to prevent such teams from forming" - Clinton Keith
Agile and Scrum are surely some of the things that really can help these kinds of team to form since it allows all the members of the team to communicate and have a larger view on the project.