5. Scrum Pitfall: The
15-minute daily stand-up meeting degenerates into a daily
go-around-the-table-and-each-person-give-a-status-report.
There are no action items from the daily meeting and the daily
meeting doesn't actually help increase productivity. At the daily meeting, the
Scrum Master makes some remark that team members or the team's actions are "not
Agile".
Lesson Learned:
There is no value or purpose in practicing Scrum just for Scrum's sake.
Lesson Reinforced:
"Round table status report without action item" meetings are a waste of time. Certainly
the cost of everyone else's time combined does not outweigh the benefit of
saving the meeting inviter's time.
Best Practice: Maximizing
everyone's 40 hour a week bandwidth pipe is more important than a daily 15
minute meeting. If one person on the team has the lion's share of work to do
and others are waiting for the next daily build or the next two week sprint
there is something wrong with the project or the project management. The workload
needs to be evenly distributed.
Best Practice:
Make sure all meetings have an agenda, and the agenda is part of the meeting
invite. An action item includes the task that will be performed, the name of
the person who will do the task and should also have a deadline or at least a
time frame. For example: "Joe will have placeholders for the character
model checked into source control by the end of the day tomorrow, so designers
and engineers can work with it this week."
If there were no action items
for anyone after the meeting, there was no purpose to having developers stop
working and gather into a conference room. Status reports and other
communication can be done over email, instant message or a phone call.
4. Make Scrum
mandatory.
Stakeholders and executives make Scrum mandatory for the
development team and expect quantitative project completion predictions. Managers
don't ever provide feedback to the team members, or reveal what value was actually
gained from all those Scrum sizing exercises where developers choose numbers
from a deck of cards.
Even worse: executives don't gain any value at all from the
quantitative predictions that they didn't already have with the project manager's
gut feeling. Or maybe the executives don't understand that the team members are
spending time doing ridiculous number guessing exercises to size a Scrum story
in order to obtain the quantitative prediction that no one looks at.
Lesson Learned:
Communication needs to go both directions, not just one direction. That means
up the chain of command and also down. Feedback from, and visibility of
stakeholders and executives is equally important as providing those
stakeholders with a summary of the project status.
Best Practice: If
a milestone is completed on time or if a game ships on time, stakeholders,
senior management, and even executives walk around the cubicles and say to
individual team members at the bottom of the org chart some things like "Hey,
I heard your team completed its milestone on time and your project is on
schedule, great job! That's exactly what we like at this company! That's
excellent work!"
The positive reinforcement from the top of the org chart is
worth more than any gold that anyone can earn in any MMO. Note to management and
executives: if you want productivity increased, make sure your positive words
are more valuable and more gratifying to employees than their time spent
shooting giant zombie spiders and leveling up.
Imagine if there is just one milestone that is on time and
that on-time delivery gets personalized recognition and reward by both the VP
of product development and also by that VP of marketing who never seems to come
out of his/her 700 square foot corner office for anything. Compare that to the
same on-time milestone when no one seems to notice or care about the hard work
that went into it. Success breeds more success! Low morale breeds high-cost
employee turnover.
3. Implement only two weeks' worth of work and
write only the code based on what you currently know about the game
design.
If you were not assigned to work on a task, then you can't
work on it. Ignore any concern that the game design may change later on in the
development cycle.
Lesson Reinforced:
Bottom-up code design is not better than top-down code design. Scrum, Agile,
and Extreme Programming cultivate and promote bottom-up code design. When there
is lack of big picture design documentation, the tendency is to implement one
thing at a time, and then modify and tweak according to customer's feedback.
Since
there isn't any foresight about what code will get shipped and what code will
be thrown away due to design changes there isn't a lot of care taken to make
code maintainable. Adding features that were not planned for can be costly. Down
the road band-aids and patches require time spent refactoring.
Best Practice:
Make a game from low fidelity to high fidelity. The low fidelity version has prototypes
of all the features. Code can be organized from top down and with understanding
of all the features that are going into the product that is going to ship. Note
that there is a difference between code and content. Perhaps the game content
is what you want to be able to sprint and iterate on.
|
All that said, I have had very contrary experiences and learnings to a number of these learnings, and others seem very on target.
#10 - I think this could be number one, not number 10. Very important
#9 - I think you can see a pretty direct relationship between #5 and #9. If you let daily stand ups turn into status meetings then you have already lost. They are not status meetings, and you those speaking should not be reporting progress scrumaster or Project Manager. They are commitments to the rest of your team, in front of the team, to achieve the current sprint. No electronic tracking will every replace face to face interaction about what an individual is doing to make the team succeed, in my opinion.
#8 - Interesting approach, very cool if you can pull it off.
#7 - pretty straight forward, as long as the person is not compromising the sprint by pulling tasks from beyond it and neglecting tasks they could do in the sprint
#6 - This one is kind of a mess, you are talking about QA and process management in one item. They are seperate things. Integrating QA from the start is a HUGE win, 100% agree there. But I dont see where the "Decide that your Scrum stories and sprints are 100% completed months before" comes from, thats very un-agile. You should know that you cant possibly plan 100% of your stories months in advance, thats why you break them down as you get closer to their delivery (Epics/Themes/Stories).
#4 what? again a confusing entry. Of course scrum is just a tool in the toolbox, it shouldn't necessarily be mandatory for every process in the company. But then you switch to management feedback...kind of lost me there. Management feedback is important but whats that got to do with scrum being mandatory?
#3 - good point. We frequently employed design stories that were intented to guide future stories (in and outside the current sprint) to help solve this. Also employing XP in conjunction with Scrum helps here.
#2 sounds good
#1 kind of the same as #10...but agreed
Interesting read, thanks!
-jobe
Have you actually have a book describing Scrum, Agile or XP? Just one? Perhaps read a few more before applying it.
I think you need to think about the roles on the team, perhaps consider designer to be a customer. The customers generate user stories and the programmers generate the tasks for the back log. Often games design docs are fully of designers supposed technical information that is useless. This really cuts down the ammount of work the designer has to do.
With 9 non-Scrum games and 1 Scrum game under my belt (and another on the way), I am a firm believer that when Scrum is done right it results in higher morale, better games less risk and less overtime.
Every single problem mentioned (yes, all 10) come from a misinformed and improper implementation of Scrum and not adhering to the principals of Scrum and Agile development.
Scrum doesn't stop bad managers from being bad managers. No project management system in the world can do that.
Paul - it would be very interesting if you took a couple of nights and read "Agile Software Development With Scrum" by Schwaber/Beedle and reflected on your experiences with Scrum to see how they lined up.
http://www.agilegamedevelopment.com/2008/06/daily-scrum-question-2.html
http://www.agilegamedevelopment.com/2008/07/feedback-top-10-pitfalls-using-scrum
.html
Scrum is a tool, nothing more and it always takes great people to make great games. It only takes "weak" management or "feature creep" to destroy milestones.
You have to adopt processes before you can adapt them.
sad ,because the article tells the exact opposite
Again, game development needs to be treated as an entertainment industry devoted to creating projects - not as a conventional operating business, focused on maximizing efficiency. Efficiency isn't the aim - effectiveness is. You can efficiently make a piece of garbage (it happens all the time).
And his comment was completely erroneous.
There's a lesson in there somewhere...
The problem with software process critiques is that a software process is like a user interface. Everyone *thinks* they know the best way to do something. As a TD, I'm more interested in what works.
I usually find case studies on successful projects much more useful than top 10 lists. I like to hear a real story of how a successful project came to pass, rather than "this sucked", or "this was great".
Every organization has it's own context. I can imagine an environment where all 10 of these pitfalls were actually beneficial. If you can't, you haven't been around long enough :)
In other words, they are assigning tasks to individuals and waiting for them to know by themselves what to do next. Because in the first place they (workers) have to wait for management team they'll start to adopt that behavior.
Just an opinion ;)
It’s true that I can’t address Agile and Scrum methods to any real degree, as I’ve only a cursory understanding (I bought the books, etc – never actually on a project).
Nonetheless, I have been part of the game industry for a long time. So, like Mr. Christophe I have seen it done six ways from Sunday. I have spent years working with producers, designers, and engineers (artist too, but mostly the ones with the more nebulous interactions) in attempts to figure out best methods. Hmmm. I think I might be the guy that rolls his eyes every time I hear some “can’t plan a thing” wack-a-mole start talking about lack of communication. To me this is often more indicative of those not well versed in the job. Don’t get me wrong, please. I don’t want to be negative, or slight the strengths of any particular methodology. But that’s just it, some methods work better with certain sorts of development/developers, perhaps even based on genre or pre-existing technologies. I agree with the general consensus here (Grassroots, good stuff!). If you have a good idea and great people, and you can stomach microsoft project, then you have a chance at success (I'd like to think there’s some out there that can do it with postit notes). Mediocre staff, or vision/leadership, and all the scummin’ in the world won’t help. Anyway, your suggestions are forged from real world experiences. So even if these methods are a response to “those not managing scrum correctly”, they are valuable bits of knowledge for that very reason.
10. Nowhere does Scrum say that a GDD isn't used. Features and tasks are not Design specific, they are planned goals. If you need to collaborate there is a perfectly good way to get lots of people on a single document, and lots of crappy but "good enough ways". This is a failure to research collaboration tools or to read up on Scrum methodology.
9. Scrum meetings dont have to take place away from the developer's stations. A phone and a shared desktop view is more than enough for each station. In the end, people being late has to have consequences for there to be incentive to attend. Some take a soft hand to it, I always suggest a hard stance. It's a business requirement and making the product owner wait for a demo meeting versus making your team wait to start a scrum meeting needs to have the same impact. If you can't stomach that in the early stages, we'll replace you. You agree to come in to work every day, you better be on time when it counts and nap after, we have a couch.
7. Scrum tasks should be continually updated by the Scrum Master. It's a role with RESPONSIBILITIES. If the scrum master says he's creating a task, that should be good enough to start. Again, it's a matter of not being a dick about process. If you're gonna be a problem, you're gonna be replaced. If the task never gets made, add it to the story of the next task you work on. Documenting what everyone does is part of scrum.
5. This is exactly what most scrum meetings are. This is a Good Thing(tm), since it brings up issues commented on in later points as a complaint "where do we talk about this". Daily Scrum meetings is where. Once you see adherence to documenting whatever is said in the scrum meetings, just have the members mention the feature, task, and that's it. Joe: FEAT-31, task 2. Started FEAT-31 task 4 and 5. The Scrum Master should be reading through the task notations. All of them. Welcome to 50% focus factor OR LESS.
3. Design is not the scrum's concern. They are handed that BEFORE starting (Sprint 0). The fact that the features are obviously incomplete or not planning for the future is something you bring up during sprint planning. "We're not going to do FEAT-52 because xxxx was not thought of." as you pull things from the backlog and leave others behind and either the product owner revises, adds, rethinks FEAT-52 for next sprint, or replaces a member with some schmuck who will do it and that's a choice members have to make. Product owners make the decisions, developers implement them. If you wanna design games, change your job title.
As teams grow, you simply create scrum hierarchy with scrums of scrums. This is how Microsoft created the MSN AdCenter and a number of other products.
The primary problem with SCRUM is where Bugs fall into the work flow and how to categorize, prioritize, and handle them. Most people assume QA is handled outside of sprints which is terrible. Concurrent QA is necessary from the start.
Maybe I'm misunderstanding you here, but I disagree that design is not the scrum's concern.
One of the strengths of scrum is that each of the team members has an input into the design and therefore has increased buy-in into what they are creating. Sure there should be a high level design for each area of the game so that you have an overview, but the design for each area should be fully fleshed out by the team assigned to work on it in conjunction with the lead designer at the start of a sprint. This leads to greater motivation from team members and a fuller understanding of the overall area they are working in.
Agreed with your last point about QA though and about scrum masters being at about 50% focus.