Slashdot Mirror


Game Development In a Post-Agile World

An anonymous reader writes "Many games developers have been pursuing agile development, and we are now beginning to witness the debris and chaos it has caused. While there have been some successes, there have also been many casualties. As the industry at large is moving away from the phantasmagoria of Agile, Gwaredd Mountain, Technical Director at Climax Studios, looks at Post-Agile and what this might mean for the games industry."

149 comments

  1. Blame it on the waterfall by Anonymous Coward · · Score: 0

    The key to successful development is the "Sally Jesse" method: Lose the zeroes, hire some heroes.

    1. Re:Blame it on the waterfall by mcvos · · Score: 1

      Lose the zeroes, hire some heroes.

      I think the kind of people you hire (or want to hire) has a big impact on what kind of development methodology works for you. And vice versa. TFA mentions as one of the advantages of more process-oriented (less agile) methodologies that you can hire cheaper programmers. Compare McDonalds to a quality restaurant: McDonalds cooks by process rather than people, and it works very well for them. But no real chef will want to work in their kitchen.

      If you want to hire heroes, you need to treat them as such, and that means a more agile methodology. If you want a tightly controlled process that doesn't depend on individual heroics, you'd better hire some zeroes.

      (I didn't finish the entire FA. There's some interesting stuff in the middle. It would surprise me if it comes to this very same conclusion in the end.)

    2. Re:Blame it on the waterfall by Daengbo · · Score: 1

      It did, generally. It actually said that you need to identify what parts of the development process need high-ability programmers and where you can hire juniors of less-skilled.

  2. Conclusions by triorph · · Score: 2, Interesting

    Is the current conclusion these days that agile doesn't work? Its been what I've always thought but I am wondering whether this article is stating it for a fact when most of the software engineering discipline still believes in it.

    1. Re:Conclusions by FooAtWFU · · Score: 4, Interesting

      My company started as a dinky little post-dotcom-startup, doing certain agile practices (extreme programming with a little bit of scrum), and it's since been bought out and now sells quality software to big enterprise customers tens of thousands to millions of dollars. As with any development methodology, it's got its ups and its downs, and depending on how you're trying to actually operate as a business, you'll need to make adaptations; moreover, it helps a lot if you actually employ intelligent people who know what they're doing.

      Yes, maybe the Agile hype is a bit much, but so is the anti-Agile-hype hype. It's actually a good idea to start with simple things that work and are easy to code (so you can start making money today) instead of waiting forever building the Perfect System. The key is to manage the transition to more complicated things in an effective manner (so you can keep making money tomorrow). You start by thinking in the back of your mind about how you can make things easier to transition to the Perfect System in the future. That's probably the main tricky part.

      --
      The World Wide Web is dying. Soon, we shall have only the Internet.
    2. Re:Conclusions by maxwell+demon · · Score: 4, Insightful

      moreover, it helps a lot if you actually employ intelligent people who know what they're doing.

      That should be pretty much method-independent.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    3. Re:Conclusions by Anonymous Coward · · Score: 0

      I've seen agile cause colossal messes; I've seen agile make miracles happen. The only conclusion I have is that "a fool with a tool is still a fool".

      Think of agile as advanced martial arts; if you've mastered the basics, it'll take you to the next level. If you haven't, you just wind up hurting yourself.

    4. Re:Conclusions by maxwell+demon · · Score: 1

      Another conclusion might be: Sometimes it's the right tool, sometimes it's the wrong tool. Failing to get a nail in using a screwdriver doesn't mean you're a fool (OK, you are a fool for choosing the screwdriver, but let's say you are ordered to use it), it means that a screwdriver just isn't good for putting nails in. Yet it can do miracles for screws.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    5. Re:Conclusions by 91degrees · · Score: 1

      Well, most of the games industry is in love with Scrum. I have met Gwaredd though. He's one of the few people I've met who actually knows about design methdologies.

    6. Re:Conclusions by alberion · · Score: 1

      Not necessarily,

      I have been working with Agile software development for 3 years now. Delivering working software every 2 or 3 weeks and never had a single day of delay or extra cost. Got extremely satisfied clients.

      Now, it is not a religion, it is not the only and best way to view software development. It is just one tool every project manager must have in his toolbox.

      Always think, does this software that I am building looks more like a building a bridge or like writing a book?

      If you are building a bridge, please use a process oriented methodology that will get you the correct specs. If you already know exactly what you want, why go for a methodology that is made to coupe with change?

      If you are venturing into the unknown, and nobody has a clear idea of the final software, but has a vague initial definition. Go Agile

    7. Re:Conclusions by Kjella · · Score: 1

      That should be pretty much method-independent

      More intelligent and skilled people would always help, but I'm quite sure I'd run a project differently if I had an elite team vs a few skilled and many mediocre developers. The greater imbalance in the team, the less you can rely on "the team" working it out and the more you have to introduce structure like XP or test-driven development or waterfallish specs and designs made by the skilled people.

      --
      Live today, because you never know what tomorrow brings
    8. Re:Conclusions by DamonHD · · Score: 3, Insightful

      Well, no: a completely toxic process-driven scheme will drive away creative and intelligent engineers. So will a completely batty and air-headed and uncontrolled 'agile' scheme. Balance and common sense is vital.

      Rgds

      Damon

      --
      http://m.earth.org.uk/
    9. Re:Conclusions by ultranova · · Score: 1

      it helps a lot if you actually employ intelligent people who know what they're doing.

      But if you hire such people, you have to pay them. If you fire and replace them with the cheapest ones you can find, you can get a big fat bonus, cash in your options, and then blame any lack of quality on incompetent employees.

      I should had been a CEO :).

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    10. Re:Conclusions by delinear · · Score: 0

      That's pretty much exactly what I thought. In my particular sphere (web development) agile seems the most suitable methodology as there is a lot of ongoing development work which can be packaged into small deliverables and often a great deal of flexibility is required in managing multiple releases over various sites.

      Agile is great for this, it's incredibly flexibile and means we don't have to make the critical decisions months in advance (something we just couldn't do in this environment even if we wanted to), and it also allows us to easily drop in contractors to help when extra resource is needed (scrum combined with small, frequent deployments gives them a much better chance to hit the ground running as they'll rarely have to pick up a task halfway through or without support) but my first thought was how exactly would this work on a project with a defined end-point where most of the critical decisions have to be made up front anyway? Somehow I just can't see agile working in game design, many of the benefits would just be wasted and it just doesn't seem suited to a longer project life cycle - sure it would be great for something like managing WoW, and there may be other exceptions but otherwise it just seems like entirely the wrong tool for the job.

    11. Re:Conclusions by Darinbob · · Score: 1

      If you've got balance and common sense, and intelligent engineers, then the methodology doesn't matter and may even be optional.

    12. Re:Conclusions by maxwell+demon · · Score: 1

      Well, no: a completely toxic process-driven scheme will drive away creative and intelligent engineers. So will a completely batty and air-headed and uncontrolled 'agile' scheme. Balance and common sense is vital.

      Even then they help you: They help you recognize that you have done something wrong.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    13. Re:Conclusions by Angostura · · Score: 1

      I am wondering whether this article is stating it for a fact

      A question that will be answered if you ... read the article. Strangely enough the article sets out fairly clearly what the article sets out.

      Madness, I know.

    14. Re:Conclusions by DamonHD · · Score: 1

      Agreed, or at least it may be informal.

      The most successful teams I've worked in have all been populated with individuals independently mentally committed to DoingTheRightThing(TM), and formal rules beyond versioned delivery of the end products were rarely needed.

      Rgds

      Damon

      --
      http://m.earth.org.uk/
    15. Re:Conclusions by DamonHD · · Score: 1

      Your meta-swerve is cunning but not cunning enough to fool me oh molecule gating menace! B^>

      Rgds

      Damon

      --
      http://m.earth.org.uk/
    16. Re:Conclusions by mcvos · · Score: 2, Insightful

      TFA starts out sounding like idiot drivel with strong anti-agile prejudices caused by bad experiences with bas, expensive consultants. Later on it gets very informative, however. It's not the Agile doesn't work. It's that, depending on your situation, it might not work for you.

      Agile gives programmers freedom. If you've got good programmers, that's a good idea. If your programmers are crap, you're better off restricting their creativity. At least, that's the gist I'm getting from the first half of the article.

    17. Re:Conclusions by mcvos · · Score: 1

      moreover, it helps a lot if you actually employ intelligent people who know what they're doing.

      That should be pretty much method-independent.

      It's not. Companies who have everything determined in rigid processes can get more useful out out of idiots than companies that still need to invent lots of things. Companies that have lots of stuff to figure out have a bigger need of smart people instead, and those are also more attractive to smart people, because they get the freedom to use their smarts.

      Some companies prefer cheap programmers over expensive ones.

    18. Re:Conclusions by mcvos · · Score: 1

      Failing to get a nail in using a screwdriver doesn't mean you're a fool (OK, you are a fool for choosing the screwdriver, but let's say you are ordered to use it),

      It means somebody somewhere is a fool.

      When he knows what he's doing, it's often better to let the guy doing the job choose the appropriate tool.

    19. Re:Conclusions by Miseph · · Score: 1

      You almost had me going there... then I realized what you were really up to. Nobody reads the articles. Ever. You sir deserve to take home some gold at the Trollympics.

      --
      Try not to take me more seriously than I take myself.
    20. Re:Conclusions by johnlcallaway · · Score: 1

      Agile programming as been around for decades .. someone just wrote a book about it and gave it a name and structure. Which of course, ruined it.

      --
      I rarely read replies, it's my opinion and if you thought about your opinion a little more, I'm OK with that.
    21. Re:Conclusions by Anonymous Coward · · Score: 0

      The author points out an interesting suggestion. As he also mentions here:
      "the single biggest factor influencing your success you should put every effort into hiring good people and weeding out the chaff."

      Following the author's logic and hiring intelligent folks as a method independent thing is saying intelligence an absolute measurable thing-- then all the stupid folks should just goto unemployment--since any company they goto will fail eventually, etc...

      Hiring good, intelligent people is pretty subjective--people can be performing poorly because of the culture, management, the owner himself? All these processes have their merits and all the OP should say is process "is needed" (since these things exist). It's better than chaos and doesn't need to focus on people or process 100% -- Processes are just guidelines; team building has more impact on success.

    22. Re:Conclusions by lena_10326 · · Score: 2, Informative

      I've used scrum for over a year now, so my opinion is colored by that. It's my opinion that scrum works quite well in terms of productivity but it has two major problems. It takes most the fun out of development and turns IT work into a daily grind of task processing fed from an infinite treadmill. The second is it kills inventiveness.

      Why do I say that? Well, scrum prioritizes tasks by importance and not by tasks you're interested in working on. On teams I was on the task priority was simplistic and based on three things: 1) the seniority and level of the requestor, 2) the number of systems impacted by the bug, and lastly 3) the nature of a feature enhancement. #1 is usually turns out to be a waste of time (I call it the boss tax.) #2 is usually very hard and quite monotonous. #3 is the source of fun tasks. Since operations work always ends up trumping enhancement work, feature requests get pushed into the future so you're always chasing the day when you actually get to do interesting work. It doesn't come often.

      Scrum is a team collaboration effort so stories added to the board must be justified. It's not enough to justify a task with "...because I want to work on it and I have cool ideas to try out..." or "the code base needs refactoring and I have some ideas how to craft it better". It will be summarily rejected by your teammates because they will chant "we must stick to the priorities". That is the precise moment when scrum kills invention.

      Sometimes we need a mental Scoobie snack and need to work on interesting things in order to prevent burn out. I don't think it's to the team's advantage to ignore that. All the great ideas were developed by those interested in the particular problem and many were developed by those who momentarily ignored their peers and the bureaucratic system of control.

      What I described is classic thread starvation problem due to a simplistic scheduler implementation. We have 3 threads but each is given different priority. In our example, it's thread 3 that never gets CPU time. The way you break free to give yourself time to innovate is to ignore the system and show your work after your prototype is complete. This may mean locking yourself away for a few days until your work is done. It may mean getting a negative review or worse getting fired. If the system of managing software development penalizes you for developing innovation, then the system is the problem.

      As I said earlier scrum works well but only when metered and executed properly but who pulls that off? For example the schedule must allocate time between sprints for the sprints to be effective. The in-between time is critical for performing non-scheduled activities. Of course that lasts until a manager sees the schedule and says "hey why is there all this idle time between sprints?" which inevitably results with the "brilliant" observation that butting sprints against each other will "boost productivity". Sprints are a great idea so why not make every day a sprint day right?

      Over the year we got a lot done so on paper we were very effective and productive, but it came with a cost--never ending recruitment and over taxed, under staffed teams. In the last 18 months my team has experienced 50% turnover. One teammate moved to another team and 2 others left the company. From what I can gather the story was the same during the previous 18 month block of time. You have to understand this is a big deal because in this company 100 resumes results in 1 phone screen; 100 phone screens result in 1 offer. It will take 6 to 9 months to replace the missing three so the remaining 3 teammates are facing those months of supporting 3 very large complex systems while simultaneously trying to do new development while on pager duty. For one of those 3 systems no one understands it because it requires specific technology experience and the 2 domain experts left. When the new hires come on of course there will more time wasted on training.

      --
      Camping on quad since 1996.
    23. Re:Conclusions by Anonymous Coward · · Score: 0

      Don't sign your posts. It makes you look like a tool.

      Lv,
      AC

    24. Re:Conclusions by mmkkbb · · Score: 1

      I have no mod points, but I would like to comment here so I can bookmark this comment for later. That's a very nice simile that I am going to steal!

      --
      -mkb
    25. Re:Conclusions by PaganRitual · · Score: 1

      Someone needs to contact this guy and tell him that his emails are being posted on /.

    26. Re:Conclusions by Anonymous Coward · · Score: 0

      Why not just bookmark the comment you found interesting instead of introducing a superfluous comment of your own to bookmark?

      Yes, I know that agile fans might think your approach is okay because "you can go back and refactor later" to eliminate the extra comment -- except, in this case, that option doesn't exist so your superfluous comment is in the way of everyone forever. You probably should have used waterfall for this one (or posted AC).

    27. Re:Conclusions by Cryacin · · Score: 1

      In my experience in corporate and small business software development, Agile vs Non-Agile is actually quite irrelevant. As long as there is a process in place, that is being adhered to and is the right horse for the right course, it works and works quite well.

      The problem is that in a lot of 2 bit organisations, unskilled Development Managers come along and cobble together a frankenstein process, and/or don't enforce it during the execution. What was once an Agile PROCESS, now becomes an AD-HOC MESS.

      When things go wrong, human nature tends to find the first handy scapegoat, so the methodology gets the blame, when really the problem exists between the keyboard and the chair.

      --
      Science advances one funeral at a time- Max Planck
    28. Re:Conclusions by Cryacin · · Score: 1

      Somewhere somebody is always a fool. The trick is to have a fool tolerant system. e.g. foolproof.

      --
      Science advances one funeral at a time- Max Planck
    29. Re:Conclusions by Cryacin · · Score: 1

      You are so spot on with burnout.

      At my current company we allow for "just because" time. This can be up to 10% of a developer's time, but even that number is flexible. At the end of someone's "just because" time, the business provides constructive (read constructive) feedback as to whether that time was useful, and why/why not.

      We combat burnout, and we allow for each developer to get some gun slinging time, which is very important for creativity. At the end, they get feedback as to whether it was useful or not WITHOUT persecution, which hones their instincts in.

      --
      Science advances one funeral at a time- Max Planck
    30. Re:Conclusions by Anonymous Coward · · Score: 0

      > If you've got balance and common sense, and intelligent engineers, then the methodology doesn't matter and may even be optional.

      Methodology is never optional.

      You will always follow a development process, whether it's standardized or not; documented or not. Even a "lone wolf" coder working on the project himself follows a process.

      The key is to know what you're trying to do and have a plan for getting it done, so that:

      1. you don't build the wrong thing
      2. you don't build a shabby version of the right thing
      3. you don't waste time and money changing plans every day

      I can think of a number of other benefits, but the core of it is that you have to have good communication between team members. They have to be on the same page, and the page should be written down. Nobody should be able to unilaterally change the plan.

  3. Not sure how Agile helps game development by dhall · · Score: 3, Insightful

    When I think of game development, I think of milestones. I think of (relatively) set targets. This is more true for console games than PC game, but lately when I think of games I think console first.

    Iterative style development? Maybe that might work for an MMO where the customers don't mind being permanent beta testers. The gap in QA between professional and game software development already feels pretty vast, but add to that yet another style that promotes a more aggressive, less strict regimen of development just sounds like a recipe of disaster.

    I'm not sure when Agile became the silver bullet buzzword for programming. I have participated in it, attended Ken Schwaber's talks on managing scrums. I can see its positives and negatives, and it's difficult for me to see how game software development could benefit from being agile unless you're coming up with the next big project with a bunch of friends in your 'garage'. Designing your own game engine and concepts from the ground up where nearly every member of your team is a software architect level and the lightweight methods help. Otherwise if you're a code jockey working on a pre-existing engine then project management and deadlines are likely more effective.

    And try pairing up agile software development with offshoring. It reminds me of the old "don't do drugs" commercials with the eggs.

    *holds up an egg* this is your software development
    *cracks egg* this is going agile
    *opens egg over stove* this is agile offshoring
    *ignores the fact that there is no pan to catch the egg* any questions?

    1. Re:Not sure how Agile helps game development by sarahbau · · Score: 1

      I agree. While I've never actually done (professional) game development, it seems like the waterfall model would make more sense for a game.

    2. Re:Not sure how Agile helps game development by Hurricane78 · · Score: 3, Interesting

      Nope. Waterfall is literally impossible on any real game project.
      They are waayyy too huge.

      What you would want, is the spiral model. Not exactly as in the book, but with the basic ideas.
      At least it does good here. Jesse Schell also recommends it, for obvious reasons. And according to him, it’s what is used for all projects that big, that actually finish. ;)

      --
      Any sufficiently advanced intelligence is indistinguishable from stupidity.
    3. Re:Not sure how Agile helps game development by 91degrees · · Score: 1

      The thing about games is that what looks good in the design doesn't always work in an actual game. You can't determine whether something is fun without creating a sample and playing it. Then you work out how to tweak it to make it work or make it better. You need an iterative approach.

      The "customers" in this case are the designers (and possibly the testers).

    4. Re:Not sure how Agile helps game development by hackerjoe · · Score: 3, Interesting

      It's easy to lose track of the fact that good software is written by good teams.

      I've worked on a couple of game teams that used scrum, and I'm kind of with you in that I don't think it made a whole lot of sense. However, nobody on our teams believed scrum precluded longer-term waterfall-style planning -- so we did that too, we just used scrum for the week-to-week divvying up the work. My impression is that a functional, experienced team can make something workable out of pretty much any process, we certainly did.

      Those were traditional fire-and-forget commercial titles, though. Scrum makes a lot more sense for a long-life-cycle online game where you're adding features on a regular basis for 5 years post-launch. This is actually very similar to the context where (I understand) scrum is usually employed: internal information systems that see regular revisions for years after they're put in service.

    5. Re:Not sure how Agile helps game development by MadKeithV · · Score: 1

      it seems like the waterfall model would make more sense for a game.

      Come on people, stop quoting waterfall as a valid model for software development. Even in it's original introduction it was used as an example of a *flawed* model!

    6. Re:Not sure how Agile helps game development by Anonymous Coward · · Score: 0

      The Waterfall model sucks. Do not use it for anything, ever.

      The spiral model is what is usually done in the real world and is much better for it (You will want to invoke the "pin down initial requirements as much as possible" rule since major shifts in direction during work will screw you over, no matter what development model is used). Think of the "Code-[Compile]-Test" loop; in Waterfall, you write all the code, don't test anything as long as it compiles then do all the testing later — not exactly a strategy for success in any reasonable sized project.

      For games, they tend to be 2 parts art, 2 parts science and 1 part code. How it feels is usually more important than its technical merits. You need to figure out what is fun, it is hard to know in advance what will or won't be much fun until you build a demo. As such, a blended prototype/spiral is more useful (pin down the genre and initial concept, start building it, fork off branches to experiment with features that may be rejected or merged back into the main line, iteratively QA as more and more parts are added or merged).

    7. Re:Not sure how Agile helps game development by Anonymous Coward · · Score: 2, Interesting

      That's because claiming the waterfall is flawed is easier than backing up the model the author is trying to sell.

    8. Re:Not sure how Agile helps game development by Anonymous Coward · · Score: 0

      When I *do* game development, I know it is an iterative process. You don't just sit down and churn content to deadlines.

      There is a fine interplay between character control, physics, animation and content which can only be perfected iteratively. There is also iteration towards completion. You will never completely perfect the former, and you can and will drop levels that aren't working, or that you don't have time for.

      Agile methodology is a very good fit for this, and I debate the article's context. Game development methodology has come on in leaps and bounds since we all started picking from the Agile tree. But game development is fundamentally hard, and getting harder. Game project management will always be an uphill struggle. The issue is not that you can't write a given piece of functionality in a given time, but that when you do so, there are aesthetic concerns which may not be completely addressed. No-one has ever come up with a methodology which includes the management of aesthetics. Historically, major works of art are usually late.

      As for the "gap in QA between professional and game software development" - there's no such thing. Game software development is by and large done professionally, and by and large has very good QA. The gap in complexity between a server app and a game is the main thing that's widening, yet I still see fewer bugs in V1.0 of a console game than I do in V1.0 of released "professional" software. Ironically, the main factor worsening this is the industry's widespread adoption of "internet patches", a hack used for a decade by your professional software developers to cover up the known & accepted fact that no software is perfect. For 10 years before that, our software was bug-free from day one, with a *very* few notable exceptions.

      Still, you may know better than me, despite your having a low opinion of the industry in general, and no particular insight into how it works. I look forward to the success of your games company where everyone is just a "code jockey" whose time is micro-managed on a daily basis to churn out content in predictable timescales, which somehow also has sufficient aesthetic appeal to be a commercial success. The publishers will love you.

    9. Re:Not sure how Agile helps game development by TheThiefMaster · · Score: 1

      That's how we use it.

      We have milestones up until release. Each milestone has some requirement of where the game will be at.
      We have half a dozen two-week "sprints" each milestone. Each sprint tends to include related work, but it's mainly just a handy way to divide up the time.
      Each sprint has big tasks ("stories" in the speak) in it (estimated in days), divided up between sprints at the start of each milestone and reorganised at each sprint if needed and agreed to.
      Each "story" is broken up into individual tasks (estimated in hours) at the start of each sprint.
      Each day, people take tasks to work on and update people on what they have done. If a "story" is done, it's fired off to QA.

      Most of that is irrelevant though. The important things are that the people doing the work are the ones saying how long it will take to do, being able to get people to realise that they can't demand three weeks of work in a week, leaving time to fix bugs throughout the project and not just at the end, and still giving a rough idea of when features are ready for use by the level / mission designers.

      So far it's working a lot better than the usual system where "production" manage a big work sheet, continuously rearranging things between people to try to get it all to fit and generally ignoring people who bring up things that need doing that aren't in the plan (which is always the case), leaving no time for fixing bugs, resulting in people bypassing the whole system and asking people to do things directly. Everyone always ended up behind on work because if they got ahead production would replan to take it into account, but when you were behind they'd start asking why. It's because the estimate was done by someone a year or two ago, with no idea how long it would really take!

      I still expect to work overtime at the end of the project, but so far we've had to do remarkably little to hit our milestones.

    10. Re:Not sure how Agile helps game development by darkvizier · · Score: 1

      ... yet I still see fewer bugs in V1.0 of a console game than I do in V1.0 of released "professional" software. Ironically, the main factor worsening this is the industry's widespread adoption of "internet patches", a hack used for a decade by your professional software developers to cover up the known & accepted fact that no software is perfect. For 10 years before that, our software was bug-free from day one, with a *very* few notable exceptions.

      All this tells me is that these companies understand the nature of their respective mediums. If you're releasing to a console with no possibility of updates it *is* important that you be meticulous and catch any bugs. If you're releasing to a webserver, then you've got more flexibility. Either way though, I will agree that I've seen a lack of discipline in ensuring code correctness, both at places I've worked and in commercial products where the results are apparent. I think the damage of releasing something low quality is vastly underestimated by most companies.

      Tying this back to the original topic, I think agile has contributed in meaningful ways, but in most situations it's not a complete solution. In a large project, you need an overall strategy, with milestones that tie into your business model. I don't think agile provides that. I see agile's role more in the tactics of breaking up goals into manageable chunks and then working to complete those goals. It's effective at this because it provides a framework for accountability and proactive resolution of roadblocks. This is very important in a long term project, because if you don't have short term goals and feedback on intermediate tasks, it's easy to lose site of the overall purpose of your endeavor - that is to provide something of value to the consumer.

    11. Re:Not sure how Agile helps game development by Monkeedude1212 · · Score: 1

      It really depends on the game and the end goal in mind, and how you want to achieve getting there.

      I've just started this past week with my room mate the idea of a web based RPG. Think Dungeons and dragons with a Pokemon style interface. Anyways, for something like that, there are a lot of aspects to it, basically everything world of warcraft would have, minus the engine.

      So what I have in mind is a mostly agile development. It will initially be released as a stand alone combat system, you have your character and your stats and you get experience for fighting other characters. While I don't expect it to "Take off" just on that alone, it'll be public to start growing in fan base and get the word around. Then each module will be added on. Marketplace, Crafting, Locations and movement, Dungeons, etc etc.

      Agile development will basically be giving everyone a public beta testing of modules I complete, allowing me to address bugs while working on other modules.

      It might eventually come in to play that we integrate this with some form of flash game, we have discussed the possibilities. If all goes well, we may have to build one using the Source engine from Valve.

    12. Re:Not sure how Agile helps game development by hey! · · Score: 2, Informative

      Look. Anybody with a brain knows that many agile practices don't apply to certain kinds of projects. That's just common sense. I've been in this business long enough to have seen a parade of silver bullet methodologies go by. All of them worked for people who had the development experience, business awareness, and common sense to know when to bend the rules or ignore them. Likewise none of them would take a person incapable of delivering a project and fix that.

      "Agile" is a marketing term, and like most marketing terms it's a lie. Agile works best in those places that left without guidance would try to be too agile for their own good. The places where management, if you let them, will barge in twice a day with a new direction. Now if you know developers, you know they have good days and bad days, and if you want to get anything out of them you've got to give them a long enough stretch in one direction so that they can catch the wind in their sails. So you take down a few books from your shelf, and you say, "This is the latest thing. It's *agile development*."

      Immediately management gets it. It's about getting more done faster. What you don't tell them is that it's about keeping them out of your team's hair long enough to get *anything* done.

      Now if you can define a good set of requirements and keep the goalposts from moving for longer periods, that's even better. Thirty days is a reasonable compromise for a sprint. You want to measure progress in a detailed way at least that often anyway, and it provides ample time to get identifiable bits done and to even try and discard a few creative approaches. But there's nothing magically necessary about changing priorities every thirty days. If you can reasonably keep them constant for six months, that'd be even better. But in *some* kinds of development that's not possible.

      When you are building software to support business functions, priorities shift based on the response to competition, assumptions in the business plan that don't pan out etc. Even the software itself changes the requirements environment. I've been in situations where I know that the organization needs B, but they can't *see* that need until they've seen A first. So the quintessentially agile part of "agile" is really indispensable on these kinds of "dynamic requirements" jobs. The rest of it (unit testing etc.) is just motherhood and apple pie engineering.

      Now as far as the game industry is concerned, everything I've heard about it makes it sound like a horror show. I attribute this to two things. First it is attractive to young folks enamored of the romance of creating the kind of games they love. In other words people easy to exploit. The other factor is bravado and immaturity of the company management. In time as the people in the industry mature, maybe things will change. But "methodology" isn't going to solve the problem of self-deluded and exploitative management.

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
    13. Re:Not sure how Agile helps game development by PaganRitual · · Score: 1

      That's because claiming the waterfall is flawed is easier than backing up the model the author is trying to sell.

      I hear you shouldn't chase them either.

    14. Re:Not sure how Agile helps game development by PaganRitual · · Score: 1

      Anybody with a brain knows that many agile practices don't apply to certain kinds of projects.

      But isn't it management that comes up with the development methods? I forsee issues here.

    15. Re:Not sure how Agile helps game development by ukyoCE · · Score: 1

      Iterative style development? Maybe that might work for an MMO where the customers don't mind being permanent beta testers.

      MMOs are definitely a strong case for Agile. MMO worlds and features are always evolving. You can't waterfall a feature for a year, toss it out the door, and then ignore it when it's a flop with the users.

      Using an agile methodology doesn't mean your end-users are beta testers either. The point isn't to implement broken features and test+fix them later, it's to add and improve working features in a timely fashion. If a feature isn't ready for the deadline, you drop that feature and go ahead with your deadline.

      MMO development is a lot like website development. Your users need to see continued improvement to stay interested, and to keep your product comparable to the competition. And you're getting continuous feedback from the end users on what they like and don't like, and can do something about it quickly in the next release. With a single-launch product you're stuck with focus groups and testers, crossing your fingers that the real world bears out their feedback.

  4. Great article. by Anonymous Coward · · Score: 0

    Funny name. Smart guy.

  5. "Agile" was just a PHB buzzword. by Hurricane78 · · Score: 4, Funny

    [For fun: Read it, as if Ricky Gervais were saying it.* ;]

    You know when your boss caught on to a new buzzsomething, storms into your room, and wants to play thought-experiments with him on what to change? Restructure the whole company? Because, oh god, it’s so great. He just loves it. With glowing eyes..., like a child. And you hate to tell him, that everything he just told you, and everything you have “planned” in the last 3 hours (of “water-cooler talk”, mind you) ...is a steaming pile of bollocks. ;)

    “Agile” is such a thing.
    You know he loves it. But he’s got no fuckin’ clue what he’s talking about.
    “Yeah boss. Mmm-hmm. Great idea. Love it.... Say, you did hear that at the golf court, didn’t you?”

    The thing is... everybody... and I mean every real software developer and project manager... knew that it could. not. work.
    We were just sitting there, thinking to ourselves: “You have finally found something that’s even more unrealistic than the “plan everything, then GO!” waterfall model, haven’t you, ...you little fucker?”

    Did you know that the spiral model... was invented over twenty years ago? Yeah. That’s how long you and I were sitting there, in our stinky cubicles... printing out everything remotely resembling fliers, and... casually placing them near your boss’s room, so he miight pick one up, and you would not have to beat him with that fuckin cluestick in your most beautiful algorithmic fashion, until he looks like a real flame-grilled burger king burger!

    (Thankfully, not all of the industry is that bad. Most game development studios, from what I have heard, are actually implementing the spiral model in a very successful way. As am I. But it didn’t help you much when you were working at EA now did it? ;)
    ___
    * Please, if you want to rip me apart for not getting British English right, write me a e-mail in my native language and regional dialect... south-western Luxemburgish. You know, the one with the “fro”, not the “fra”. ;)

    --
    Any sufficiently advanced intelligence is indistinguishable from stupidity.
    1. Re:"Agile" was just a PHB buzzword. by goose-incarnated · · Score: 1

      Golf Court?

      (Maybe he heard it at the squash course?)

      --
      I'm a minority race. Save your vitriol for white people.
    2. Re:"Agile" was just a PHB buzzword. by brkello · · Score: 1

      Clearly, Hurricane is not destined for management if he thinks golf is played on the court.

      --
      Support a great indie game: http://www.abaddon360.com
    3. Re:"Agile" was just a PHB buzzword. by Hurricane78 · · Score: 1

      Well, clearly I have no fuckin’ idea about half the English terms. ;))
      That’s what you get, for learning English via Slashdot and US TV shows. (Seriously!)

      --
      Any sufficiently advanced intelligence is indistinguishable from stupidity.
    4. Re:"Agile" was just a PHB buzzword. by goose-incarnated · · Score: 1

      Don't worry about it - brkello and myself were aiming for +1 funny (maybe) :-)

      --
      I'm a minority race. Save your vitriol for white people.
    5. Re:"Agile" was just a PHB buzzword. by Cryacin · · Score: 1

      Come on guys, stop teasing the Luxembourgian.

      --
      Science advances one funeral at a time- Max Planck
  6. When to use "agile" methods. by Animats · · Score: 5, Insightful

    "Agile" methodologies are most appropriate when the project consists of a large number of loosely coupled user-oriented features with no major architectural or technical innovations. Like PHP-based web sites. Or, in fact, much programming which involves using an existing "framework". Someone else has already figured out what the different parts of the system need to say to each other and roughly how they will say it. Development is mostly filling in the blanks.

    Trying to use "agile" on a hard, tightly-coupled problem with no predefined structural framework, like an optimizing compiler or a database engine, is likely to result in a disaster.

    A game can fall into either category. If the game requires new technology, especially something hard, (advanced AI, a new physics engine, a very large seamless world, etc.) a very front-end design-driven approach may be necessary. On the other hand, if most of the game consists of developing content for different areas of the game world, an "agile" methodology could work fine. Second Life is probably the most extreme example of this.

    It's interesting to note that movie-making has become very much a waterfall model business. A few decades ago, moviemaking was much more "agile", and most directors came from a theatrical background. For a theatrical director, there's a debugging phase involving actors on a bare stage, and the content may change considerably during development. Big-budget moviemaking today involves going from script to storyboard to previsualization (making a low-end animated version as a planning tool) to production. That's very much a waterfall process.

    1. Re:When to use "agile" methods. by dcollins · · Score: 2, Interesting

      "A game can fall into either category. If the game requires new technology, especially something hard, (advanced AI, a new physics engine, a very large seamless world, etc.) a very front-end design-driven approach may be necessary. On the other hand, if most of the game consists of developing content for different areas of the game world, an "agile" methodology could work fine. Second Life is probably the most extreme example of this."

      In my experience as a game developer (now 10 years ago), the situation would be exactly reversed. New technology requires rapid iteration from a lot of stakeholders, in a search to find something that is workable, balanced, fun, expandable, etc., which sounds "agile" to me. Established technology seems more like something you can give marching orders to the art department and have a fixed production schedule.

      Examples: Two projects with new game engines being designed or evolved, programmer/designers were continually advancing or identifying features as unworkable, while some poor guy was trying to update a 100-page "design document", trying to record our feature set, being always hopelessly out-of-date, and to which none of the programmers paid any attention. Meanwhile, an intermediate add-on project adding no new programming (just new levels and art) became celebrated for having a well-established schedule up front, the tightest timeline, least expense, and best-looking art of any project at the company.

      --
      We know where leadership by an anti-intellectual "strongman" who scapegoats minorities and likes boisterous rallies goes
    2. Re:When to use "agile" methods. by sourcerror · · Score: 1

      "Trying to use "agile" on a hard, tightly-coupled problem with no predefined structural framework, like an optimizing compiler or a database engine, is likely to result in a disaster."

      Last time I did visit the CS department, they weren't busy drawing UML diagrams. I mean, a lot of things can't be expressed well with an UML diagram. (So you'll use pseudocode, some "non-standard" diagram, maybe - oh the horror - natural language.)

      In my experience the people who are the most fond of UML diagrams are the people who make software for beancounters.

    3. Re:When to use "agile" methods. by hackerjoe · · Score: 1

      New technology requires rapid iteration from a lot of stakeholders, in a search to find something that is workable, balanced, fun, expandable, etc., which sounds "agile" to me. Established technology seems more like something you can give marching orders to the art department and have a fixed production schedule.

      This agrees with my (more recent) experience, but the fact is unless you have your own supply of cash to burn, your money source is going to want milestone deliveries, and probably will not tolerate much deviation from a fixed schedule. That means that no matter how bullshit it is when you first draft it, your development is going to be driven by the overall waterfall development arc your milestone commitments lock you to...

      Not that it's a bad development model, in fact I think it's what most developers use in practice because it works: make an overall plan that says when you'll deliver, but figure out the details of what you're delivering through agile iteration.

    4. Re:When to use "agile" methods. by Anonymous Coward · · Score: 0

      PostgreSQL *is* a database engine, and successfully runs with something pretty close to Agile methodology. New features are fairly small-grained, and are released to the test community fairly frequently. Feedback on the design and implementation then affects development on that feature (including possibly dropping it).

      The Linux kernel development process is also similar to Agile methodology, and seems to work fairly well, despite regularly having major architectural or technical innovations.

      Where these projects differ from games, however, is that there are no deadlines as there are no marketing people waiting for the next release. In addition, each new feature is useful independently while a game may be unplayable unless a set of features are all functioning together. Movies have a similar issue: time-based releases aren't an option; a film without scenes 4, 7, 84 and 103 just isn't watchable.

    5. Re:When to use "agile" methods. by Anonymous Coward · · Score: 0

      I don't know what your experience is that led you to say that moviemaking has become more waterfall, but my sources in the industry, who have been in the industry a little over ten years, describe precisely the opposite of what you're describing. Ten years ago, there was reasonable art direction, a reasonable process, and the hope that a quality shot would at some point be called "done" so they could move on. Today, even though the script->storyboard->previz->production process provides more structure, the actual process of a moviemaker's development is much more like iterative prototyping than it is a waterfall. The increased flexibility of computer graphics has led directors to expect they can make changes at any point in the process and use CG to fix it up - everything from little things like not reshooting bad footage to completely reworking the ending of a movie or changing its plotline - all of things which have happened to my sources, particularly on "I Am Legend," where massive changes had to be made the further and further they went in the moviemaking - and this is with a lot of it plotted out and prevized.

      Your mileage may vary - if you have a really good director, this does not apply.

    6. Re:When to use "agile" methods. by Jellybob · · Score: 1

      One of key principles of agile is that you always have deliverable software, which plays right into needing to deliver working software at certain milestones.

      A well run agile project will be delivering software every couple of weeks though, which also means that every couple of weeks you can hand something to the money men, and to play testers. They can then actually play the game, and pick up any major flaws much earlier in the process, making it feasible to actually do something about it.

      I don't know if they were using agile, but one of the best examples of this sort of adaptation I've heard of in the context of games is Mirror's Edge, which originally was going to be a fairly generic first person shooter. At some point in development they realised that the leaping off buildings bits were much more fun, and refocused the game on them.

    7. Re:When to use "agile" methods. by CrazyIvanovich · · Score: 1

      Exactly! Your life cycle for software is a design choice just like any other! I don't know how many times I puked in my mouth during software engineering classes in college where we were simply beaten with "Waterfall bad; Iterative good!" in the name of 'No Silver Bullet.' It completely misses the point! The title says it all, if you believe it.

      The life cycle of your product needs tailored to its requirements.

    8. Re:When to use "agile" methods. by eulernet · · Score: 1

      It's interesting to note that movie-making has become very much a waterfall model business. A few decades ago, moviemaking was much more "agile", and most directors came from a theatrical background. For a theatrical director, there's a debugging phase involving actors on a bare stage, and the content may change considerably during development. Big-budget moviemaking today involves going from script to storyboard to previsualization (making a low-end animated version as a planning tool) to production. That's very much a waterfall process.

      Yes, you are right.
      When a sector becomes mature, a process can be defined.
      But this is because making a movie is very expensive, and much more than creating a video game.
      On the very few games costing more than 10 millions, there is a lot of procedures.

      "Agile" methodologies are most appropriate when the project consists of a large number of loosely coupled user-oriented features with no major architectural or technical innovations. Like PHP-based web sites. Or, in fact, much programming which involves using an existing "framework". Someone else has already figured out what the different parts of the system need to say to each other and roughly how they will say it. Development is mostly filling in the blanks.

      Hum, as an ex-game programmer and a current agile developer, I have to say that you are wrong.

      Writing a game now requires using lots of frameworks (3D engine, controller input, and in some cases AI).

      Using frameworks has nothing to do with agile programming. Note also that programming nowadays has become like playing with Legos: you use the pieces that you bought, and you never build your own pieces.

      As the article states, using agile will slow down your progress by at least 15%, but you'll have an average of 60% less bugs (quality might not be an important factor in a game).

      Although I use agile methodologies, I know that some of them don't work with everybody.
      Pair programming is the typical example that won't work in game programming.
      Why ? Simply because you cannot afford to write every line of code by two programmers when you write a game.

      What works in agile are:

      1) TDD (test-driven development): writing tests before or at least covering your code with tests.
      2) Tasks splitting: split your project in small tasks, and define what you expect from every task (we use cards for that).
      3) Pair committing: every commit must be reviewed by two programmers. This reduces the obvious bugs.
      4) Minimal effort: always write the smallest amount of code to write a task. Don't start building a skyscraper when you need a home.
      5) Daily standup meeting: all the team stand up and talk about their progress during one minute per person
      6) Iterative process: define small 'milestones' named iterations, for example every two weeks. At the beginning of the iteration, you define what tasks you want to be done. At the end, you check what has been done.
      7) Continuous integration: when you commit, a build is launched and the tests are executed. If you break the build, you fix it immediately.
      8) Retrospective: at the end of every iteration, take some hours (one hour per week is enough) to analyze what went right and what went wrong. It's like a post-mortem (check Gamasutra's post-mortems), and allows you to better react when there are problems.

      As agile processes are people-centric, every team should have its own rules.

    9. Re:When to use "agile" methods. by mcvos · · Score: 1

      Pair programming is the typical example that won't work in game programming.
      Why ? Simply because you cannot afford to write every line of code by two programmers when you write a game.

      Not every line of code, but for some lines it can make a lot of sense to write them in pairs.

    10. Re:When to use "agile" methods. by Anonymous Coward · · Score: 0

      Big-budget moviemaking today involves going from script to storyboard to previsualization (making a low-end animated version as a planning tool) to production. That's very much a waterfall process.

      It may start as something resembling to a waterfall just like formulation of a request of proposal for a software project might look, but turns quickly into an agile process as the movie gets its final look. The all digital production enables even more liberty by spreading the agile part of the movie making all the way to the storyboarding and concept development levels. This way the production process increasingly supports the act of story telling which the movie making should be all about.

    11. Re:When to use "agile" methods. by b4dc0d3r · · Score: 1

      Since you're going all general on us... A company I worked for used to tell its customers it was an "Agile" company. It announced "Agility Alliance" partners intended to speed time to market, and develop solutions quickly.

      Internally, a new development process was rolled out that everyone had to follow. It was classic Waterfall with everything renamed. Then they addressed the shortcomings of Waterfall by adding additional planning, documentation, gate reviews, and I forgot what else.

      We're agile, and we just changed our development model to prove it. Yay!

      *sigh*

    12. Re:When to use "agile" methods. by elrous0 · · Score: 1

      Sadly my less catchy "Let's just get together and build this motherfucker" design philosophy lacked the one-word or acronym-based approach needed to ever catch on as an industry buzzword.

      --
      SJW: Someone who has run out of real oppression, and has to fake it.
    13. Re:When to use "agile" methods. by recharged95 · · Score: 1

      "Or, in fact, much programming which involves using an existing "framework". "


      Ding ding. If you are using a existing framework, then getting 'experienced' folks (intelligent is subjective and misleading) will have the domain knowledge, hence design is a lower priority from requirements/user stories. And then an Agile process used as a guideline will work out fine as along as management does the due-diligence in planning and getting clear test/success cases from the dev teams.

      Of course all that can easily fall apart if the stakeholders don't want to spend the time (a lot of their time that is)... And chances are they don't want to spend the time in planning meetings and scrums.

    14. Re:When to use "agile" methods. by hackerjoe · · Score: 1

      Unfortunately the "always have something deliverable" part is actually one of the least useful parts of Scrum for game development, in my experience.

      The concept is too vague. Any larger game has a quality bar for shipping -- there's no point if it's not at least so good. So saying "deliverable" actually ends up confusing the team; "not completely broken" is what you want to communicate, but the programmers should already be keeping the game runnable. If they weren't doing that, the designers and artists would be screaming that they can't get any work done!

      I have yet to work on a game project where it wasn't implicitly understood by the programmers that unblocking the content team was top priority.

  7. Any process is better then no process by LordZardoz · · Score: 4, Insightful

    Game development has lagged terribly behind traditional / non game programming industries in terms of its development practices. And the most recent projects I have worked on were using a Scrum / Agile hybrid. I will admit to not knowing exactly which is which. But the great thing that Agile/Scrum did was to put in place a process where every time someone asked for a feature change, it would be reflected on the development schedule. I have worked on projects where there was at best a vague checklist of what still needed to be done with no info on how long it was expected to take. In my experience, most milestone crunch work is due to people realizing too late that something that should be in the milestone was not going to get done in time.

    The problem with any development practice is that if taken too far, it will cause more problems then it solves. You should not have to write a formal task card up, and put it on the board for trivial tasks. And if you break things down too much, you end up losing sight of the bigger picture.

    I do not care what process you use to get things done. As long as someone on the project (probably the project lead), is keeping track of the following:

        - Break down the project into smaller tasks: This makes it at least possible to assign responsibility for specific things to specific people.

        - Task / Feature prioritization: When it comes time to make cuts, knowing what things are important is highly useful.

        - Task interdependency: You want to schedule your work load to make sure no one gets stuck waiting for something else, and it helps to have a list of alternate tasks you can move onto when you do get road blocked.

        - Making sure things are done mostly on time: It is never a good thing to only realize that a task is not going to be done on time 2 days before it needs to be done. If something is taking too long, you should know before hand

        - Making sure new features are checked against the schedule: No one wants to have a project become late because someone decided to add new features half way through the project but did not add time to it.

    If you can track these things intelligently you can avoid the worst bits of milestone specific crunch. No process will prevent a deathmarch, or magically squeeze out an extra 6 months of effective development time. But it will avoid the nastiest surprises, and help create a realistic prediction of what a given development team can produce in a given time frame.

    END COMMUNICATION

  8. Many games developers ? by Antiocheian · · Score: 1

    Many games developers have been pursuing agile development

    Who ?

    1. Re:Many games developers ? by 91degrees · · Score: 2, Informative

      Kuju, EA, Ignition, High Moon, Creative Assembly. Probably a few others but the only games company I know that isn't explicitly is Climax.

    2. Re:Many games developers ? by Antiocheian · · Score: 1

      How can I verify that ?

    3. Re:Many games developers ? by 91degrees · · Score: 1

      Call them up and ask them?

    4. Re:Many games developers ? by Anonymous Coward · · Score: 0

      BlackRock (formerly Climax Brighton) are big on Agile - which I think is the not too subtle reference at the end of the article ;)

      "No two projects are the same, well - unless you make racing games."

    5. Re:Many games developers ? by Antiocheian · · Score: 1

      no really, how do you know that ?

    6. Re:Many games developers ? by 91degrees · · Score: 1

      These are software developers just about within a commute of where I live (except High Moon, who talked about SCRUM in an interview). I've had job interviews with most of them. Design processes are usually mentioned.

    7. Re:Many games developers ? by DragonWriter · · Score: 1

      Call them up and ask them?

      That will tell you if they've decided that saying they are using Agile development is good PR/investor relations (does it resonate as a "good practice" on Wall Street that people will be more likely to buy our stock if we say we are using), but won't tell you whether or not they are actually pursuing the methodology.

      I mean, everyone here has probably encountered shops that have completely broken processes that don't reflect any formal methodology or even any kind of unique but intelligently-planned structured approach, but I'm pretty sure that's not what any of those shops claimed to be doing.

      Just because someone claims they are doing Agile development doesn't mean they are even trying to do anything like it.

  9. I am a game developer. by Anonymous Coward · · Score: 0

    What the hell is he talking about?

    Agile? Scrum? Waterfall? Sprints?

    What do those words even mean? This article seems like it's written in some kind of alien language. And these charts look completely worthless.

    Do people in management at large corporations actually talk like this? Do they actually think charts like this somehow help them run the company better? Ugh.

    1. Re:I am a game developer. by Anonymous Coward · · Score: 0

      so I just lookedup what the spiral and waterfall models are.

      Do we really need words for these things?

      Does anyone have to be told explicitly that when developing a game you decide you need certain features, you implement them, you test, and then you improve upon that?

      Jesus.

    2. Re:I am a game developer. by 91degrees · · Score: 2, Informative

      Yes. It's convenient jargon. Scrum is a design methodology. Sprints are short project segments where a defined piece of work is completed. Waterfall is the traditional requirements, design, implementation, verification, maintenance way of developing software.

      We use these terms because it's very long winded to spell out what we mean in much the same way that we say wi-fi when talking about a wireless system for transmitting data between general purpose computing devices.

    3. Re:I am a game developer. by maxwell+demon · · Score: 4, Funny

      Well, I usually test before I implement. Far fewer failures that way. Just a single "file not found."

      --
      The Tao of math: The numbers you can count are not the real numbers.
    4. Re:I am a game developer. by 91degrees · · Score: 1

      You don't need to be told. Waterfall is a description of the design process, not an advocated design process.

    5. Re:I am a game developer. by Tim+C · · Score: 4, Insightful

      Do people in management at large corporations actually talk like this?

      No, the programmers do.

      Agile is all about breaking the project down into small, more-or-less self-contained (sets of) features, and getting the users involved in the process. The aim is the same, to go from a set of requirements to a finished product, but it's supposed to be more flexible, more able to cope with changes along the way, etc (hence, "agile").

      It differs from the traditional waterfall method in that it allows for coding of one (set of) requirement(s) to start, while the next set is being specced out; it also allows (in fact, requires) that testing of the last set of delivered functionality is performed while the current set is being developed. Thus it runs several separate workstreams in parallel. If that testing reveals any bugs that need to be fixed now, then the fixes can be worked into the next sprint as required (which yes, may well push features out, either to a later date or completely out of the project).

      Agile suits some projects better than others, some customers better than others, and some project teams better than others. When it works well, it can work really well; similarly when it's poorly managed or people have unrealistic expectations, it can crash and burn like any other method. (And similarly, of course, other methods of running software projects can work very well too - use the right tool for the right job...)

    6. Re:I am a game developer. by Anonymous Coward · · Score: 0

      You joke, but that's how test driven development works. You write your tests first, and then write code that addresses the "issues" found in the tests. So you'd fix "file not found" and run the tests again (and then work on the compiler error generated by your empty or garbage file).

      I've used this approach before and it works well in the right situations. The key though is writing good tests.

  10. Agile is dead? by matunos · · Score: 1

    That's news to me. I don't know anything about the gaming industry or their development process (though in some cases it seems to be "work your devs to the bone, and then go bankrupt"). But I can assure you that agile methodologies are alive and well in the corner of the industry in which I work (e-commerce).

    But Agile is a broad term, encompassing many different ideas. Do you mean specifically XP? Scrum? Agile design? I would say elements of all of these things continue to thrive, while in my experience none of them exist in their pure theoretical form (which is appropriate, because it wouldn't be very "agile" to be dogmatic about process).

    While I can't imagine a game being released in an iterative fashion (aside from bug fixes and the occasional add-on content), I can imagine an agile, iterative model being used in-house, at least for some parts. I mean, do you really want to risk having nothing to show for your work for 6 or more months? Surely something could be "released" (in-house) for downstream dependencies to start work, and some basic feedback to feed into your development.

    Who knows, as I say, I don't have any experience with game development itself. But the risk one faces with too long of an iteration is arriving at your iteration end-point way behind schedule, behind in technology, and with components that may work great in a design made a year ago, but can no longer fulfill the new requirements that have cropped up.

    1. Re:Agile is dead? by 91degrees · · Score: 1

      I can imagine an agile, iterative model being used in-house, at least for some parts.

      This is exactly how it works.

    2. Re:Agile is dead? by Anonymous Coward · · Score: 0

      Where in the summary or article does it say dead?

  11. Too long by istartedi · · Score: 1

    Did TFA have "Mary had a little lamb" in the middle of it? Nobody knows, and nobody ever will. Bonus points for unfalsifiable assertions in the first paragraph.

    --
    For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
    1. Re:Too long by sohp · · Score: 1

      TL;DR

      Also -- PowerPoint graphics ftl.

  12. Staring blankly by GaimanBohrs · · Score: 2, Funny

    I don't know what anything in this thread means.

    ...but I like games.

    1. Re:Staring blankly by maxwell+demon · · Score: 1

      Well, agile programming has done harm to the games industry, and therefore they are now looking for phlegmatic programmers.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    2. Re:Staring blankly by Grey+Ninja · · Score: 1

      It's a lot of project management nonsense. Basically, there are a few different ways to manage a software project. The idea is that much like building a house, you can assemble the house in many different ways, and some ways will produce a better house in less time.

      Personally, I think it's all just a bunch of crap. Any carpenter will tell you that you should assemble the walls before you put the roof on. Any programmer will tell you that you need a filesystem driver before you need a resource management system (although there's really no reason that the two can't be done in parallel, if properly planned out).

      In short, this topic reminds me of bickering over how whitespace should be formatted. Completely useless 99% of the time.

      Disclaimer: I work in the game industry as a systems programmer. I honestly can't tell you what methodology we use. Spiral maybe? Our publisher wants tangible results, and every programmer is given tasks that are within their area of expertise. We build up our game (which is a constantly shifting target) to the best of our ability.

    3. Re:Staring blankly by trapnest · · Score: 1

      I am with this guy. Are you people even speaking english?

    4. Re:Staring blankly by RPoet · · Score: 1

      You know, it's about leveraging the curation of your social graph in the hyperpersonal news-stream of the post-2.0 web. I think.

      --
      "Oppression and harassment is a small price to pay to live in the land of the free." -- Montgomery Burns.
    5. Re:Staring blankly by Yetihehe · · Score: 2, Insightful

      It's called Cowboy Coding

      --
      Extreme Programming - Redundant Array of Inexpensive Developers
    6. Re:Staring blankly by Anonymous Coward · · Score: 0

      Yeah! Down with whatever that is!

    7. Re:Staring blankly by Anonymous Coward · · Score: 0

      Nah nah, it's called Brokeback Coding... that's the one where the developers all get screwed in the end.

    8. Re:Staring blankly by lena_10326 · · Score: 1

      I find it funny that many put down cowboy coding as an atrocity--worst of the worst sins, but how come many revenue positive startups are built on top of cowboy code? It's because it works if the developers are good and passionate, but if not the code churned out will be a mess of spaghetti. Corporate profitability is priority #1--not code quality. Code quality is probably #3 or #4 on the list.

      --
      Camping on quad since 1996.
    9. Re:Staring blankly by Grey+Ninja · · Score: 1

      Exactly. Everyone on our team is good at their job. No amount of "waterfall", "agile", or "spiral" is going to prevent bad code from being written by a bad programmer. Everyone has their own workflow, and their own way of thinking. Encouraging everyone to be their best is the way to go.

      The only time that quality is ever sacrificed is when fixing bugs close to a milestone. But as soon as the milestone is over, we generally get a chance to rip out our hacks and do it properly.

      Honestly, I think our codebase is pretty good. It's not perfect by any means, but most of the problems reside in architectural details that were put in by someone who really shouldn't have been the engine architect. They are nice on paper (very extensible), but in practice they are slow at runtime and unwieldy to use.

    10. Re:Staring blankly by Anonymous Coward · · Score: 0

      Ah so you have a cowboy? He has built the money generating steam engine of your company. How about this scenario, he just quit because someone offered him 2x what he is making here. Your #1 customer is pissed off because bugs are not being fixed. The 10 devs you hired do not compete with the cowboy. Hire him back (what if he doesnt want to or can not come back)? Or fix your code?

      I have dealt with the aftermath of a few cowboy induced projects. They were mildly profitable at first. Then the cowboy leaves (he always does). Then no one can decipher the crazy mess he made. The product stagnates and dies costs to test go thru the roof as subtle but reoccurring bugs show up. As no one will/can fix it. Eventually the owner grows bored of the company as it is not growing at 10% year over year anymore in fact has gone the other way. Your product will be bought by some other company to buy the marketing dept, everyone else goes.

      Cowboys are wonderful but like nuclear energy you dont want to get any on you. You want to properly control them to produce a nice clean energy and not a giant explosion that has years of cleanup problems.

  13. there is no engineering in software by Anonymous Coward · · Score: 0

    Software development is still a craft.. more than art, but way less than engineering..

    until we have tools to make software in a consistent, reproductible way, we can't apply engineering tecniques to software development

    until then, we have to treat it as a craft.

    we have to focus on communication of processes between people

    the main problem today in software development is communication.
    with the client, between developers, with management.

    we have to develop tools to help the client communicate better the expectations. tools to help the developers communicate to the management how long it will take to do what. and to help management communicate to the client what will really be done, and how much it will cost, and how long it will take

    1. Re:there is no engineering in software by mcvos · · Score: 2, Insightful

      Software development is still a craft.. more than art, but way less than engineering..

      until we have tools to make software in a consistent, reproductible way, we can't apply engineering tecniques to software development

      We've had tools for that since forever. `cp` for example. Reproducing software reliably is trivial in comparison to bridges, because software is only information, and not something physical. Writing software is not like building consistent and reproducible bridges, it's like inventing a new kind of bridge. There's always going to be some art, judgement and testing involved.

  14. Oh ... I did not know ... by angel'o'sphere · · Score: 3, Insightful

    that
    As the industry at large is moving away from the phantasmagoria of Agile ...

    I guess calling Agile a silver bullet and/or calling it a hype or anti hype is just a thing of the media. As a Software Developer you are used to at least know the best tool for your job and the best language for your job (albeit some reasons may prevent you from using them). The same should be true for software project management methods.

    Keep in mind that perhaps 50% of all software development houses have no method at all but just do it with more or less success. That often is topped by neither having a version control system nor having an issue tracker. Project management is done with Excel Sheets, which are mailed around and edited/annotated by multiple persons.

    Calling Agile "failing" is in my eyes a clear sign that you have no clue about it.

    Every single thing that is stated as best practice in TDD, XP or Scrum is a very good thing to do in your process, regardless wether you follow any of those methods strict or prefer a more traditional approach.

    Most people calling Agile fail either have (as I stated above) no process at all, never tried it, or already do do a lot of the core practices like nightly builds and continuos integration etc.

    This said: no one ever claimed that a good running traditional process which is already yielding high quality result would be even better if run Agile. However everyone who has no process, everyone who has quality problems, everyone who has tracking, budget delivery time problems, those have a much easier term in adopting some agile process and a much easier introduction and adoption of tools instead of one who switches to RUP or similar heavy weight processes.

    angel'o'sphere

    --
    Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    1. Re:Oh ... I did not know ... by Anonymous Coward · · Score: 0

      I agree that much of 'Agile' is very good for software development in general, and I have been embracing the good parts since I learned of them.

      But there are other parts that are more murky. The company I work for used to be totally free-form and the only structure was that the owner would ask when you thought an entire project would be done, and he'd get upset if it looked like no progress was being made. (Note that the appearance had very little to do with reality. It was possible to get amazing amounts done and get yelled at for not releasing anything, and it was possible to get almost nothing done and be praised for releasing so much. I've done both.)

      The company recently moved to Agile, embracing Scrum strongly. It gets in the way of a lot of things, like bug fixes. Everything is so driven by the '2 weeks!' thing that bugfixes are getting pushed around and avoided. Why? Because we'll get scolded for being late on our 2-week run.

      It also gets in my way as a developer since instead of a 1-hour meeting every week, we now have a 1-hour meeting every 2 weeks plus a 10-60 minute meeting every day. This means that I not only lose more time, but I get interrupted from my flow every single day. (It's not possible to catch everyone at the beginning of their shift because we start at different times over the course of about 5 hours.)

      On the other hand, I find that the newest programmers are now quite a bit more productive because they have clearly defined tasks and goals. Since we have quite a few more newbies than veterans, it's probably a net gain. And the owner doesn't yell any more because there's always things being released.

    2. Re:Oh ... I did not know ... by vacarul · · Score: 1

      Project management is done with Excel Sheets, which are mailed around and edited/annotated by multiple persons.

      so true, I worked for a multinational company that used only Excel... for everything. For every type of report, they would send one Excel file to be filled and sent back every week. The receiver would get one file from every person and then compile some mega Excel file report. After a few weeks the mail came back. The Excel template was replaced with a new version so we had to fill in again the information but in the new file. Of course most of the information they requested was useless.

      I had this fantasy in which I would have the power to make Excel disappear and then watch how all the "managers" would run around, hitting their heads because they lost all the reports.

      oh... and their slogan was something about building the internet of tomorrow...

    3. Re:Oh ... I did not know ... by wrook · · Score: 1

      The problem is that "Agile" as a methodology means almost nothing. We value people over processes, etc, etc. It could be anything.

      I've worked on a couple of very successful XP style projects. One was so successful that it surpassed my wildest expectations. We had good people on the project, but it wasn't much different than other teams I've worked on before. The biggest difference was an interest in the XP practices and a consistent approach to applying them. The more we did it, the more we learned, and the more successful we became. I can't really explain it well, but the more code we wrote, the rate at which we could implement functionality increased (exactly the opposite from other projects I'd been on).

      But it's this not being able to explain our success that is the problem. I now know what a lot of people mean when they talk about hyper-productivity in "agile" projects. And after that wildly successful project I would look on in despair at other projects. Management would suggest that this project was successful too and I would have to disagree. I could point to places in the code where cruft was developing. "All code has cruft", they would say. But cruft slows you down. It makes you have to think hard about what you are doing. It makes you make difficult decisions about what you should be doing. Truly agile projects can't afford cruft. Think about how easy it is to write new code compared to writing code in an old system. Well, truly agile code is *easier* to code in than new code. And the more you write, the easier it becomes. You get more functionality, it's better organized, it's easier to read, it gets closer and closer to the real problem domain. And it even tells you (through "tests") when you use it improperly.

      This kind of code comes from the dedication of the developers, I think. The "agility" doesn't come from avoiding overhead. It comes from constantly making things easier and easier. It comes from being sensitive and saying, "That bugs me" and improving it -- every single time. It comes from understanding the separation between the business side where the 80/20 rule applies and the technical side where the 80/20 rule means you're going into technical debt everyday.

      I have no doubt that there are people who experience the "agility" that I experienced using a variety of different methods. XP isn't what made me "agile". It was more of a bootstrapping process that let me start understanding what was important and what wasn't. I suspect there are people who are more talented than me who can see that without being shown. But from experience they are very rare indeed. And unfortunately the vast majority of people believe that "Agile" means exactly the opposite of the discipline that is required to achieve it.

    4. Re:Oh ... I did not know ... by rsmah · · Score: 1
      plus a 10-60 minute meeting every day.

      If your standups ever run longer than 15 minutes, you're not doing scrum standups, you're doing status meetings or reporting or some such. That is not scrum.

    5. Re:Oh ... I did not know ... by shutdown+-p+now · · Score: 1

      Every single thing that is stated as best practice in TDD, XP or Scrum is a very good thing

      Is overcomplicating and mangling your code to conform to the limitations of your testing framework a very good thing?

    6. Re:Oh ... I did not know ... by ukyoCE · · Score: 1

      I assume you're referring to TDD? TDD can be done in many ways, and only the most extreme and (as you said) cumbersome involve testing frameworks or unit testing.

      I've found unit testing to be good for critical and complex back end components that are difficult to test from the front end. But to me, TDD can be as simple as "test each function as you write it to make sure it actually works". You can do it with print statements if you want, whatever works. As long as you don't get to 500,000 lines of code before trying to execute any of it.

    7. Re:Oh ... I did not know ... by shutdown+-p+now · · Score: 1

      I assume you're referring to TDD? TDD can be done in many ways, and only the most extreme and (as you said) cumbersome involve testing frameworks or unit testing.

      Well, I agree that it's not all there is to TDD, and that was kinda tongue in cheek. I disagree with your assessment of it as "extreme", however. It seems to me that the majority of TDD community are strong proponents of this approach.

      Actually, I don't mind either unit testing or mocking frameworks, the problem is that most existing ones are deficient in that you have to specifically tailor your classes (that is, your API) so that they can be mocked. Examples include no static, no final/sealed, and in C#, virtual on all members. This adds larger degree of extensibility to the API than is really need to just get things done otherwise, and most often, this extensibility won't be used in the future, either - or even if it will, it's cheaper to add it in later when it's needed, than add it early and then maintain it. It's also much easier to run into fragile base class problem that way - there is a reason why virtual isn't the default on methods in C#, and it was added to solve certain problems with Java approach.

      A good testing/mocking framework is the one that lets you design API thinking only of API design issues, and then test it regardless of any limitations. Now I'm mostly a .NET guy, so one such framework I know of is for .NET - TypeMock. It uses .NET profiling APIs to intercept and hijack method calls, so it can mock absolutely anything - static methods, sealed classes, you name it, it's there. And that is how it should be.

      The irony there is that the .NET TDD community has an axe to grind with regards to TypeMock - it is regularly blamed for "allowing sloppy developers to write bad code". Apparently, according to those TDD adepts, if your code is not written to adhere to the limitations of their favorite unit testing frameworks as listed above (and then some, such as defining an interface for every class), it's bad.

      And, unfortunately, there are way too many people holding this point of view. Which leads me to conclude that it is by no means extreme in the TDD community.

  15. Perhaps... by Anonymous Coward · · Score: 0

    ...if the programmers started eating less, exercising and losing weight they could be back on the track to being agile?

    1. Re:Perhaps... by maxwell+demon · · Score: 1

      ...if the programmers started eating less, exercising and losing weight they could be back on the track to being agile?

      Well, the story told how agile programming failed. Therefore the message is: more pizza!

      --
      The Tao of math: The numbers you can count are not the real numbers.
  16. methodology for noobs by stimpleton · · Score: 1

    When noobs don't know what to do and can't define the problem they break out the Agile card.

    Problem is managers and CEOs lap up the Agile mantra especially when from a slick salesman. Agile sounds sexy. Waterfall methodology is what stale dinosaurs use.

    --

    In post Patriot Act America, the library books scan you.
    1. Re:methodology for noobs by Anonymous Coward · · Score: 0

      Wow, you clearly have never been in a functional agile environment. Are you one of those types that:
      a) likes to be handed a project and just deliver exactly what is defined so you can then later say "It wasn't in the spec";
      b) believes that you can fully and accurately document a project before any work on it begins?

      Agile is the exact opposite of what you claim. Any noob would have huge challenges with an agile approach because it doesn't attempt to spoon-feed all the requirements and definitely does not absolve any programmers from delivering sub-par work so they can claim "it wasn't in the spec".

      At least you got one part of your comment right: Waterfall methodology is was stale dinosaurs use.

    2. Re:methodology for noobs by Aladrin · · Score: 3, Informative

      I question whether you really get Agile, either. Yes, the requirements for the entire project are not given up-front. But the requirements for each sprint are.

      Working without requirements is crazy and is guaranteed to destroy your sanity. Without requirements, you cannot estimate anything and you never know when you are done.

      Yes, requirements can change in Agile, but never in the middle of a sprint. If the boss wants to send it back because it's the wrong shade of blue (despite that being the shade they picked) they will know exactly what it will cost them to change the color, and they'll get to decide exactly what sprint you'll do it in.

      --
      "If you make people think they're thinking, they'll love you; But if you really make them think, they'll hate you." - DM
    3. Re:methodology for noobs by Anonymous Coward · · Score: 0

      Exactly my point. I think you meant to reply to the parent on this though? Or are you also one of the ones that really needs hand-holding on every single step to understand my comment?

      Let me give you more specifications on my comment so you don't have to make assumptions (clearly making an ass out of you and mption.
      The example of "a" was referring to the common approach of "throw it over the wall" which leads to mis-matched expectations and crappy products. Short, measurable, defined deliverables are the best way to get accurate estimates quickly and to deliver what the customer wants/needs. Even in this situation, claiming "it wasn't in the spec" is generally what I call the coward's way out. There should be discussion and clarification around acceptance criteria for each deliverable.

      Example "b" was specifically targeted at the belief that it's "safer" to define an entire project completely before starting any coding work. Anyone that believes specs do not change clearly doesn't get it. As for your example, I strongly disagree. Requirements can and do change in the middle of the sprint. It's better to avoid that but sometimes it happens and so re-estimation may be needed and there may be a sprint rebuild. If you're doing rebuilds every sprint then you have a problem but it is something that happens. In the case of something as simple as a color, part of the acceptance criteria may be to work with a key stakeholder to finalize a specific value or parameter and that can be worked into the estimation.

      Now I know I didn't use the close parens (--that's short for parenthesis just so everything's clear) after each quoted letter but hopefully this doesn't overly confuse you and you're still able to understand my comments.

  17. Unit testing in C++ by nanogiga · · Score: 1

    Maybe not so related to the story, but anyway:

    Game developers typically use C or C++ (at least the ones that create processing heavy 3D games), and it doesn't help that the open source frameworks for unit testing in C++ are not too great. The problem is that there are about 40 of them (see http://en.wikipedia.org/wiki/List_of_unit_testing_frameworks#C.2B.2B), many developers spreading their talent over their own creation instead of working together on something good. We use UnitTest++ at work, and it hurts to see that the mailinglist is about dead, with interesting proposals getting no answer, and no updates since 2008. GTest seems better, but we can't switch just like that.

    Contrast this to Java, where you basically have JUnit and TestNG in healthy competition.

    There are commercial options, like UquoniTest (see http://www.q-mentum.com/uquonitest.php) which has great features, but I'd rather wait until they're compatible with UnitTest++ (as they promise on their blog), and Cantata++ (see http://www.ipl.com/products/tools/pt400.uk.php) which has code coverage.

  18. Zer0 Day gets closer by Anonymous Coward · · Score: 0

    Microsoft has published empirical data that shows that the process overhead for TDD increases the development effort by 15% - 35%

    1. Re:Zer0 Day gets closer by Anonymous Coward · · Score: 0

      And do you know why?

      Because when you do TDD you actually test stuff! You don't just go around promising to "test it next week."

  19. dumber than rocks? by Anonymous Coward · · Score: 0

    I have to say I'm amazed at how many idiots there are here. Has anyone on here really implemented or participated in a well-run agile process? Yes I said process because that's what it is.

    The article comes across as thoughtful and presenting a well formulated view but completely misses some of the fundamental tenets of the agile manifesto. For example, valuing interactions over process does not mean you create a chaotic, wild-west environment. It simply means you do not rely on process to strictly guide you but expect people to talk through problems and quickly identify solutions rather than apply process for the sake of process.

    An agile development environment, whether Scrum, XP, or a customized hybrid approach (truly taking agile concept to heart) creates a repeatable framework for delivering quality results quickly. A good agile environment will have a cadence that let's developers focus on technical solutions. It give managers a consistent window to see how work is progressing, to ensure requirements are met, and to quickly and easily adjust based on review, feedback, testing, etc.

    I'd also point out that the writer of the article said the following in his article, very clearly NOT stating that agile was the cause of the problem:
    Developing software is hard and developing games is particularly tough. We only have to look at the software development landscape to see the rotting corpses of failed projects as evidence of this fact."

    The key responsibility of management is to help prioritize what gets developed when. If you don't capture and prioritize the development of fundamental systems (read: game play mechanics and physics) early on then this sounds to me like piss-poor management. You let high-risk items sit until late in the process. The more tightly coupled various elements are, the more critical the prioritization process.

    I've actually heard some state that "it should not be a random walk". No shit? Thanks brainiac. Anyone that thinks that is what an agile process entails has no idea how to manage. Now please step aside so the team can work on incrementally delivering on the long-term product strategy and goals I've prioritized and roughly mapped-out (with their help).

    Oh, did I mention I come at this from slightly outside the development team in a product manager role? And it STILL makes sense to me and helps me be more effective in my role.

  20. Agile without user feedback!??? by Aceticon · · Score: 3, Interesting

    The essential philosophy of Agile is that development should be done in tight cycles were small self-contained features are designed and implemented, followed by user feedback while planning for the next cycle.

    This process is intended to cope with a couple of problems from the old waterfall model, such as:

    • End users of a system have needs but they don't know them fully and correctly up-front, so a fully defined requirements document is impossible. Tight cycles of feature-development-user-feedback facilitate user discovery of requirements and allow for small adjustments based on user feedback.
    • It avoids the "As soon as we give the requirements to the IT guys we stop hearing from them for a year while all they tell us is that 'they're working on it'" problem. The end users of the system being developed become part of the development process in an Agile process - that brings all sorts of benefits like keeping them happy and getting quick feedback on potential problems.
    • The planning stage before each cycle helps with prunning of low-value-high-cost features. By having the user-stakeholder choose the priority of the features to implement in each cycle, the important features will not be left behind just because they didn't look important to the developers

    All that this has in common is the existence of end-users (which can be other systems, if your system does not have an UI), which have roughly defined needs (typically a business process) which the software being built will address.

    Now look at games:

    • The real end-users (gamers) need entertainment. They don't have a pre-existent process which the game would automate to achieve that - in fact some of the best entertainement comes from games that do things no games ever done before.
    • "Having fun" is an emotional state which depends on many things that are difficult to pin-down and that even change over time and depend on the user's mind-set: a way to make users achive it cannot be discovered as part of small interactive development loops
    • There is no typical end user that can act as a representative of the other users. In fact a successfull game aims to entertain as many sorts of users as possible and as cannot be tunned to the wishes of only some users
    • Games are often one-pass entertainment: you play it once and then you never play it again. This means that any users trying the game in between the tight development cycles of Agile would quickly become useless as test-subjects (as boredom overwelmed fun)
    • The programming part of a game is often the least important bit of it. In fact in most modern games the code just powers the rules engines (for the mechanics of the games) and the graphics engine (that gives shape to the game world and displays the artwork) and is at it's best when it's not noticed.

    So games don't usually fit in the (software development context) pattern for using Agile development methodologies wholesale.

    At best, some games might have a creative person behind it with a vision which can serve as the user-stakeholder, but even then often the "vision" is vague and can change a lot over time (a "vision" is much less prone to a continuously-improving discovery process than a "business process" - in fact if the person with the "vision" is not methodical, you end up with a process where a cycle is just as likelly to take the software closer to the "vision" as it is to take it further way from it).

    To repeat the often heard (but seldom heeded) motto: "There is no silver bullet!"

    1. Re:Agile without user feedback!??? by funwithBSD · · Score: 1

      Then that werewolf is going to chew your ass up...

      --
      Never answer an anonymous letter. - Yogi Berra
  21. I only read the title by Anonymous Coward · · Score: 0

    Agile does not seem like a very good choice for game development (with a few exceptions).

    A better methodology for game development would be rapid application development, because:
    You want to make a model of the system before implementing it.
    You want to make prototypes.
    You are not planning on "maintaining" the system for years to come, you want it to be done relatively fast.
    Almost none of the benefits of agile apply to game development unless its some kind of constantly running, constantly changing MMO.

    Other good methodologies:
      * Contract Driven Development
      * Model Driven Development

  22. process is something to tread carefully with by jabjoe · · Score: 1

    I can see some form of structure is useful, but people seem to always get carried away with it, which sets of a cascade of bad things.

    Things take longer -> enthusiasm drops away -> it becomes just a job -> people lose interest in talking and reading about the technology -> their learning slows or even stops.

    I believe process and structures should be applied very very carefully, and more often than not, sparingly. I believe chaos, common sense and "yeh that works for us" can combine to come up with simple processes and structures that work best. I don't doubt things can be learnt from other processes, but it is a slippery slope to walk on.

    1. Re:process is something to tread carefully with by DragonWriter · · Score: 1

      I believe process and structures should be applied very very carefully, and more often than not, sparingly. I believe chaos, common sense and "yeh that works for us" can combine to come up with simple processes and structures that work best.

      IME, places that reject formal processes citing that kind of reason tend have worse results than the worst of the "slavish adherence to inappropriate process" places. Any process should be flexibly applied (generally; there are probably some areas where there are good reasons to fairly rigidly apply particular processes), but not having a sound basic structure to start with and vary around as situations require tends to mean that every project starts out behind because you don't have a baseline to work from, and people either waste time reinventing how things are going to work at each stage of the process, or just go blindly charging off with conflicting assumptions that result in problems down the line.

  23. Was it ever Agile? by SharpFang · · Score: 4, Insightful

    The problem is not in "Agile" methodology.

    The problem is in "Mongolian Clusterfuck" methodology, called "Agile" by managers who think "Mongolian Clusterfuck" isn't catchy enough.

    Agile sets short reachable targets, and reiterates and modifies them upon reaching them. The cycle is 2-4 weeks.

    Mongolian Clusterfuck is similar, but the cycle is 2-4 hours and the targets that haven't been reached are abandonned half-finished.

    Agile has specs that accept modifications when the customer requests them. Mongolian Clusterfuck has specs that change every time your boss stops by.

    Agile has daily meetings of what problems to solve and how. Mongolian Clusterfuck is "this is broken, leave whatever you're doing and fix it now."

    Agile has one clear set of goals of a golden middle between performance, stability, portability, cost, time and maintainablity. Mongolian Clusterfuck has two. Simultaneously.

    Game development is exceptionally prone to Mongolian Clusterfuck methodology. And then people who never knew Agile think it sucks bad.

    --
    45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
    1. Re:Was it ever Agile? by Pond823 · · Score: 1

      Mod this up! We're already talking MC vs Agile in the office now.

    2. Re:Was it ever Agile? by Anonymous Coward · · Score: 0

      I'm glad you pointed out that thing about bug fixes. We're having that problem right now. We're expected to fix any and all bugs that appear -as- they appear, but still keep our time-table for the sprint. The bugs aren't even assigned to us or discussed, we're just supposed to each do a certain number of them.

      I'll have to see if I can't find something online to send in so they'll see how deadly this is to the process.

    3. Re:Was it ever Agile? by Anonymous Coward · · Score: 0

      Game development is exceptionally prone to Mongolian Clusterfuck methodology.

      Most big corporate business software development is exceptionally prone to Mongolian Clusterfuck methodology. /big corporate business software developer

    4. Re:Was it ever Agile? by fusiongyro · · Score: 2, Interesting

      Everyone who is annoyed at this article seems to be claiming that the author hasn't experienced agile as it should be practiced.

      I have some experience with another methodology, cleanroom software development. The idea behind is, you make a detailed specification, you implement all the code with copious annotations, explaining each line of code. Then you have a big code review, in which each line of code is viewed and the engineers all agree that it correctly implements exactly the specification of the line above it, and that each specification performs part of the overall goal of the program.

      After you do all that, you compile and run the program for the first time, and start counting how many bugs you have.

      The interesting thing is that cleanroom has been proven many times to produce an order of magnitude fewer bugs. Looking at the method, it's hard to imagine how it couldn't. It has a reputation for making the maintenance phase much lighter, because there are so few problems. Yet, when most people hear about the method, their reaction is revulsion at the overhead and the perceived costs (though in practice, it's been shown that the up-front cost may be higher, the overall cost of the project usually is lower.) Why could this be?

      Perhaps these different methods exist because people are different and groups have different priorities. For many people, high turnaround is more important than the lowest bug count, and thus, they choose agile. I tried it and I found it was a poor fit for me. The other partners in my company couldn't stop telling the clients that we used this method, but we never found a client proactive enough to actually make it work. They were shitty clients, sure, but they were the ones we had.

      Agile belongs to the class of things which can be disliked for what it is, even by people who know what it is supposed to be like.

    5. Re:Was it ever Agile? by SharpFang · · Score: 2, Insightful

      Right methodology for right use.

      Standard Waterfall for a clearly set goal with specific purpose and function, unlikely to evolve, well known and specified.

      Agile if you don't really know where you're going, trying various approaches to see which works, soft metrics like "it should be fun".

      Cleanroom for short code for known and unchangeable specification, where bugs are not acceptable.

      Waterfall is good for business apps. Cleanroom is great for embedded and mission-critical. Agile feels just like the right thing for gaming and entertainment.

      Imagine writing a game like Zelda or Final Fantasy using Cleanroom methodology. I can't. Programming as art will produce awesome results, programming as science will get you nowhere. Now imagine a GSM base station programmed with each developer contributing some feature, and iteratively trying to get the job done more bug-free and more standard-compliant than the previous version...

      --
      45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
    6. Re:Was it ever Agile? by Deosyne · · Score: 1

      I can't imagine any large scale game being designed by the programmers. That's what designers and producers do; programmers and artists then take the design and make it work on screen as close to the design as possible.

    7. Re:Was it ever Agile? by fusiongyro · · Score: 1

      "Waterfall" is a myth. As this article shows, the actual methodology that created the myth was explicitly cyclic, taking a batch of requirements, specifying them, implementing them, testing them and repeating. "Waterfall" has only ever been a straw man to be attacked by agile proponents. It's easy to make people who have no methodology at all feel like they must have been doing waterfall all along, when they weren't.

      Agile might "feel" better for games, but when you have to produce a product that gets pressed on a CD or DVD and run on an embedded system which may not have internet access, it seems to me you need to reach a point of correctness.

  24. Orientated. by ericvids · · Score: 2, Interesting

    I stopped RTFB'ing when I read the word "orientated."

    His choice of words betray his place in the hifalutin versus technical continuum.

    Oh crap I said "continuum", I'm turning into one of them droids! I'm meltiiiiiiiiiing...

    --
    Pet peeve: Profane people propagating perfunctory pedantry.
    1. Re:Orientated. by Chapter80 · · Score: 1

      I stopped RTFB'ing when I read the word "orientated."

      A friend of mine from Indiana spent a year in Japan. During the first 3 months, he felt very out of place. Then he got orientated.

  25. Excellent article against Agile by Civil_Disobedient · · Score: 2, Informative

    Good Agile, Bad Agile by Steve Yegge at Google is an excellent article on the pros and (mostly) cons of Agile development.

    Personally my single biggest problem with Agile is that it specifically de-emphases code ownership (mental ownership, not economic). In my experience as a developer, the only way you get people to go the extra mile on a project (working nights, weekends, whenever and whatever it takes) is when they feel like that code is theirs.

    The other big problem I have is that whenever I see someone talking about Agile development it always feels like they're trying to sell me Amway products. It has the same, almost proselytizing tone that a Born-Again preacher takes when they're holding out the money-jar.

    1. Re:Excellent article against Agile by Anonymous Coward · · Score: 0

      Haha, yeah. I always say that going to Agile is a stepping-stone to going to India :)

    2. Re:Excellent article against Agile by IIRCAFAIKIANAL · · Score: 1

      Some would say that if you're working nights and weekends, that's a sign you need a better iterative development methodology (like agile).

      My experience has been contrary to yours. Having everyone own the code means that people don't throw bugs over the fence to the only dev that is working with that bit (who happens to be on vacation for three weeks); instead, they fix the damn bug themselves and, if they're not confident about the fix, send a note to the guy that knows the most about that code.

      I don't think Agile is a silver bullet. I think iterative development with frequent testing is generally a good thing, whether it's in the form of agile, rup, whatever. Doesn't have to be Agile.

      --
      Robots are everywhere, and they eat old people's medicine for fuel.
    3. Re:Excellent article against Agile by Civil_Disobedient · · Score: 1

      people don't throw bugs over the fence to the only dev that is working with that bit (who happens to be on vacation for three weeks)

      Yes, this is the biggest threat with code ownership--having to rely on that "one guy" to fix something means you're fucked if that person gets fired or hit by a bus.

      The answer to this is what I like to call the sensei-model. One dev is a code owner, and another dev is their shadow. It's the code owner's responsibility to ensure their shadow knows the code as well as they do. Usually this is accomplished by starting them out on small fixes or features so they can get a feel for the structure.

      Businesses are afraid of letting developers feel like it's "their code" but in every case I've seen, when you have people who have no sense of ownership you get shit code. Absolute abominations. Why? Because the developer couldn't care less about good structure as long as it "just works." Which is fine and dandy for their release, but heaven help the poor sucker that has to maintain their crap.

      Which inevitably leads to more crap piled upon crap. "Well, what's the point in rewriting this awful code? I'm not going to take the time just to make it architecturally sound, because it's not my baby anyway. I'll just tack on my functionality and send it on its way."

      Some would say that if you're working nights and weekends, that's a sign you need a better iterative development methodology (like agile).

      HA! You try justifying a major rewrite just to make things "structurally better" to the pencil-pushers and they'll come back to you with three letters: R.O.I. "So, let me get this straight: you want to take a few developers and rewrite something that already works, and in the end after however-many weeks, we end up with a product that's exactly the same in terms of features?" Yeah, right.

  26. voted for Obama, then voted for Brown. by recharged95 · · Score: 1

    "I am not a partisan of either camp. I am only interested in results and do not have the time or inclination to advocate a particular point of view."

    Great, another swing voter ;)

  27. Post-agile world? What? by MobyDisk · · Score: 1

    Every year at GDC they have more and more Agile workshops. Seems like every studio I know is using scrum. I don't see any indication that agile is going away at all. Certainly there are agile projects that have failed, as have waterfall projects. But it really sounds like the author had some bad experiences with bad project management, and decided to blame the entire Agile methodology for it.

    From what I've seen, game projects involve milestone deliverables based on the publisher requirements and events like GDC or Leipzeig. Within those milestone timelines, they use agile methods to adapt to changes and keep on schedule.

  28. Agile clearly means something else than I thought by tsa · · Score: 1

    How cool is that: a whole article of which I didn't understand one word because I thought it was about making games for people who are not so agile anymore as they used to be, so they need games that rely on wit and intelligence rather than fast reactions.

    --

    -- Cheers!

  29. Fixed price by mahadiga · · Score: 1

    I'd recommend Agile to http://en.wikipedia.org/wiki/Fixed_price projects.

    --
    I'd like to buy homeland for our 10 million people. http://twitter.com/mahadiga