Slashdot Mirror


Using Agile Methodologies To Make Games?

simoniker writes "Using Agile methodologies for programming is a concept that's been around for a while now, but some firms are now applying the concept to video game development." There has been a lot of talk lately about what the 'next big thing' in development will be. Could this be it? Or is this just another step along the way? From the article: "Agile puts the emphasis on producing demonstrable iterations of a game almost immediately into production, creating prioritized vertical slices that iterate on the most critical elements and features. The method also puts great emphasis on the organization of teams and the relationships therein, as well as the cycles in which teams must plan and carry out their project objectives."

20 of 236 comments (clear)

  1. The Bane of My Existence by eldavojohn · · Score: 5, Insightful
    When I was in college, I was 'taught' how to develop software.

    And so started a cycle of hatred towards methodologies about how to be productive in application development.

    To me, the wild wild web is still here. I still get my kicks from coding without set in stone documentation and I still hate schedules.

    I've always had the view that every project was a wild animal. Worse yet, it's a wild animal in sheep's clothing. And you approach the sheep with a shepherd's hook. When the veil is lifted and you see man eating marsupial with alligator teeth and a scorpion's tail, you have no choice but to throw the shepherd's hook at them and give it all you've got.

    And this is how I approach managing a development project. You remember prior projects and throw together a bag of tools that have worked before and then you set to taming the beast. If you tell yourself "Waterfall works every time" then you're just going to find yourself with a shepherd's hook facing a lion or a bear.

    Instead, you learn to adapt to every situation and that's the important thing. The rules are few and loose. The customer has the power to destroy everything and you have to deal with it. The best development is done on the fly with just enough documentation to convey the big idea of what's going on and keep everyone on that page. Given real life schedules and timed deadlines, there is such a thing as too much documentation.

    Agile development is better in that it allows you more play and doesn't inhibit spur of the moment innovation. I think some of my most demoralizing moments have been when I realized some great new possibility for a project only to have my manager tell me that so much documentation would have to change that "maybe we'll put that in next year's scope." I find this to be ridiculous.

    What was happening was people were starting to assume that waterfall was the silver bullet for project management. "What kind of project is it?" "I don't care, we're using the waterfall." And the big problem is that the waterfall is only considered 'adaptable' if you're ok with reworking everything from step one. Is this really necessary for every project though?

    Another new thing we have these days is a "framework" that fits a specific type of problem well. You can throw these together on the fly and have very little documentation because the framework provides a well known implementation strategy (see Spring's MVC).

    It is my opinion that using an incremental deliverable approach with frequent customer meetings and executive power at any point in the project is the most successful strategy. The "rules" you have to adhere to are up to you and should be purely a case by case basis.

    There has been a lot of talk lately about what the 'next big thing' in development will be.
    Why do we constantly look for the "next big thing" when the "big thing" is simply experience?
    --
    My work here is dung.
    1. Re:The Bane of My Existence by mkw87 · · Score: 4, Funny
      when the "big thing" is simply experience

      Tell that to my fiance!

      --
      Arguing with an engineer is like wrestling a pig in mud. Soon, you realize the pig is dirty, and he likes it.
    2. Re:The Bane of My Existence by Anonymous+Brave+Guy · · Score: 4, Insightful

      I, too, was taught about software engineering processes during my CompSci days. But in my case, the waterfall model was the textbook example of how not to do things...

      Of course, you can take things too far that other way as well. Being too rough and ready -- something encouraged by an "agile" approach -- may get you best results locally, but what matters is getting optimal results globally across the lifetime of the project and all its features. Just as the old hands look at managers trying in vain to match reality to a waterfall model and smile, so they look at young enthusiasts diving in with little to no big picture planning and wait for things to fall apart.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    3. Re:The Bane of My Existence by cp.tar · · Score: 5, Insightful
      Why do we constantly look for the "next big thing" when the "big thing" is simply experience?

      Because managers don't trust engineers.

      They don't understand what's going on, and yet they have to manage it.
      So they hear about a new methodology, drink it up like a common sucker drinks up Scientology, and turn it into a religion.

      Everything you don't understand you fear, and then you turn it into a religion.
      All too common behaviour, all throughout our history.

      If they tried to understand it all instad, they probably wouldn't be managers; they'd be engineers.

      Most people don't care about how things work; they only want them to work and to work always.

      Magic-minded lot, all of them.

      --
      Ignore this signature. By order.
  2. The next big thing? by Anonymous+Brave+Guy · · Score: 4, Insightful

    There has been a lot of talk lately about what the 'next big thing' in development will be. Could this be it?

    I doubt it. Smart dev teams have been using iterative development cycles and keeping their code tidy since a long time before anyone coined the buzzphrase "agile" (or using SillyCapitalLetters and calling things "extreme", or any of the other hype we've put up with lately).

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  3. Buzzwords aplenty by lawpoop · · Score: 4, Insightful

    "creating prioritized vertical slices that iterate on the most critical elements and features"

    Can someone tell me what this means?

    --
    Computers are useless. They can only give you answers.
    -- Pablo Picasso
    1. Re:Buzzwords aplenty by rs232 · · Score: 5, Funny

      "Can someone tell me what this means?"

      Some systems analyst draws some connectors and boxes and you get to sit up till 4:00 am writing the code.

      --
      davecb5620@gmail.com
    2. Re:Buzzwords aplenty by Salzorin · · Score: 5, Funny

      I'd like to, but it's really not on my deliverables for this quarter. If we could interface sometime during the next iteration, I feel like we can drill down this action item further and really bring this to manifest. I look forward to addressing your critical concerns and reaching some new plateu in our correspondence.

      --
      In Soviet Russia these Soviet Russia jokes aren't considered the least bit amusing...
    3. Re:Buzzwords aplenty by magicjava · · Score: 5, Informative

      "creating prioritized vertical slices that iterate on the most critical elements and features"

      Can someone tell me what this means?


      Sure. It means get something simple working as quickly as possible and improving it over and over.

      prioritized - Pick your most important features and implement them first. For example, if you're writing a word processor the ability to save a file probably has a higher proiority than a spell checker.

      vertical - This means "specific" as opposed to "general" (also called horizontal). So you work on specific features (like the saving of a file mentioned above) rather than more general ones (like optimiztion).

      iterate - You're not going to do things all at once. As an example, perhaps your first iteration of saving a file only saves text and no formating information. You're second may add formatting, your third may add additional formats.

    4. Re:Buzzwords aplenty by glindsey · · Score: 4, Funny

      "Hack something together that you can show the sales folks, and then keep adding to it with horrible kludges until you get something resembling the final product which complies. Ship immediately."

  4. Re:marketspeak by darrenf · · Score: 5, Funny
    creating prioritized vertical slices that iterate on the most critical elements and features


    But can I synergize with my results-driven knowledge base while partnering with self-managed teams, increasing single-source responsibility while undergoing a complete paradigm shift?

    I didn't think so.
  5. Programming Methodologies Are Dangerous by Anonymous Coward · · Score: 5, Insightful

    Working at a major game company, here's what happened when someone here raised XP:

    The guy who suggested it, "It's an itterative development model. We identify core features, develop those features, refine those features with the customer, then add the next layer, repeating as we go. We gain much better code as every component meets the customer's need as it is developed, challenging the customer to think about it in context, and allowing us to add additional itterations if needed."

    Management, "So, we can identify additional features throughout development?"

    "Absolutely. You just have to assign additional resources (time/people) to account for those extra features. But, by identifying them as they come up, you end up with a much better system that really does everything right."

    Over the next few months, features kept getting added, developers dutifully updated schedules. All was happy. Followed by...

    Management, "This was supposed to ship before thanksgiving. It's now slated to ship in the new year. We'll entirely miss the holiday season."

    Rapidly realizing his mistake for suggesting it guy, "Yes. But you kept coming up with new features. And they are great new features. Think how much better the product is for it."

    "If we miss the holiday season market, we lose money. This has to ship 'on time'."

    "But on time is a function of how much you add. We're developing everything to schedule. You've just increased the features so increased the schedule."

    "The schedule can't move."

    "So you'll have to lose some of the remaining itteration milestones. You'll have to drop features."

    "But we like all the features we've come up with."

    "But adding features adds time. You've known that since the beginning."

    "We've known this has to ship for the holiday season and you promised us we could have extra features. You're just going to have to work more overtime. Fortunately you're overtime exempt so that won't cost us anything to get this project back on schedule."

    "It is on schedule. You just changed the schedule by adding features that were identified along the way."

    "You told us your wonderful "XP" model would let us do that. We gave you the chance to try this new method under the understanding we got these benefits."

    "And you do."

    "Good. Then make your schedule."

    "We are mak-"

    "No arguments. This discussion is over. You promised you could deliver the extra features. You're now behind schedule for the holiday season. You're just going to have to crunch. End of discussion."

    Yeah, thanks XP.

    Never, ever, raise exciting new methodologies to management. They will hear all of the advantages and expect every last one of them as though it was the perfect implementation of the method whilst completely failing to hear (and certainly refusing to act on or implement if they do hear) any of the trade-offs that have to be made to enable those gains.

    1. Re:Programming Methodologies Are Dangerous by hhr · · Score: 4, Insightful

      The developers also made a mistake in not realzing where their paychecks come from-- selling finished games.

      If someone is paying you to write software then "Earning out paychecks" or "keeping on budget" must be a critical feature. We may like to think otherwise, but companies don't pay you because they love you. They pay you because you earn more money for them then you cost. If it was the other way around, your paycheck would bounce and/or layoffs would ensue.

  6. 'agile' is neat, but ... by bunions · · Score: 4, Interesting
    as everyone else pointed out, it's mostly just a name for what people have been doing for a while when upper management leaves them alone.

    That said, I've found the hardest part of the process to be finding a client who is willing to put up with the constant back-&-forth and interminable beta testing. Customers generally just want to tell you what they want, go away and then have you magically deduce what they actually need, and can be irritable when you tell them you really can't do that because ... you know ... agile!

    --
    there is no need to sign your posts. this isn't usenet. your username is right there above your post. stop it.
  7. Way too much market speak... by Mysticalfruit · · Score: 4, Insightful

    Tragically, I couldn't RTFA because of th excessive market speak.

    In order to energize the evolution of computer games we need to synergize on the vertical slies... WTF?

    I guess people forgot to mention that writing computer games rates up there with writing operating systems in complexity...

    --
    Yes Francis, the world has gone crazy.
  8. Managers <sigh> by Anonymous+Brave+Guy · · Score: 4, Insightful

    This is just an issue with management, though. A good manager will trust his engineers (or fire them and replace them with trustworthy alternatives). The manager's job is to set the direction of the project, get the engineers what they need to steer in that direction, and then get out of the way as much as possible and as quickly as possible.

    It's staggering how many managers don't realise this, and hamstring their dev teams with their personal, half-baked, technically-incompetent ideas and/or with excessive procedures and beaucratic reporting because the manager "has to know what's going on". Of course he does, up to a point, but what exactly is he going to do if a developer does tell him that a bug fix was delayed by a day because {$TECHNOBABBLE}? If he's not going to act on some information, he doesn't need to know it, and requiring developers to take time out of their day to "keep the manager in the loop" more than necessary just disrupts development.

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  9. Take it from me ... by LaughingCoder · · Score: 4, Insightful

    I have been developing products for a long time (decades if you must know). For what it's worth, it is my experience that the people on the team have by far the biggest impact on product quality, timeliness, and all those other goodness measures. I believe that the methodology is almost immaterial. Good engineers will instinctively use the appropriate process for the problem at hand. Now, this doesn't necessarily scale to very large projects, which is why I am a firm believer in loose coupling. As soon as practical, decompose the big project in to a collection of loosely coupled smaller projects and then put in place the teams (unfettered by process dogma) to develop the pieces. Ahh, you ask, but what process do you use to decompose the system? See my earlier comment - choose a small team of very good engineers and have them do it. Don't tell them how -- they already know that. Trust people, not process. Ironically there is one process that I believe is critical to every organization's success, and it probably the least-studied, least-optimized, least-formalized process every company has ... and that process is the interview process. Clearly if I am going to trust my people to do the right things and make the right choices, I had better hire the right people. Anyhow, that's about $0.93 more than my $0.02 so I'll step down off my soapbox now.

    --
    The more you regulate a company, the worse its products become.
  10. Product development by Aceticon · · Score: 4, Insightful

    The problem using any software development methodology which requires user feedback for new product development is that you don't actually have any users - best you can get is a marketoid and those change their minds every 5 minutes.

    You see, the closest you have for a user of a new game is a gamer and those can't really help you refine your requirements 'cause all they want from a game is to be entertained and they don't really know beforehand how a new, entertaining, game will look like - "having fun" is hardly an easy to define business process.

    Maybe some sort of mixed approach where you have a game designer with an overall view of the game concept and a generic pool of gamers to check out the "fun factor" during game development. Might work well for games with an "exploration" component (for example RPGs) for which you can design the early levels, "test" them with some gamers and then use the result to fine tune those levels and later ones. Still, i doubt it can be usefull in game genres such as RTS and Sims.

    More in general, and judging from the posts i've been seing in ./ for the last couple of years, the main process problem with game development seems to be that a lot of the control over the final product lies with Marketing, and worse, Marketing is in a different company altogether (the producer) than game development - so even with good managers on the software development side (already unlikelly) it's difficult to control the the flow of wacky ideas "that just have to be included in the game" coming from the marketoids - thus requirements creep is rife, which almost guarantees that long hours and death marches are standard.

  11. Re:Managers by SatanicPuppy · · Score: 4, Interesting

    I know it's tired old hat, and probably flameworthy in this environment, but a real manager doesn't need to know what the hell you're talking about to make a good descision. All he has to do is know his people, and be willing to listen to their experience. By the same token, the most knowledgable manager in the world can still screw everything up by trying to make everyone do it the exact way he would do it if he was doing it all himself.

    You need to find someone who can keep the final goal in sight, and who is flexible enough to reorganize whenever the requirements change. Agile, Waterfall, Iterative, whatever, it doesn't matter...These are ideas put together so that mediocre managers will have some kind of method that may bring decent results. They can all work great, and they can all work poorly, and it all depends on who is doing the oversight.

    Management actually is a pretty solid skill if you can do it. Too much of the flaming comes from people who've never had the good fortune to work with a good manager. I myself have never worked with one who was the total package...Either they understood the work and the clients and they couldn't deal with the higher ups, or they dealt well with the higher ups but didn't understand the work or the clients.

    --
    ad logicam Claiming a proposition is false because it was presented as the conclusion of a fallacious argument.
  12. This 'agile' thing has a different goal by Weaselmancer · · Score: 4, Interesting

    From the blurb:

    Agile puts the emphasis on producing demonstrable iterations of a game almost immediately into production

    So what this does basically is get something that just barely works up for review as quickly as possible. Like throwing a lump of clay on a table and saying, "There's a vase in here, somewhere."

    This IMHO will do two things. First, it will give SW managers a warm feeling caused primarily from too much optimism. "All the engineers have to do is shape that clay a bit, and it's a vase! We're ahead of schedule!" Two, since they will think they're ahead of schedule, they'll report to their superiors about how they already "have a working prototype of a vase" and that'll bump up the schedule.

    The engineers who actually have to implement things will know better. And they're the ones who will get stuck with the deadline. The agile pony show where you show your manager something that boots but doesn't have 98% of the functionality in it will bite you in the rear later on.

    This method doesn't seem well suited to making software. However, it does seem well suited to making managers feel good. I'd avoid it.

    --
    Weaselmancer
    rediculous.