Search

Wednesday, June 21, 2017

Sprints or a Kanban?

There seems to be some confusion that using Sprints or a Kanban is a competition of sorts with "one being better than the other".  Might as well argue whether a hammer is better than a saw.

Sprints are more suitable to complex problems that a cross-discipline team will swarm on to solve.  Complex work has "unknown unknowns" that require experimentation and defy planning and estimation.  The time-box is a limit of time that is established to touch base with the business side and to replan our next move on a complex mechanic.

A Kanban, a way to visualize a lean flow, is used for complicated work.  Complicated work has "known unknowns", like creating levels and characters for a game with established mechanics.  The variations are manageable. It is more predictable and uses hand-offs of work through a flow.

Using Sprints to manage complicated work results in batched work and an artificial division through sprint planning and review. It hides discipline inefficiencies and leads to split stores which create no value individually. Imagine the cost of buying a house if every one was a custom concept home built by a guild of craftspeople.

Using a Kanban to manage complex work results in turbulent flow that either creates inefficiencies and a lack of transparency or artificial deadlines to call things "done" when they really aren't.  Kanban doesn't handle the back-and-forth of exploration very well. This creates debt and can limit the creative potential of a game. It's why we don't use an assembly line to design a new car.

I often see Kanban used for complex work because there is still an "upfront planning" mindset that thinks a new uncertain game mechanic can be broken down into bite-sized discipline centric steps and pushed though the teams. Sprints are abandoned because the developers cannot be trusted to take larger goals and break down the work as they see fit.

Choose the best tool for the work.  Wielding a hammer with great skill to cut long pieces of wood into smaller ones isn't as useful as using a saw.

Saturday, June 10, 2017

Department Silos Can Kill

In 2002, GM engineers discovered that the ignition switches on some low-cost cars had understrength  springs.  As a result, a heavy keychain or knee-bump could switch the ignition for those cars off.

It was considered a rare occurrence and not exceptionally dangerous.

Before the defected part was recalled in 2014, it was blamed for over 120 deaths.  Many of those who had died were young; parents had bought the low-cost cars for their children, considering them safe.

The systemic reason for GM ignoring the severity of the problem was that the engineers who designed the ignition switch were not familiar with how the ignition switch impacted other components of the vehicle. They weren't aware that switching off the ignition disabled the power steering and airbag deployment circuits.  Disabling power steering and airbag deployment was a deadly combination.

Unintended component interaction is why I discourage the creation of most component teams.  Graphics teams, physics teams, audio teams, etc. all sound efficient and they are efficient in creating graphics, physics and audio systems, but the cost of late integration and the emergent systemic problems is too great.

Players want games, not components, but at least our mistakes don't kill them.

Wednesday, June 07, 2017

It's not about open space vs. offices

There's an endless debate about what office configuration is best.  After working with hundreds of teams over the past decade as a coach, I have the answer:

There isn't a best configuration.

The debate should be about how we can improve effectiveness as a team.  We need to communicate quickly, across disciplines and also get into the flow of our work.

Think of a team having a nervous system.  To much noise can be like a convulsion.  To little communication can be like paralysis.

Experiment.  Explore.  Regularly decide as a team how you can improve your effectiveness by tweaking your space.

Saturday, June 03, 2017

Fighter Aircraft and AAA Games

When I worked on fighter aircraft, I witnessed the harm that a lack of communication caused.  The shining example was the F-22, which had contractors in over 30 states working (to spread congressional support) with classified protection in place.  If I wanted to speak with an engineer who wrote the firmware for a board I was working on, there was a week's delay in arranging the call on a scrambled phone line with a security officer present to ensure we spoke about nothing too specific.

That was a joy.  It's no wonder the F-22, which was so late and expensive to build and maintain, was cancelled after a small fraction planned were built.

Fast forward 30 years and I'm working with a publisher on a large franchise game that has six studios and hundreds of developers working on the next iteration.  There are language and time-zone barriers, and most of the studios are organized by discipline silos that have limited communication locally.  Because it's a billion dollar franchise there are armies of project managers pumping out reams of documents that lay out a clockwork plan, defined to the hour level, about how the project will be executed.

It's the same as previous iterations, where the plan eventually fails to execute and a lengthy period of crunch and feature compromise is hit at the end.  Just like the F-22.

Large games and government projects can work.  They require breaking down silos and educating everyone about the entire system, not just their part.  We want to, as General Stanley McChrystal puts it, "fuze generalized awareness with specialized expertise".  We want hundred of people making the right decisions for the whole, rather than relying on just a few.

Agile can help, but too many times we see cross-functional swarming teams formed under rigid hierarchies of management that results in these teams working on their "parts" with a limited "need to know" about what the others are doing.

It takes a much deeper organizational change than with just development.  It's not a development problem alone.

Friday, June 02, 2017

London Agile Game Development Course with Scrum Master Certification

Boost your game team's effectiveness by joining us this July for the first London course by game development veteran and author of Agile Game Development with Scrum.

This two-day course gives participants hands-on experience applying Scrum to video game development.  It puts theory into action through extensive use of exercise and a project simulation. All exercises and discussions are specifically tailored for those working in video game development and for all levels of agile experience.

As an agile game development coach who has been making video games for 25 years, Clint can navigate you past the hype and myth of Scrum and agile and help your teams eliminate waste, crunch and practices that hold them back.

This course will make extensive use of Clint's latest book Gear Up! Advanced Game Development Practices, which contains over 90 proven practices to gear up your team for higher productivity and purpose.

Following completion of the course, attendees will receive a two year membership in the Scrum Alliance and be eligible to take a multiple choice test of their Scrum knowledge to receive their Scrum Master Certification. 

To learn more about this course, please visit the registration site.


Recommendations from past attendees
“Clinton is one of those trainers that has a special knack for sharing his expertise in a way that is clearly understood. The training he gave was clear, concise and actually a fun way of learning. He clearly demonstrated his knowledge of the industry and the frameworks we are working with. I would highly recommend his training to anyone and look forward to acquiring a deeper skill set from his courses in the future.” - Dave Collins

“Clinton is a very dynamic and entertaining instructor that can captivate an audience’s attention.  Having an interesting instructor that can also be funny and do a lot of group activities is essential when having to be in a class for 7 or 8 hours.” - Shirley Stevenson

"Clinton is a very switched on, genuine guy, and I strongly recommend his ScrumMaster Course to anyone who is looking to improve the productivity of their teams with Agile Scrum.” - Kim Sellentin, Blizzard Entertainment

Clinton has a lot of experience with general game development and is a pioneer with implementing Scrum in game development. His stories were not only interesting but served as a great way to show how Scrum is being used in the real world. He has worked with some big studios including CCP (creators of Eve Online) and Bioware. This gives him both credibility and a great insight into how large companies have made successful games using Scrum.  - Alastair Doulin


Monday, May 29, 2017

Scrumming without Agility

I recently encountered a team which was practicing what they called Scrum.  They had two week sprints and met every day. However, their manager pointed out that Scrum was useless to them because they were implementing a graphic architecture, which wouldn't make it into the game for six months.   They "needed to be left alone" for the duration.

It was true that Scrum wasn't helping.  The group of people working on the architecture were all working on independent tasks. They had nothing to talk about throughout the day and didn't commit to a shared sprint goal, so there was little feeling of "team" among them.

As I asked around, I found that those dependent on the graphics architecture felt that this group usually delivered their work late and what was actually delivered wasn't exactly what they'd asked for.  As a result they were impacted through crunch and the game's quality was compromised.

The architectural manager had never heard this.  That was an interesting "tell".

Asking around further, I found that the graphics architectural work was driven by detailed requirements from the artists and designers written at the start of the project.

Now the picture was becoming clear.

When planning starts with high detail, we often create a push system that drives many behaviors throughout a development process.  It can create a vicious cycle:
The vicious planning cycle

Detailed designs lead to detailed specs, resource allocations and task assignments all driven by a comprehensive schedule.  This is usually described as a push system, where work is defined up front and pushed through development.  When something is inevitably late, there's a pileup somewhere which leads to problems.  After the game is shipped, management decides that more detailed planning is needed next time and the cycle gets more vicious.

Agile is a pull system where the work is pulled towards a vision of what we want in the game and what the game is telling us.  We measure what's pulled into the game and adjust our plans based on the pace of that and what the needs of the players and developers are.

Scrum wasn't doing them much good. We needed to look at how it was being used.

The organization of the graphics group looked like this:

  • The manager pushes the vision through a schedule of assigned tasks
  • The manager owns the schedule
  • The team is a group of developers which execute assigned tasks
  • The manager coordinates cross-functional dependencies
  • The manager solves cross-fucntional problems
  • Integration is painful, which leads to its deferral  (which makes it even more painful).
Pulling work into a swarming team


Contrast this with the way a cross-functional Scrum team should work:
  • The team executes based on a shared vision that pulls iteration goals in.
  • Work is planned by the team based on those iteration goals.
  • The team owns the short-term schedule (iteration)
  • The team can address most dependencies and problems themselves
  • The team consists of people who can address each other's problems through swarming
  • The game or architecture has frequent integrations to test the emergent value and address risk.

Moving from Push to Pull
Push systems have been largely discredited even in manufacturing industries, which have far more predictability than game development, but push is still prevalent in many software development companies as well as game development.  There are many cultural reasons it sticks around, such as:
  • Silo'd discipline structures
  • Lack of trust
  • Management by fear
  • The myth of up-front planning
These don't go away overnight with the wave of a wand.  They melt away slowly through the slow application of agility:
  • Breaking large cycles of integration, test and validation (e.g. 6 months in this case) into shorter ones.
  • Iterating against player goals, not architectural goals, as much as possible.
  • Breaking large detailed designs into prioritized outcome-based goals with shorter-term details.
  • Replace documented hand-offs with face-to-face conversations.
There is a slow transformation away from managing for components to managing for player outcomes that doesn't occur overnight, but this transformation can begin immediately and the benefits can be seen every iteration.