As some of you may know, I’m currently in the process of working on one of my first proper games as a group. This has so far been quite the learning experience. As this is part of this project we tasked with implementing the scrum framework into our daily routine.
So what is scrum? Well, I can start by saying that it’s not some phrase that a certain incessantly positive, fictive, neighbor has come up with. Even though that might be what the title image of this post might suggest (sorry about that :P).
One of the co-creators of scrum, Ken Schwaber, explains it as following on his web page (Scrum.org).
Scrum is a framework within which people can address complex adaptive problems, while productively and creatively delivering products of the highest possible value.
And yeah, that probably sounds like just a bit of mumbo jumbo. But what it boils down to is this:
- Split the project into small individual tasks.
- Plan out the sprint (a period of time usually 1-2 weeks) by assigning tasks to team members.
- Have quick daily meetings to check up on everyone’s progress. If people are struggling with some tasks this is a good place to bring it up. That way resources can be diverted to help finish the tasks.
- At the end of the sprint a sprint review is held to determine where the project is in relation to the final product. Any unfinished tasks are put back into the product backlog.
- Finally, if there will be a sprint after this one a sprint retrospective is held to identify any good or bad workflow habits. This information is then used to optimize the next sprint.
A really nice overview of the scrum framework can be seen in the image below:
On paper that appears to be quite a good solution for organizing your development when working on things like games or other software. Alas, that’s not really what I’ve found when using it.
As our project only goes on for 10 weeks, in total, we are using 1 week long sprints. This means that we have to have at least three meetings every week (not counting the daily stand-ups). And while this sounds fine and quite doable we also have to fit them in between the other courses that the team members have running in parallel to this one. As we haven’t had time to meet-up too often during the weeks as well these three meetings often have gone past their intended half-hour-ish time frame while we spend time discussing different parts of development. Because of this scrum has often times felt like a burden rather than an aid. Forcing us often times to sacrifice development time for scrum “upkeep”.
With all this summed up my initial impression of scrum has been a bit so-so. But is it all bad? No, not really. I can definitely see what the good parts of using scrum is, I think it’s just been our execution of it that hasn’t been top notch. I mean, there’s a reason so many people working with software development choose to use it, right? I can feel us improving gradually every week.
One thing, for instance, that I have noted is the importance of the daily stand-ups. At first we just showed up and talked quickly about what we had work on since the last meeting. But once we started getting more comfortable in our team and started relying on each other for help we started using the to help redistribute the workload dynamically throughout the sprint. Moving tasks to other team members if someone was struggling with a particular task, all to insure that the work got done on time. Seeing tasks a things the team have to accomplish together rather than individual tasks that one can just complete and then be “done for the week” I really feel is a core part of making scrum work.
I assume this is probably a trivial concept for anyone who has worked with scrum for an extended period. But hey, I can’t become a master of scrum in just one day, eh? Either way all I can say is that I’m excited to see what this puppy can do for productivity once we get to use it for a project we’re working full time on.