Slashdot Mirror


Using Agile Methodologies To Make Games?

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

236 comments

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

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

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

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

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

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

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

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

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

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

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

      Tell that to my fiance!

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

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

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

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

      Because managers don't trust engineers.

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

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

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

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

      Magic-minded lot, all of them.

      --
      Ignore this signature. By order.
    4. Re:The Bane of My Existence by JeanBaptiste · · Score: 0, Offtopic

      I did last night ;)

    5. Re:The Bane of My Existence by Anonymous Coward · · Score: 2, Insightful

      You're right. And there's another reason, because many engineers have tunnel vision and cannot grasp that each project has dimensions involving a) the customer, b) money, c) limited time, d) getting it done now instead of wanking around building the Worlds Most Beautiful Piece of Software.

      Every system is broken. Some systems are less broken than others. A new system always has a promise of the better, until we've used it and know for sure.

    6. Re:The Bane of My Existence by cp.tar · · Score: 2, Insightful

      You can have it done cheap, fast or well.

      Managers mostly want cheap and fast. Engineers want well.
      And generally, you can only have one of the three.

      --
      Ignore this signature. By order.
    7. Re:The Bane of My Existence by rabun_bike · · Score: 1

      I could not agree with you more. What kind of opened my eyes was an article in the ACM about why we use software methodologies. The uptake is that most methodologies are not created by developers. They are created by managerial types to control the development process by non-developers. They are control mechanisms to build in accountability and usually they weight down the process. The most problematic issue these methodologies fail to address is that software does not live in our nice, easy to understand and relate to concrete world. Physical controls don't work well with the software development process because the medium that it attemps to control is not concrete. The software program itself is an abstract idea. I think this is why so many non-software types like to spend so much time meeting and discussing the few somewhat tangible aspects of software: colors schemes and UI design.

      The other interesting aspect I have observed is that companies, consultant firms, and software companies have been looking for and preaching the 'silver bullet' methodology for years. Of course there is no silver bullet so they just keep coming up with a better looking bullet than the last one. It's like the never ending treadmill. As long as the bullet looks good enough to sell the industry does forward. The interesting aspect of this is that all these methodologies create jobs for companies that sell their services as they go through a life-cycle. These services and products come in the form of methodology training, lectures, books, middleware, software, consulting, code generators, programming languages, you name it. The 'buzz' motivates companies to buy services. It's craziness to those who have seen several of such methodologies rise and fall over the years. It's like pop culture. People forget and can't get enough of the latest song or singer. And each methodology must have one or more celebrities.

    8. Re:The Bane of My Existence by heinousjay · · Score: 0, Redundant

      Perfection is the bane of existance. Nothing will ever attain the state.

      Also, that's a false trichotomy. Things are possible in degrees. We do live in a continuous universe, you know.

      --
      Slashdot - where whining about luck is the new way to make the world you want.
    9. Re:The Bane of My Existence by Jerf · · Score: 3, Interesting

      Why do we constantly look for the "next big thing" when the "big thing" is simply experience?

      To know how important experience is, one of two things needs to be true: You either need to have it, or you need to be someone who is still interested in "wisdom" in this knowledge-centric era, and be willing to listen to those who have experience, and pick the correct people who say experience is important and believe them*.

      Both are fairly rare.

      The rest follows from "rarity" in the obvious manner.

      (*: I believe wisdom is underrated nowadays, but I won't pretend that the problem of figuring out who to listen to is not itself hard.)

      The other thing is that there are next big things, but I suspect we are slowly but surely running out of "next big things" that will be comprehensible to more than, say, 25% of practicing programmers. Switch to Ruby, learn how to really use it, and add a good automated testing philosophy in, and you've gone a long ways towards extracting all the additional productivity you can get out of your environment without a major upheaval. For instance, I think it's reasonably likely (although not certain) that functional programming is finally going to come out as a reasonable paradigm over the next 10 years as it will be best able to take advantage of multi-core systems without completely upheaving how you write programs, but we're going to lose a lot of programmers on that transition, because it just doesn't click for some people. And that's a major change.

    10. Re:The Bane of My Existence by Junks+Jerzey · · Score: 1

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

      And that's essentially what Agile development is: a way of getting things done quickly without overscheduling.

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

      If by "new" you mean "12+ years old," then I agree with you.

    11. Re:The Bane of My Existence by prurientknave · · Score: 1

      we do?!!

    12. Re:The Bane of My Existence by startled · · Score: 1

      Because managers don't trust engineers.

      To give a counterpoint, our management is doing Scrum because us engineers asked them to.

    13. Re:The Bane of My Existence by swthomas55 · · Score: 1
      But in my case, the waterfall model was the textbook example of how not to do things...
      Yes, we "all" "agree" that this is true. That "waterfall" is too rigid, that you can't possibly know all the requirements up front, and that your "process" must be adaptable. And then management comes in and says "I want to see your full requirements, a Gantt chart showing all your milestones on this project, and your deadline is September for the whole project". And they hire a "project manager" to oversee the process who is apparently wedded to waterfall, and loves his Gantt charts.

      Sigh.

    14. Re:The Bane of My Existence by radtea · · Score: 1

      Why do we constantly look for the "next big thing" when the "big thing" is simply experience?

      Because experience without intelligence, taste and good good judgement is practiacally useless.

      Experience converts a bright young developer into a very good older developer. It converts a stupid young developer into a stupid older developer with a big ego and a bunch of fixed ideas about what's possible and what's not possible based on the irrefutable evidence of their experience.

      I've had the misfortune to work on projects with the latter type. The ones who "know" the estimation and scheduling are nigh-on impossible, because they've failed at them so many times. They either vastly over-invest in inappropriate scheduling and estimation efforts, which fail because no amount of effort can save you when you're stupid, or they say "why bother" and go at it peicemeal.

      It's well-known that stupid people are deficient in the judgement of thier own abilities, and nowhere is this clearer than in the kind of clueless loser who routinely fails to meet deadlines, and in response attacks the very possibility of meeting a deadline rather than looking at the stupid, stupid things they do that cause them fail over and over again.

      --
      Blasphemy is a human right. Blasphemophobia kills.
    15. Re:The Bane of My Existence by cp.tar · · Score: 1
      We do live in a continuous universe, you know.

      It's not continuous. It's quantum.

      --
      Ignore this signature. By order.
    16. Re:The Bane of My Existence by ichigo+2.0 · · Score: 1

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

      BadAnalogyGuy, is that you?

    17. Re:The Bane of My Existence by 99BottlesOfBeerInMyF · · Score: 2, Funny

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

      I agree. You can code much better on LSD.

    18. Re:The Bane of My Existence by jekewa · · Score: 2, Insightful

      They're not mutually exclusive. Instead, think of them as the corners of a triangle. You call them "cheap," "fast," and "well" (because it makes better sense gramatically) but call them "cost," "speed," and "quality" respectively.

      The general, and arguable, assumption is that customers are tied to cost, managers are tied to speed, and developers to quality. Usually the trouble comes from the priorty of each group. Customers tend to lean towards cost, speed, and quality. Managers tend towards speed, quality, and cost. Developers tend to go for quality, speed, cost.

      This also aligns with the two-sided client-vendor cost equation; customers want to pay less and vendors want to make more.

      Most people act as though they can only choose points only along the sides of the triangles, but this isn't really true. Sometimes it's just harder to recognize compromise to the gradients in the middle of the triangle. With this model, if you're on the line between "cost" and "speed", it appears as though you've completely sacrificed "quality."

      In reality you pick from anywhere inside the triangle, including smack on one of the corners. You sacrifice as you move away from the corners, so in the middle you have to compromise all three cost, quality, and speed.

      This is an often unrealized (and more often unrealistic) compromise.

      --
      End the FUD
    19. Re:The Bane of My Existence by heinousjay · · Score: 1

      That still works in my favor, since it means a project can be in a superposition of all three states.

      It's continuous on our scale anyway, unless you happen to be an intelligent subatomic particle, in which case I apologize.

      --
      Slashdot - where whining about luck is the new way to make the world you want.
    20. Re:The Bane of My Existence by Anonymous Coward · · Score: 0

      One e = Dude.
      Two es = Probably what you meant.

      But either is fine bi me. :D

    21. Re:The Bane of My Existence by Stellian · · Score: 1
      Why do we constantly look for the "next big thing" when the "big thing" is simply experience?

      I find it quite amussing they are trying to apply the latest buzzwords in coding, when coding is such a small part in a game. Just look at the credits of an average, $5milion+ budget game: there are hundreds of artists, but only a few programmers.
      A good game needs, in this order:
      - good game-play
      - good art (sounds, atmosphere, etc.)
      - good engineering
      The first two things are related to creativity, and I don't think they can be helped by agile development.

      I'm not saying a better graphics engine doesn't make a game better, just that most games that fail usually don't fail because of bugs or poor performance in the software. They fail because they are sucky games.
    22. Re:The Bane of My Existence by 1iar_parad0x · · Score: 1
      It is my opinion that using an incremental deliverable approach with frequent customer meetings and executive power at any point in the project is the most successful strategy. The "rules" you have to adhere to are up to you and should be purely a case by case basis.


      Isn't that the iterative methodology (e.g. the Unified Process and most Agile methods) in a nutshell?

      --
      What do you mean my sig is repetitive? What do you mean my sig is repetitive? What do you mean....
    23. Re:The Bane of My Existence by 1iar_parad0x · · Score: 1
      Why do we constantly look for the "next big thing" when the "big thing" is simply experience?


      When you do something once, it's science; when you do something twice, it's engineering. Experience is a funny thing. While I've learned a lot about software engineering, I still find differing problem domains to be challenging. Methodology doesn't just help me document a process, it allows me to wrap my head around a big COMPLEX problem. How do you solve a problem without solving it? You can't. Sure, it would be great if I could build an accounting system after I just built an accouting system, but life doesn't work that way. I'm also taking a shot in the dark that your average client doesn't want you to hack together a solution for them.

      --
      What do you mean my sig is repetitive? What do you mean my sig is repetitive? What do you mean....
    24. Re:The Bane of My Existence by Bombula · · Score: 1
      Yay! Let's mod all the management-bashing posts +5 Insightful!

      Seriously, this hyperbolic Dilbertization of management is silly. Yes, plenty of organizations have poor decision-makers in place. But that does not make managers inherently evil or useless.

      I am an anthropologist now, but you might be surprised to hear that my undregrad degree is in management. That doesn't automatically make me a good manager, but it means that I can easily tell the difference between good management and bad management. I don't know how many engineers posting in this thread have management experience, but I'll just quickly give the other side of the coin (with less hyperbole):

      Management is about one thing: making decisions, and taking responsibility for them. That is the entirety of management's function. This function is undertaken to whatever purpose is outlined by the organization. Want to build a space shuttle? Management's job is not to design it or build it, management's job is to make the decisions about how finite resources can be directed to achieve the stated purpose with an optimal balance of speed, efficiency, cost, and risk.

      The challenge lies in the fact that resources are always finite. If they weren't, there would be no need to decide between options at all. Managers rely on information in order to get their jobs done, and that information comes from their units of production - such as engineering teams, programmers, architects, physicists, or whoever else happens to be a cog in the machine. Software is just one small part of that entire process, but it's a tricky one because there are a lot of uncertainties. That makes the information that comes to management - how much will it cost, how long will it take, how fast will it run, how well will it work, etc - less reliable than information that comes from, say, a steel contractor.

      Some managers are better than others at getting the information they require from their units of production. And of course some managers are better than others at using the information they get, since information is never perfect and always contains uncertainties.

      Obviously software engineers have a tough time with managers, but just so you're aware, managers have an equally negative sterotypical characterization of software engineers: as individuals or teams that are notorious for providing poor-quality management information, partly as a consequence of the nature of their work, and partly as a consequence of abysmal communication and interpersonal skills. I repeat: this is a sterotype. It is true no more or less often than the negative stereotypes of brainless, clueless Bad Guy managers.

      I see an awful lot of, "our idiot managers don't understand anything about the work we do." Fair enough. But it is equally clear that an awful lot of software engineers don't understand anything about what management does. And they would do well to try to learn a little bit, because it will improve the infomation they deliver to management and thereby improve not only the relationship but the final result as well.

      --
      A-Bomb
    25. Re:The Bane of My Existence by billcopc · · Score: 1

      I'm all for transitions.. if raising the bar will weed out all these "me too" programmers who are really nothing more than copy/paste coders, it will yield a brighter future for those of us who truly belong in this field. Programming is NOT about talking C++ or Java or x-flavor-of-the-hour, it's about finding innovative and creative solutions to real problems.. aka thinking outside the box. Any teenager can learn C and put together yet another hopeless operating system, just read the docs, peek at existing code and learn by trial and error. The harder part of software development is actually identifying the problem and finding the best way to attack it, while simultaneously considering time, effort, cost and future flexibility. It's a black art when done right.

      --
      -Billco, Fnarg.com
    26. Re:The Bane of My Existence by siriuskase · · Score: 1

      Management gets to set the real world priorities. It seems we've been stuck in a world where "first-to-market" is everything, because that's how you get the early adopters. There is a lot of truth to that because the early adopters obviously wants the first thing out, and the rest wait to see if they have a good experience. But, early adopters don't mind a few bugs, and good software kills the bugs in new designs fast. So the important thing is to make a good first impression and get rid of the bugs fast. If you can get the .1 version out while the competition is still working on the .0, ya win. Unfortunately, this prioritizes the bugs that customers easily notice ahead of the rest.

      --
      If you must moderate, please moderate as irrelevent, not something bad, because I'm sure someone will find this interest
    27. Re:The Bane of My Existence by Anonymous Coward · · Score: 0

      It is my opinion that using an incremental deliverable approach with frequent customer meetings and executive power at any point in the project is the most successful strategy.

      For better results add frequent inspections (weekly at least) of everything: specs, designs, code, tests, UIs. Code inspections, for example, find more problems than all forms of testing combined AND do so at 1/3 the cost. The best developers assume that their code will be thoroughly inspected, the worst developers assume their code doesn't need to be inspected.

    28. Re:The Bane of My Existence by ClosedSource · · Score: 1

      It really doesn't matter whether programmers use copy/paste, trial and error, or genius to achieve their goals as long as the application is good. I've seen hacked-up code that was very succesfull and I've seen companies go under because the programmers spent too much time worrying about the flexiblity of a future they insured would never happen.

      Frankly, I find elitism tedious. Create a great application and I'll sing your praises. Write a bad one and I'll avoid it. Either way, I don't give a shit what methodology you used.

  2. Most aggravating by neonprimetime · · Score: 3, Insightful

    because of the iterative process of Scrum and the short work cycles of Sprints, redirecting a project rarely results in large volumes of wasted work.

    I like this ... cause that last pair of words ... wasted work ... seems to hit my teams especially hard quite often right now. We'll finish LARGE tasks, perhaps bundle multiple items together into one large release (cause this is how management wants it) ... and by the time it gets to UAT testing many development hours have been spent ... and then the UAT tester will turn around and say ... nope ... don't need/want that ... and thus all those development hours are wasted. I'd love to get a workflow like SCRUM implemented in my workplace.

    1. Re:Most aggravating by Anonymous Coward · · Score: 2, Informative

      The studio I'm in uses this process and it really helps keep all the teams on the same page.

      Our team meets every morning at 11:00am and we discuss our progress and share any issues that come up. Interopability problems come to light very quickly and are dealt with in a few hours / days instead of months down the road.

      One thing that we say in our SCRUM meetings is, no sitting! Keeps it short, sweet, to the point and people are alert through-out the meeting.

      We try to break up all our tasks in to two day work chunks and keep a backlog of all items needed to complete the project (well, at least to reach our milestone goals). So we have a meeting at the start of each block, a meeting in the middle, and a meeting at the end of the block/start of the next. It's flexible and actually keeps stress to a minimum.

      One thing to keep in mind, SCRUM is not a place to discuss deep details of the system. It's mostly to keep everyone in touch and in the loop so try to stay on topic and not derail the SCRUM. Otherwise it's just a regular meeting ;)

    2. Re:Most aggravating by guruevi · · Score: 1

      And then when you finally do, you will complain because users can't get anything in the project anymore.

      I had to work with project management before using scrums. The management describes the scrums, the developers do it and then the user complains because the user doesn't want what management decided. And then the developers can't satisfy the users since management decides what goes in the scrums and the users don't have any influence anymore. This leads to bloated apps full of features that nobody uses and a lot of users being angry or leaving (like I did).

      As long as managers or sales people decide what needs to be in an application, then nothing will work right, it will get bloated and people will get angry (like Windows). If users or senior technical persons can decide or cooperate to define what goes in an app, the application becomes more useful and will have the features everyone need (look at open source programs). The difference is that management looks at revenue and how much they can make by putting in (insert random functionality here) and selling it or rolling it out in as little time necessary largely depending on what some external analyst thinks the future is going to bring or what people are going to want. When people that work with something daily get to decide, they know what is missing or not working correctly or completely currently and thus can have some useful feedback. Of course when the latter is true, you will have stable apps but the latest buzzword is not going to be supported (Blogging, Web 2.0). If the managers decide, they integrate blog-like instant messaging and web 3.0 tied in to the CRM in their ERP which nobody will use and won't be stable until someone defines an actual standard as to what Web 3.0 looks like after which the developers will have to change their apps leaving largely edited and/or unused code.

      --
      Custom electronics and digital signage for your business: www.evcircuits.com
    3. Re:Most aggravating by Anonymous Coward · · Score: 0

      My development shop just started using scrum. There are some features I like: testing and documentation are done sooner after development. You also figure out if you're going the wrong direction on some feature or another. But for the downside:

      1) Meetings, meetings, endless meetings!

      2) Artificial deadlines: you chose a set of features to include in the "sprint". One of them turns out harder to do than expected. What do you do? Why you work late and over the weekend to get it done before the end of the sprint for a deadline that's essentially artificial! If you have other tasks that you can't do because of the monster task that turned out too big, other developers who might not have as many things to do can pick up your extra work. This ignores the fact that certain developers may be experts in certain areas. It assumes all developers are plug-n-play. Sort of like saying nine women can make a baby in a month.

      3) More stress.

      4) ENDLESS (virtual) paperwork keeping track of what I've done, what I'm doing, when I start something, when I stop something, when I take a shit, etc.

      5) The lead developer chosen as the "scrum master" wastes all his time keeping up with the paperwork and progress of the team. He's one of our best coders and he spends a good chunk of one day every two weeks doing a fucking power point presentation for the sprint review meeting!

  3. The next big thing? by Anonymous+Brave+Guy · · Score: 4, Insightful

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

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

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    1. Re:The next big thing? by brunson · · Score: 1

      Yeah. A bunch of Harvard MBA idiots realized their methods sucked, so they watched how good programmers do it, then slapped a label on it, published a book and mandated it.

      --
      09F911029D74E35BD84156C5635688C0
      Jesus loves you, I think you suck
    2. Re:The next big thing? by AltaMannen · · Score: 1

      I think "vertical slice" is the paradiggum buzzword of the day. Anyone can be agile or scrum these days, but at the end of the day, who's got the vertical slice? I'd like one vertical slice of AI to go please.

  4. An interesting approach by Trevahaha · · Score: 2, Interesting

    My current project is using Agile methodology for development. It's great when you don't have full requirements at the beginning of the project. It would be interesting to apply this to games, and really makes sense. It seems like this would be much more organic approach and I could see it really useful in large games such as WoW where you can develop different areas while in production. A successful choice of methodology really depends on your project and what would be best for the team. Your choice of a methodology isn't a silver bullet to a successful project.

  5. Buzzwords aplenty by lawpoop · · Score: 4, Insightful

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

    Can someone tell me what this means?

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

      For example ... in Tomb Raider
      One team should concentrate on Lara's Face, one should concentrate on her chest, and one should concentrate on her Legs. No wait ... that's horizontal slices.

    2. Re:Buzzwords aplenty by hal2814 · · Score: 1

      It means that when the game is rushed out the door unfinished in order to meet a deadline, at least the portions that are completed will actually work.

    3. Re:Buzzwords aplenty by rs232 · · Score: 5, Funny

      "Can someone tell me what this means?"

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

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

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

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

      Some methdologies develop each subsystem fully then integrate them in a big bang at the end. Agile practitioners develop whatever parts of each subsystem are needed to support the features in the current iteration. If you think of the subsystems as layers, the vertical slice is the part of each layer that is being developed in the current iteration. The features should be prioritized in order of importance, so each iteration is working on the next most important feature or features. The idea behind all this is to always have some sort of working application.

    6. Re:Buzzwords aplenty by magicjava · · Score: 5, Informative

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

      Can someone tell me what this means?


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

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

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

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

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

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

    8. Re:Buzzwords aplenty by sammy+baby · · Score: 3, Insightful

      That was a fancy way of saying:

      1. You start with an extremely barebones (read: you'd never release this into the wild) program that actually runs, passes all its unit tests, and implements maybe one important feature. (eg: a shopping cart program which will show you the contents of a catalog.)
      2. With each iteration, you add a new feature, refactoring older code as necessary. Start with critical functionality and work your way down the requirements.
      3. Continue until the product is releaseable.

      The "vertical" bit means that rather than taking the "let's implement all the methods we'll need in the CatalogItem class first" approach (horizontal), you're trying to make it actually do something useful (eg, show a list of products) with each iteration.

    9. Re:Buzzwords aplenty by Valthan · · Score: 1

      That means I (I am hoping to be a systems analyst when I leave school) tell you (the programmer/team of) that this is what I want made to make said systems better. The way I tell you is by scribbly very obscurely(sp?) on a piece of paper (or napkin) that I want this to link to that thing over there with this type of connection, rinse and repeat. I then lay down a deadline that is probably not long enough and you get to put in a shitload of overtime cranking out the code for it based on my obscurity(sp?) and just hope to god you have what it is that I actually meant to impart to you with my scribblings :P

      --
      --Valthan
    10. Re:Buzzwords aplenty by Jhan · · Score: 3, Interesting

      At my current gig (OnGame ie. PokerRoom.com) we've been using a kind of modified Scrum. The idea is to start "El Project Grande", spend a day breaking the project into parts and deciding what depends on what, then spend another day in groups breaking down the parts into parts until you have tiny pieces which ideally will take less than 16 man hours a piece.

      You now have a big pile of tasks, sub-tasks, sub-sub-tasks and so forth with dependencies and time estimates (all set by the programmers themselves.) It's then up to the Scrum Master aka. "Get-those-assholes-off-our-back-person" to show the results to the customer and decide priorites.

      The priorities are passed to programming team, and they then plan the first "iteration". Now, the goal of every "iteration", which typically spans max one month, is to produce a fully implemented, tested and launchable subset of the complete product.

      Every day, all the coders have a *short* meeting (10-30 min). Each individual states what he is working on, what he's done since the last meeting, what he's planning to do until the next meeting and most importantly he's strongly encouraged to cry for help if he's blocked in any way.

      In addition to this there's an evil, buggy Excel sheet with all the (sub-sub-sub)tasks along the vertical, and days along the horizontal. It's each programmers responsibility to update estimated hours left for tasks he has been working on each day. NB! *hours left* It's prefectly alright to up the time remaining if you have unexpected problems. So a certain task may go "16 12 4 56" hours left.

      The main points of Scrum (for a programmer):

      • The programmers set all time estimates.
      • Individual programmers may change any estimates upward without hard feelings.
      • (In our version) The programmers hire new programmers.
      • The programmers allocate work among the programmers.
      • In fact, the programmers control their own work 99%.
      • The Scrum Master aka. ('Nearest-thing-we-have-to-a-boss') deflects all flack and handles all communication with harpies^W customers.)
      ...and that's how it's supposed to work in the best of worlds. In reality, however, the whole model crashes and burns if * The projects are to short (
      --

      I choose to remain celibate, like my father and his father before him.

    11. Re:Buzzwords aplenty by Jhan · · Score: 1
      Dog man it!! As I was saying, the whole model might work unless:
      • The projects are to short (<3 months)
      • Workload goes way up (who's gonna update the stupid Excel document)
      • The customer finds inside channels and pesters individual developers to "We just need this one thing fast..." ten times a day.
      --

      I choose to remain celibate, like my father and his father before him.

    12. Re:Buzzwords aplenty by alpinerod · · Score: 1

      I think they are talking about a game where you have to "create prioritized vertical slices that iterate on the most critical elements and features". Sounds exciting.

    13. Re:Buzzwords aplenty by CodeArtisan · · Score: 1

      Some methdologies develop each subsystem fully then integrate them in a big bang at the end. Agile practitioners develop whatever parts of each subsystem are needed to support the features in the current iteration. If you think of the subsystems as layers, the vertical slice is the part of each layer that is being developed in the current iteration. The features should be prioritized in order of importance, so each iteration is working on the next most important feature or features. The idea behind all this is to always have some sort of working application.

      Where this can run into trouble is when a team thinks this means no thought has to be given to the overall architecture of an application. They steam ahead designing small slices of functional code, in the appropriate priority, until they hit a new requirement that suddenly doesn't fit into the existing structure.

    14. Re:Buzzwords aplenty by Anonymous Coward · · Score: 0
      That means I (I am hoping to be a systems analyst when I leave school) tell you (the programmer/team of) that this is what I want made to make said systems better. The way I tell you is by scribbly very obscurely(sp?) on a piece of paper (or napkin) that I want this to link to that thing over there with this type of connection, rinse and repeat. I then lay down a deadline that is probably not long enough and you get to put in a shitload of overtime cranking out the code for it based on my obscurity(sp?) and just hope to god you have what it is that I actually meant to impart to you with my scribblings :P
      Hopefully your diagrams are easier to understand than your writing.
    15. Re:Buzzwords aplenty by __aaclcg7560 · · Score: 1

      When I was working at Atari as an lead tester, that was normally the case since the developers had to turn in a milestone that can be played from beginning to end, and, if the game needs to be shipped out in the hurry, the game was usually playable until the end where all the compromises are made.

      Except the developers for DBZ: Buu's Fury (GBA) had a very different idea on deliverable milestones. They provided the first third of the game at Alpha, the second third at Beta, and the final third at Code Release. They threw in all the cutscenes to cover the missing content to provide a "playthrough" to the end. Oh, boy, there was a lot of arguing over the milestone payments. The American version didn't have wireless support because there wasn't enough time to get all the kinks out, but the European version did since it came out two months later. The nice thing about this game is that the developer's had a 250-page design document instead of the usual five-page design document to get the first check.

    16. Re:Buzzwords aplenty by Kadin2048 · · Score: 3, Insightful
      "Hack something together that you can show the sales folks, and then keep adding to it with horrible kludges until you get something resembling the final product which complies. Ship immediately."
      I know you're being facetious, but that's exactly what I envisioned whenever I hear about these "agile" methodologies.

      I guess it's because I work on software where the tolerance for bugs is a lot less than it is (apparently) in desktop PC software, but I have a hard time seeing one of these methodologies producing clean code.

      If your application is going to get shipped and then never looked at again, I guess "clean code" might not matter, but if you're building an enterprise system, or writing a custom application that has to be maintained by other people later (people who probably aren't going to be quite so much of an 1337 h4x0r as you), it's a must.

      Documentation and specifications aren't just something that you do in order to satisfy the PHBs of the world; they serve a real function. A system that's been well-specified to begin with is much easier to fix later, at least in my experience, than one that's been produced during a death march and is nothing but a giant rat's nest of code.

      I could see the benefit of an "agile" development cycle for prototyping or producing a quick demo, but the idea of critical pieces of software -- software that your customers are going to depend on and that other people, months, years, or decades down the line are going to have to maintain and update -- being built this way scares me a little.

      Listening to programmers bitch about documentation is like listening to a bunch of carpenters bitch about architectural plans. Of course you could get the house built a lot faster if you just took 15 builders and said "hey you, build a wall here!" and "you, build a bathroom over there!" ... but I wouldn't want to live in the resulting house. Would you?
      --
      "Ladies and gentlemen, my killbot features Lotus Notes and a machine gun. It is the finest available."
    17. Re:Buzzwords aplenty by eyeye · · Score: 1

      Have you tried using Xplanner instead of a spreadsheet? It works very well.

      --
      Bush and Blair ate my sig!
    18. Re:Buzzwords aplenty by heinousjay · · Score: 1

      Listening to programmers make analogies is like listening to the sound a knife makes as it pierces your own chest. Sure, the sound may be interesting, but the pain drowns everything out.

      --
      Slashdot - where whining about luck is the new way to make the world you want.
    19. Re:Buzzwords aplenty by Anonymous Coward · · Score: 0

      You need to take this offline.

    20. Re:Buzzwords aplenty by mpaque · · Score: 1

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

      Can someone tell me what this means?


      It is an improved development methodology wherein the older spiral development methodology, which was characterized by repeatedly iterating a set of elemental development processes and managing risk so it is actively being reduced, is enhanced by managing stakeholder life cycle commitments via the LCO, LCA, and IOC Anchor Point Milestones with the degree of detail of artifacts produced in each cycle driven by risk considerations while considering critical stakeholder objectives and constraints, product and process alternatives, risk identification and resolution, stakeholder review, and commitment to proceed as part of concurrent rather than sequential determination of key artifacts--Ops Concept, Requirements, Plans, Design, Code - within each slice.

      The implementation of the methodology must be done with care so as to avoid hazards such as incremental sequential waterfalls with significant COTS, user interface, or technology risks, the exclusion of key stakeholders from each vertical slice, a lack of commitment to managing risks, and insistence on complete specifications for COTS, user interface, or deferred-decision situations.

      It is, in fact, a perfectly cromulent solution to modern software development bottlenecks.

    21. Re:Buzzwords aplenty by Anonymous+Brave+Guy · · Score: 1

      Sounds like a plan. Have your people call my people when you've got all your ducks in a row, and we'll take it to the next level.

      Erm... What were we saying again? :-p

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

      I didn't read all the replies, so I hope I don't repeat someone. But since some of the replies are a little off, I thought I'd speak up. The vocabulary is actually very specific to agile methodologies and it is important to understand what it means. So you ask a very good question.

      "Prioiritized" means that every proposed piece of functionality (including bugs) is prioritized in an ordinal fashion. So if you have 100 items, exactly one item has priority 1, and exactly one item has priority 100 (ditto for all the items in between). It is also *very* important that there is only *one* list of functionality (not one for "features" and one for "bugs"). Otherwise you have no way of determining priority.

      "Vertical Slice" means that each item is a user visible/testable piece of functionality. It's called a vertical slice because this means you will almost certainly have to touch code in many different modules, but the functionality that results is all related from the *user's* perspective (not the programmers!)

      "Iterate" means that when a vertical slice (aka item/issue/story/piece of functionality) is completed and integrated into the whole, it is reevaluated on a regular basis. Perceived defficiencies (regardless of whether it is a "bug" or not) create new items which are then prioritized into the queue of items. Again, this is done on a regular basis (every iteration -- hence the word "iterate").

      "iterate on the most critical elements and features" means that work is done on the items *in the order of prioritization* (which is why the prioritization must be ordinal rather than the traditional "priority 1-10"). Work is *not* done on items that are not at the top of the queue.

      This last issue is vitaly important, but counter intuitive. It means that you don't "plan ahead" for issues that are coming down the pipe. Why? Because more times than not the prioritization of today will *not* be the prioritization of tomorrow. This makes sure that you don't work on things that don't end up shipping. Also this makes sure that the code does not contain complexity from features that aren't implemented. It is the primary method by which agile methods improve productivity.

      These are not all the concepts that make up a sensible agile development method, but it's a good chunk of them. Defining a set of practices for an agile method takes some practice because there is a gestalt that happens when all the practices integrate well. If the practices don't integrate well you end up with a bit of a mess. The problem is that from my experience each team will require a subtly different set of practices.

      Hope that helps.

    23. Re:Buzzwords aplenty by andyatkinson · · Score: 1

      Glad to have captured your input on this dialog. Going forward we'll iterate through several processes, scanning for inefficiencies, to create any sort of syngery between group leads and developers. Formalization of process methodologies is paramount for accurate predictions and cost-effective decisions. You've got full management support on this project, lets keep the scope in bounds here and work on our "elevator speeches."

    24. Re:Buzzwords aplenty by plover · · Score: 1

      Well, you certainly *write* like a systems analyst. :-)

      --
      John
    25. Re:Buzzwords aplenty by Spaceman40 · · Score: 1
      Listening to programmers bitch about documentation is like listening to a bunch of carpenters bitch about architectural plans.

      The key difference being that architectural plans are generally a lot more precise than the documentation given to programmers.

      Thus, we bitch (as you put it).
      --
      I [may] disapprove of what you say, but I will defend to the death your right to say it.
    26. Re:Buzzwords aplenty by noone42 · · Score: 1

      I see what you're saying, and I understand where you're coming from. I wrote air traffic management software for a while, and if you want to talk 'zero bug tolerance', that's their highest priority. I now work in an agile shop, and while it is more chaotic than traditional practices, there are ways to direct agile methods so that you get clean, solid, and documented software. We're a small (35 person) company that writes an on-demand enterprise system. We've got a couple thousand customers and our app has had 4-5 nines uptime over the last three years.

      The key is to have one or two guys in charge who look at the big picture and decide how the program will be designed. We've got an architect managing interaction of all the hardware and software pieces. We've also got a project manager that goes more specifically into what is going to be done and which functionality will go into which components. At the start of a project, we get together, divide up user stories, and discuss generally how things are going to be implemented. This keeps your cowboy developers from throwing code into places it shouldn't be.

      After the initial planning, it's on the developers to keep the quality and documentation going. Pair programming helps make sure that people aren't deviating from the plan. Two practices that make keep code clean and reduce bugs are unit tests and code documenting. If you design unit tests before you start coding, it's easy to see if your code is breaking some other piece of the app. One other key is that you actually have to use those tests. There are tons of places that write tons of unit tests, but don't make it easy to test the whole system at once. Get a daily or, better yet, hourly build and unit test run going so problems show up while you're working on the code. If you document the code as it's written and in the code, you not only help other people know what's going on, you make sure YOU know what's going on. Our rule of thumb is that if you can't understand what's going on from the comments, you either wrote lousy code or commented it poorly. At the same time, the architect is documenting the big picture, so both the general view and the specific code are maintainable.

      We've got a small team and an app that we're adding to incrementally, but I think the same practices can be applied to larger projects. If you divide your group into teams and use agile practices on a small scale, having architects and management coordinate between them, a lot of these practices will still be valid.

      That's my spin on it, I'm curious to hear from people who have used agile on large scale apps.

    27. Re:Buzzwords aplenty by syousef · · Score: 1

      Actually the meaning is closer to:
      Divide your code/project into small pieces that do specific things, work on the pieces that are most important first, and plan on going through several versions before you have something complete that you're happy with.

      Or simpler still: Break the problem down into smaller pieces, and don't settle for your first attempt at a solution in code.

      In other words the exact same thing that's been said over and over again in computer science classes since the 60s.

      As I said in another post, when someone starts speaking like this - saying something simple in as complex and vague a way as possible - its time to hide your wallet.

      --
      These posts express my own personal views, not those of my employer
    28. Re:Buzzwords aplenty by Godeke · · Score: 1

      Two things to consider. First, even agile developers have master architecture designs that cover "the big stuff". Second, the test suite acts as a layer of documentation itself: if you want to know what an object does, inspect the test suite and you will know more than the vast majority of documents I have read will tell you. And... since it is executable, it is never out of date.

      On a completely unrelated note, programming is nothing like building a house. Unless your home builder can re-size rooms on demand, change the wiring to plumbing and do other amazing feats that code can do. Nor is it like building a bridge: unless your bridge builders can decide to connect two completely different cities over completely different terrain at the customer's request. Analogies to computing are always weak at best, misleading at worst.

      --
      Sig under construction since 1998.
    29. Re:Buzzwords aplenty by Surt · · Score: 2, Interesting

      We use an agile methodology for our enterprise code (deriving from SCRUM).

      The benefit in terms of reliability and maintainability is that typically multiple engineers are forced to work on any given piece of code before it reaches the maintenance stage. This will tend to force anything that is poorly written to get rewritten along the way.

      Specifications (really tight specifications) are a must for this methodology to work right. I can start building you the 1.0 version as soon as you hand over a really detailed specification. When the specifier gets v1.0 (the next day or the next week...), they're then typically allowed to say, okay, freeze development while I respecify, because this isn't what I really wanted. The advantage here is that you don't go through a year's development before discovering that the spec was way off. Instead, you wind up revising the implementation until the spec and the implementation are in agreement, and you wind up with a customer happy with the spec.

      Another rather important piece of agile/scrum is testing. Everything has to have lots of testing, and test driven development is the preferred model. From the spec comes the test, from the failed test comes the implementation, from the working implementation comes the passing test, from the passing test the spec is satisfied.

      It really can work. Where i'm working we're considered about 2 technology years ahead of our competition by our customers. Our customers do something like $100 billion of business on our software per year. Agile can work, and it can work well, and is a great fit for enterprise development.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    30. Re:Buzzwords aplenty by Anonymous Coward · · Score: 0

      It's where your publisher says: "We want one full level with all the gameplay elements in and playable by month 3", thinking that one level is 1/12 of the game and not realising that all gameplay elements means that although you had to build 1/12th of the art you had to write 11/12ths of the code.

    31. Re:Buzzwords aplenty by superlaughtive · · Score: 1

      Or at least until you get something resembling the final product which compiles.

    32. Re:Buzzwords aplenty by Anonymous Coward · · Score: 0

      bzzzt - you do not understand agile at all. Ive worked on enterprise systems for about 10 years and ive been using agile methodologies for the last 5 or so. Believe me, I havent been hacking together little desktop apps where bugs are 'tolerated'.

      I use agile methodologies BECAUSE it results in cleaner, better documented, more maintainable code.

      try it out sometime.

    33. Re:Buzzwords aplenty by Anonymous Coward · · Score: 0

      I work in games and have worked on a team where the silver bullet was the agile "verticle slice" bullcrap. You are right about one problem. Even if individual sections of code are well written (which isn't always the case) archtecturally it is a cluster. I spent more time "refactoring" things that should have been plan and done right the first time.

      The second problem is acutally a bigger one. Most games are not a collection of small parts put together. If you take the approach that you build something to show to marketing and just add to it that is exactly what you get: small little bits, cobbled together. I have talked with friends at other companies that have the same "agile" mindset and they say the same thing. In order to actually get something worth shipping, you end up hiding a guy in the back room to work on the big thing and just placate the marketing guys with the rest of the team generating krufty bit that sparkle in the lights.

      It is just one more sign of the sickness of this industry. We are driven by people who know nothing about how to make a product, who demand that they be shown something shiney even if it is crap and unrelated to the ultimate deliverable. So at least 50% of any project is spent making "shiney" for a bunch of knownothing asshole would aren't competent enough managers to go work in a real industry and think they are rockstars.

    34. Re:Buzzwords aplenty by clay_buster · · Score: 1
      If your application is going to get shipped and then never looked at again, I guess "clean code" might not matter, but if you're building an enterprise system, or writing a custom application that has to be maintained by other people later (people who probably aren't going to be quite so much of an 1337 h4x0r as you), it's a must.
      Agile is interesting but in conflict with some of the new S/OX mandates and with the staff realities in many companies. The energy/skill around a lot of enterprise applications goes down over time as people move off the project and as other priorities come up. We spend a year writing the software and then spend 7 years supporting it in production. Some/one member of the development team hangs around for a year but its all new folks after that. Does Agile generate code and documentaton that requires a high level of industry knowledge or experties? We're having a discussion about this line right now. Do we build an application that requires high knowledge to troubleshoot and update or do we aim lower with the expectation that less skilled folks will be maintaining it? Will they even know how to right unit tests with mock objects and all that?
    35. Re:Buzzwords aplenty by tshak · · Score: 1

      Listening to programmers bitch about documentation is like listening to a bunch of carpenters bitch about architectural plans.

      No, it's actually quite different. It's more like listening to a bunch of carpenters bitch about writing documentation about the architectural plans. You see, programmers by nature don't like duplication. That's what writing Word docs is. We've already got the detailed docs - it's written in a language suitable for the domain (e.g. C++, C#, Ruby, etc.). Then we've got to do it again. I'm not saying that some form of abstracted documentation is a bad thing. But to document the entire system on a detailed level twice in two different languages is wasted effort. Agile isn't about lack of discipline. It's about focusing that discipline towards more useful activities.

      --

      There is no longer anything that can be done with computers that is nontrivial and clearly legal. -- Paul Phillips
  6. Here's A Secret About Real Life Game Development by Anonymous Coward · · Score: 2, Interesting

    Any time you see someone interviewed about game development on the web or in a magazine chances are pretty good that the reason that person has the time to waste is they aren't valuable enough to be busy doing actual work on game development.

    You see them in the lunch room, outside with the smokers, hanging around in the halls of the building. Always talking about stuff with lots of buzz words, like say 'agile' for example, all sorts of very advanced sounding tech almost all of which they know very little about and rarely have had any real world experience with.

    If you are reading about game development on the Net you are most likely doing more harm than good to your understanding of the topic.

  7. Sounds like a formula for spaghetti-ware by cculianu · · Score: 3, Insightful

    Agile development with C++? Sure, it can be done. But one of the nice features of that language is its ability to model the application domain using Classes, Objects, Inheritance. If you don't take the time to model the problem correctly, you can painfully pay for it later on. Sometimes you get faster development times if you actually take a day or a week and model your problem so that it captures the essense of what you are trying to solve using objects, etc.

    An iterative approach where you use a greedy method of implementing each new feature as quickly as possible with little insight into the overall system may or may not produce optimal results. It can lead to lots of spaghetti code. Or maybe not. Certainly in my career that approach sometimes *has* led to cleverer solutions as I was forced to think up the best, simplest way to imlement them. But often it can lead to massive amounts of spaghetti code that doesn't make much sense or capture any insights into the problem.

    1. Re:Sounds like a formula for spaghetti-ware by TedSandwich · · Score: 2, Informative
      An iterative approach where you use a greedy method of implementing each new feature as quickly as possible with little insight into the overall system may or may not produce optimal results.

      You need to refactor the system when you add the features so that the system stays in balance with the new feature. Otherwise its just a hack.
      --
      "Two things are infinite: the universe and human stupidity; and I'm not sure about the universe." -- Albert Einstein
    2. Re:Sounds like a formula for spaghetti-ware by AuMatar · · Score: 1

      Which leads to a lot of code churn and a system where noone really knows what a given subsystem is doing, unless you were the last one to touch it.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    3. Re:Sounds like a formula for spaghetti-ware by magicjava · · Score: 1

      Agreed on the refactoring. I'll just add that the common practice of not writing code in order to gain insight doesn't have a very good track record.

    4. Re:Sounds like a formula for spaghetti-ware by Anonymous Coward · · Score: 1, Insightful

      Agile development does not mean that you don't take time to design, quite the opposite. Agile development methodologies encourage careful design, stressing modularity and maintainability.

      I have given up on trying to completely model the "application domain" from the project outset since requirements invariably change over time. Instead, the goal should be to create a flexible, maintainable and extensible application design. This is the core of agile development and in my mine is the only way to go, regardless of the language.

    5. Re:Sounds like a formula for spaghetti-ware by arbarbonif · · Score: 1

      Actually, no. You look at the test cases, they tell you exactly what the subsystem should be doing. And since the code passes all the tests, it tells you what the code actually is doing.

      You may not know how the system is working, but unless you need to change it you generally don't need to know that. And if you need to change it, the constant refactoring leads to a more streamlined design and commonly the system has evolved to the point where changes become easy...

    6. Re:Sounds like a formula for spaghetti-ware by nixNscratches · · Score: 2, Insightful

      It only sounds like that if you skip the important parts.

      Agile methods are not about skipping requirements, or modeling, nor about coding in a casual or non-deliberate way.

      Agile methods are about recognizing that requirements are a moving target, That the more you implement your solution, the better you will understand the model, and possible problems with your model of the problem domain, and that the best program on earth is worthless if it doesn't work for the end users.

      So, there's a large collection of techniques that most programming veterans (OO or otherwise) utilize to help get things up and running without having to send anyone "over the waterfall."

      Check out Dave Thomas and Andy Hunt, Martin Fowleror the Portland Pattern Repository for a good starting point.

    7. Re:Sounds like a formula for spaghetti-ware by _DangerousDwarf · · Score: 1

      I don't think you understand Agile very well. The concept of Agile documentation is to write just enough documentation to understand and communicate what you need. So yes you need an overall framework, but you dont need every single last feature planned down to the smallest detail.

      I agree that you can get some stringy speghetti code if you have a weak team. But, one of the most important tenents of Agile methodologies is that you must have _strong_ teams that are highly skilled, and with great amounts of personal motivation.

    8. Re:Sounds like a formula for spaghetti-ware by Jerf · · Score: 3, Insightful
      Which leads to a lot of code churn and a system where noone really knows what a given subsystem is doing, unless you were the last one to touch it.

      Two counterpoints:
      • This is different than normal coding practice how?
      • It's all about costs and benefits. Sure, there are the downsides you mention, but on the other hand, aggressive refactoring means you don't necessarily live with your first design forever and ever, amen, as (go figure!) your first design also happens to be your worst. So, is it worth it? Depends on your situation. But in my experience, between "code churn" and "first generation design enshrined in concrete forever", the former is very preferable on all but the shortest time scales. YMMV.
    9. Re:Sounds like a formula for spaghetti-ware by Anonymous+Brave+Guy · · Score: 3, Insightful

      But, one of the most important tenents of Agile methodologies is that you must have _strong_ teams that are highly skilled, and with great amounts of personal motivation.

      ...who, by definition, will produce good results using pretty much any methodology. The test of any business process is how much it helps the guys who aren't already good, not how much it helps the office guru.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    10. Re:Sounds like a formula for spaghetti-ware by Anonymous+Brave+Guy · · Score: 1

      You look at the test cases, they tell you exactly what the subsystem should be doing. And since the code passes all the tests, it tells you what the code actually is doing.

      Which is great, as long as your application is so trivial that you can faithfully demonstrate that it has the desired behaviour using only a limited number of self-contained tests. Unfortunately, real game developers write posts like this that make the flaws in that approach pretty obvious.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    11. Re:Sounds like a formula for spaghetti-ware by AuMatar · · Score: 1

      Except for the cases the tests miss. Or for the cases that we don't even know to test yet. Testing is good, but just because something passes a test suite does NOT mean its working. It means it passed a test suite.

      And my experience is exactly the opposite- rapid frequent refactoring ends up harming the design- people move it in different directions, and you quickly get duplicated functionality, inelegant solutions, and bad inter-system interfaces. If you find yourself needing to frequently refactor and you're not in the first few weeks of a new project, you didn't spend enough time on design.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    12. Re:Sounds like a formula for spaghetti-ware by AuMatar · · Score: 1

      THe better answer is planned refactoring. Don't undergo major code churn by refactoring willy nilly. Figure out what about the current architecture is sub-optimal. Discuss with your team ways to architect it better. Then implement them. But rapid refactoring just leads to badly designed, hard to maintain code.

      The exception here is on very small teams- 1 or 2 people. Then code churn isn't an issue because 1 person is doing all the churning. But thats not the normal case.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    13. Re:Sounds like a formula for spaghetti-ware by __aaclcg7560 · · Score: 1

      The example you cited is flawed. Unit tests are not supposed to test the game itself. (This is why you need live testers to break the game into a thousand pieces.) Unit tests are supposed to test each section of the code for unexpected behavior (i.e., off by one, divide by zero, not releasing memory, etc.) that normally slips in when developing code that can often be overlooked if not specifically tested for. It's better to catch this stuff early instead of just before the game is supposed to code release.

    14. Re:Sounds like a formula for spaghetti-ware by Jerf · · Score: 1

      There's a such thing as "unplanned refactoring"?

      No programming methodology I know of says "just shut your eyes and follow this recipe and you can stop planning and thinking entirely!" Now, plenty of people's misconceptions about methodologies incorporate that, but I've never seen anybody actually say that.

      XP, probably the one the most people think this of, really just says to pull your planning window in much closer to the immediate future than most methodologies do; nowhere does it say to not think at all, it just says not to think about the next use, only this use and the existing uses.

      (Personally I don't advocate something quite that radical, but I do agree that people do very often make the mistake of planning too far into the uncertain future and getting it wrong. However, while I won't pretend I can reliably see six months into the future, I am capable of discerning many needs I'll have next week, and I don't feel guilty about sometimes risking a bit of extra functionality built correctly into the system now rather than a refactoring later. But it is important to realize that every time you try to read the tea leaves, it is a risk, subject to standard cost/benefit and risk/reward analysis. XP goes a little too far by saying you should just set the benefit and reward to "0" in your planning.)

    15. Re:Sounds like a formula for spaghetti-ware by Anonymous+Brave+Guy · · Score: 1

      I don't disagree that that's how unit tests should be used, and in fact I'm writing this as a whole set of tests run on a change I've just made to my current project. But the approach advocated by a lot of the agile crowd, including the poster to whom I replied above, places unit tests on a pedestal. I'm sure you've heard their war cries: "If the unit tests pass, everything must be working right," they tell us, or, "The tests are the design." That sort of status simply isn't justified, and basing your entire development process on a poor assumption is no way to run a software project.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    16. Re:Sounds like a formula for spaghetti-ware by eyeye · · Score: 1

      Actually, no. You look at the test cases, they tell you exactly what the subsystem should be doing.

      No, then instead of having to parse the implementation code you have to parse the test code to figure out what the hell is going on, and since the same person who wrote the code will have written the tests then it will be equally opaque.

      I have been in the position many times of puzzling over someones totally uncommented implementation and tests.
      --
      Bush and Blair ate my sig!
    17. Re:Sounds like a formula for spaghetti-ware by AuMatar · · Score: 1

      Sure there is- unplanned refactoring is refactoring for what you need right now, as espoused by most agile methodologies.

      Planned refactoring is a thought out and designed out refactoring, taking into account current and future use cases. You take a list of problems with your current architecture, take a day or so, and figure out the best way to do it. Get input from teammates who need to live with your choices. As opposed to the agile method which frequently turns into "whats the quickest way I can hack in this feature?". Good planned refactoring is communicated ahead of time so your teammates know what is being changed and why.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    18. Re:Sounds like a formula for spaghetti-ware by Anonymous Coward · · Score: 0

      Not true. I have seen many strong teams tripped up and sent over the waterfall. In most cases by an unending string of requirement changes and in others by architects who insisted on designing down to the nth level of detail. In these cases it wasn't that the teams failed to create the software it was that they rarely got started with the software.

      A strong team that is allowed to do their job will almost always succeed. A strong team that is hampered from doing their job by process bureaucracy will almost always not succeed. A weak team is screwed either way.

    19. Re:Sounds like a formula for spaghetti-ware by knovis · · Score: 1

      As previously noted on multiple slashdot book reviews, 60% of the cost of an arbitrary medium-large (100K lines of code) project is maintenance, and 50% of such projects are total failures (never used).

      Agile methodologies are targetted towards folks who are using OO languages C++/C#/Java and who already have a nice handle on patterns (GoF).

      In that environment, over-planning is a greater cost to the project than under-planning. Why? Because you waste lots of time trying to architect around feature Q...and then the project requirements change before you get to implementing feature Q. Instead we need feature Q' which has an entirely different necessary architecture, and which we might also change by the time we get there. I, and the Agile people assert that it is _better_, given experienced, OO-pattern-thinking code-geeks to let them solve problem A, and then refactor to solve problems B+ as necessary.

      If they ain't willing to re-approach the problem with each iteration, and refactor as necessary, it ain't gonna work. If there aren't at least some leads who are experienced enough to snoop through the code and point out the necessary (or useful) refactorings, the it ain't gonna work.

      However, in my experience, Agile is like OO. Once someone starts doing things that way, and does a successful porject using the new approach, they never go back to the old way of doing things, because once you're there...it's better than the old approach.

    20. Re:Sounds like a formula for spaghetti-ware by 91degrees · · Score: 1

      On one hand I agree with you. However, High Moon have been using this methodology for some time, and on thethey report a good deal of success. I suspect that this is actually because of certain aspects of their process, rather than the complete methodology being the best way to do things. I do agree with the idea that too much design is just as bad as too little.

    21. Re:Sounds like a formula for spaghetti-ware by AuMatar · · Score: 1

      I don't know High Moon, but they could just have a good team. Good developers can make things work under just about any conditions. No methodology will save you from bad ones.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    22. Re:Sounds like a formula for spaghetti-ware by _DangerousDwarf · · Score: 1

      As an Anon has said, no. A bad and/or inflexible and/or autocratic and/or .... will demoralize, demotivate, and destroy your team. A more rigid process can help weaker teams, but will hamper strong teams. Some of the ideals behind Scrum are to empower your team, allow them to participate in the decision process, have real enlightened leadership, and most importantly deliver customer value. The old adage of the right product, at the right price, at the right time. An Agile process helps to deliver that. But if your team is weak, or you have a poor leader it can easily go awry.

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


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

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

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

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

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

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

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

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

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

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

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

    "The schedule can't move."

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

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

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

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

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

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

    "And you do."

    "Good. Then make your schedule."

    "We are mak-"

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

    Yeah, thanks XP.

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

    1. Re:Programming Methodologies Are Dangerous by Tsiangkun · · Score: 1

      I always wondered what was going on with Duke Nukem Forever, nice to hear from an AC on the inside.

    2. Re:Programming Methodologies Are Dangerous by Nimey · · Score: 2, Insightful

      That's not a problem with XP. That's a problem with your PHB.

      --
      Hail Eris, full of mischief...

      E pluribus sanguinem
    3. Re:Programming Methodologies Are Dangerous by hhr · · Score: 4, Insightful

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

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

    4. Re:Programming Methodologies Are Dangerous by finnif · · Score: 3, Insightful

      Your story there further proves... no matter WHAT the methodology is called, the old adage remains: "Quality, Cost, Schedule: Choose Two." Except in software, the other two can't always be fixed by spending more.

    5. Re:Programming Methodologies Are Dangerous by elmartinos · · Score: 2, Insightful

      Your problem is not XP, your problem is lack of management buy-in. No matter how you develop software, if your management does not support it, you have a problem.

    6. Re:Programming Methodologies Are Dangerous by gooseserbus · · Score: 1

      That reminds me of this Dilbert strip:

      http://img243.imageshack.us/img243/819/dilbertagil e8bc.jpg

      --
      Orwell was an optimist.
    7. Re:Programming Methodologies Are Dangerous by Anonymous Coward · · Score: 0

      Your story demonstrates what I consider is the largest problem with game development, the belief that more features makes for a better game. Personally, I think that the way to make good games is to pick one core dynamic of a game and develop that to perfection. Maybe I'm odd, but I've noticed that the games I have enjoyed the most (half-life 2, Mario Kart) tend to have the smallest scope of functionality and a decent budget and timeline to produce it; the worst games I have played tend to have tons of functionality that is poorly implemented.

    8. Re:Programming Methodologies Are Dangerous by Anonymous Coward · · Score: 2, Insightful

      Wrong. The developers should not worry about selling finished games, that management's responsiblity. I agree that 'keeping on budget' is a critical feature. But with agile methodologies, that is management's concern. Assuming that the developers were working at an acceptable pace, who made the decision to push back the release date?

    9. Re:Programming Methodologies Are Dangerous by DNS-and-BIND · · Score: 1

      Old adage? That's a new one. The old one is "cheap, fast, good, pick any two".

      --
      Shutting down free speech with violence isn't fighting fascism. It IS fascism!
    10. Re:Programming Methodologies Are Dangerous by Hylis · · Score: 2, Insightful

      Agile meets Santa when he wants

      your game should always be ready to ship with agile method since the most important features are done first, like the one that enables you to ship it. You may think as "milestone" versus "when it's done" but there is a third one: "when you want" and that's agile.

      the misunderstanding of the methodologies is dangerous and thats why methodologies are dangerous. This is the reason I don't listen to them: if they are more intelligent than me, I would not understand them fully and make mistake, if not, they are stupid and I don't want them.

      So maybe I am not talking about agile method and that post may be really useless.

    11. Re:Programming Methodologies Are Dangerous by StrawberryFrog · · Score: 1

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

      I think you mean "Never, ever, raise exciting new methodologies to greedy, power-drunk idiots...

      --

      My Karma: ran over your Dogma
      StrawberryFrog

    12. Re:Programming Methodologies Are Dangerous by Anonymous Coward · · Score: 2, Informative

      Bad Management is Dangerous. Always. This is not a problem with XP, this is a symptom of some basic problems:

      The Product Manager does not know the real business value of the features she is requesting. If the business value in profits was known, she would understand what the priorities of the team really should be. She would also know what the "MINIMUM" set of features are that the product needs to be profitable for her market/audience.
      The Project Manager does not understand that "HARD CHOICES" are required "EVERY ITERATION" by the Product Manager. You cannot add scope to a fixed team without moving the date. This is basic 101 project management, it is true no matter what methodology you use.
      The team does not know their velocity, and/or have not helped management understand what their velocity is, that it is fixed, and how changes in scope may not affect delivery dates, but addition of scope surely will.

      A very innovative gaming company uses XP and Scrum, they are http://www.highmoonstudios.com/ and they are very successful at delivery, without abusing their development teams, and harming the people in them... a rarity as I understand the broken painful world of software game development.

    13. Re:Programming Methodologies Are Dangerous by Tim+Browse · · Score: 1

      In other words, if someone is asleep at the wheel, it doesn't matter how good your map reading skills are.

    14. Re:Programming Methodologies Are Dangerous by syousef · · Score: 1

      No the developers made a mistake taking jobs where unpaid overtime is expected. But since that's the norm in the video game industry I guess I'm saying they picked the wrong job.

      --
      These posts express my own personal views, not those of my employer
    15. Re:Programming Methodologies Are Dangerous by Anonymous Coward · · Score: 0

      programming methodologies are not something (high) management should know much about.
      management gives you a design doc, a team and a deadline, whatever comes in between is engineering's problem.

      if the project manager is an engineer (which should be, but is most often NOT) then odds are you are already using some kind of
      methodology that is specifically tailored for the environment. The above discussion would have never had to happen unless the project manager is clueless

    16. Re:Programming Methodologies Are Dangerous by Anonymous Coward · · Score: 0

      Funny as the skit is, it sounds like the problem is not the methodology, but your inability to manage their expectations about it If developers "dutifully updated schedules" for "the next few months" without anyone drilling the continuing delays into management's head and getting explicit agreement, you made a mistake.

    17. Re:Programming Methodologies Are Dangerous by Fullhazard · · Score: 1

      So wait... Adding features adds time... Hmm... That means Duke Nukem Forever and Windows Vista will be the two best pieces of software ever written! Or possibly just the biggest pieces of software ever written. But seriously, 'agile' design techniques don't help game programmers, as most of the time there is little communication between the game creator and the 'end-user' during production. If the average game creator took advice from end-users, the average game would be "Pirates and Ninjas fighting Robots with NAKED GIRLS" (I'm not saying the average gamer is a pathetic idiot, just the average person who hangs out on forums for games that are several months from production.)

    18. Re:Programming Methodologies Are Dangerous by tshak · · Score: 1

      This is not XP. For every task added to the bucket, one must be taken out. Either that, or the schedule changes. Blindly adding new tasks every iteration is not what Agile is about.

      --

      There is no longer anything that can be done with computers that is nontrivial and clearly legal. -- Paul Phillips
  10. Mumbo Jumbo by Anonymous Coward · · Score: 3, Funny

    Sounds like more touchy feely mumbo jumbo to me. Coffee, red eyes, bad breath, late nights, divorce... that's how software gets done dammit..

    1. Re:Mumbo Jumbo by Webz · · Score: 1

      While reading the list, I was about to recommend some over-the-counter drug like Nyquil, but when I reached divorce, I was at a loss. Nyquil can aid many things, but probably not divorce. =)

      (or "wife aggro" as I've recently learned it)

  11. Cleanroom methodology by Anonymous Coward · · Score: 1, Interesting

    This article only compares two methodologies, but does not include my favorite. Cleanroom methodologies require documentation and some planning up front, which I firmly believe in the need for. In addition, it is also about getting something working in an iterative process.

    http://en.wikipedia.org/wiki/Cleanroom_Software_En gineering

  12. Agile methods suck by Anonymous Coward · · Score: 2, Interesting

    We're using them where I work. They cause a huge mess in communication and a lot of grief for the developers. It also allows the designers to change their minds on a whim - which means that the project keeps stalling.

    SCRUM doesn't keep a history, so you have no way of checking to see if your estimates are historically too high, too low, or all of the above, and so there's no way to see if you're going to hit things on time.

    There is no magic bullet. And when you've got a lot of people who need to keep working together, agile methods are useless. It's great for small groups (3-4 people), but don't bother if you've got 150 people, all with complex interdependencies. You just end up with blockage soup, and people getting pissed off.

    1. Re:Agile methods suck by ammoQ · · Score: 1

      SCRUM is basically a management method for projects of any kind and not specifically targeted to software.
      In other words: If SCRUM is the only method in place, you have not software development method at all.

    2. Re:Agile methods suck by 91degrees · · Score: 2, Insightful

      They cause a huge mess in communication and a lot of grief for the developers. It also allows the designers to change their minds on a whim - which means that the project keeps stalling.

      You're doing it wrong. If desingers don't like something, it gets left to a future sprint. Remove things from a sprint by all means. You can always use the freed up time for something, but don't change things. You do have to be a little pigheaded about the rules, whilst not being totally inflexible where the system is wrong which is a tricky balance but quite possible.

      And when you've got a lot of people who need to keep working together, agile methods are useless. It's great for small groups (3-4 people), but don't bother if you've got 150 people, all with complex interdependencies.

      You need to simplify the interdependencies, and split into teams of less than 10 people. If team A needs something from team B, then Team A's will have to do something else this sprint.

    3. Re:Agile methods suck by Anonymous Coward · · Score: 0

      Well, how about adding so called story points to features (we call it user stories) you are developing. For us it gives a wery nice picture of how our planning is doing for every of the previous sprints. And remember to keep your product backlog transparrent to everyone involved in the development process. If you don't keep track on your backlog, you'r lost, plain and simple.
      Some of agile works, at least Scrum does for us, you just can't implement the methodology step by step, it has to be all or nothing. And also remember that no methodology is the cure for every single problem in software development, do modify the process if you think it will improve it. If you don't modify and adapt it to your local evironment, it's prety much useles.

    4. Re:Agile methods suck by ph1ll · · Score: 1
      SCRUM doesn't keep a history, so you have no way of checking to see if your estimates are historically too high, too low, or all of the above, and so there's no way to see if you're going to hit things on time.

      WTF? Just because Scrum doesn't keep a history doesn't mean you shouldn't.

      The best indicator that the project will fail is how dogmatically a methodology is being adhered to, irrespective of what the actual methodology is.

      Methodologies are recipes. If one of your guests come into your kitchen clutching their throat saying: "You knew about my nut allergies!" are you going to say: "Yes, but that's what the book told me to do"?

      C'mon! There's common sense and experience that prevent you from applying the wrong advice or advice that is just unsuitable.

      I've always found Agile Methodologies great but like any tool in your technical arsenal, you use the right one for the right job and modify it a little to suit your needs.

      --
      --- "We've always been at war with Eastasia."
  13. id Software's Model by AttillaTheNun · · Score: 1

    Isn't this the general methodology employed by id Software? I'm sure Carmack and his team spent much time behind the scenes prototyping ideas, but the actual game release was preceeded by a very lengthy test release process to solicit feedback early in the cycle.

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

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

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

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

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

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

    --
    Yes Francis, the world has gone crazy.
    1. Re:Way too much market speak... by syousef · · Score: 1

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

      Translation: In order to make video games evolve/progress, we need to get everyone to work on improving one thing at a time.

      When someone starts saying something very simple in a very complex and vague way, keep a firm hold of your wallet.

      --
      These posts express my own personal views, not those of my employer
    2. Re:Way too much market speak... by 91degrees · · Score: 1

      Basically it means split the project into non-dependant chunks. Each team works on a chunk. Can do the same in operating systems. e.g. The network system has little interaction with the gui. Once the interface is written, the drivers have little to do with each other.

  16. The key point of Agile software is testing by Anonymous Coward · · Score: 0

    I thought the main thing about Agile software development was automated testing.

    1. Re:The key point of Agile software is testing by ammoQ · · Score: 1

      The main thing about agile methods is to anticipate changes. For that reason, most agile methods prefer short iteration circles and lots of communication with the customer. Automated testing (especially unit testing) is an important part of extrememe programming, since it is a pre-requestite for safe refactoring.

  17. But that's how most games were made... by MagikSlinger · · Score: 3, Informative

    When I was in the game industry, this was how we always did it, even EA does it to an extent. Why? Because the publishers want results. Usually every month or you won't get paid. So as a result we had incremental releases with more and more features added in, and as a bonus, sometimes working. X-D

    P.S. With few exceptions, most game teams do NOT have specs or docs. If they're lucky, they have concept art and some clue what the game is supposed to be. I remember having to code up front-end screens and the artist & I had to figure out what they were supposed to do because the game designer was still writing the specs for the screen we finished last week.

    --
    The bitter lessons of a veteran coder: http://bitterprogrammer.blogspot.com
  18. FTA... by revlayle · · Score: 0, Offtopic

    "Agile puts the emphasis on producing demonstrable iterations of a game almost immediately into production, creating prioritized vertical slices that iterate on the most critical elements and features..."

    Yes, for those of you playing buzzword bingo, I just got a BLACKOUT! ;)

  19. 30 day sprints? by magicjava · · Score: 3, Insightful

    30 days is fast? I wish I had 30 whole days to do my projects!

    I love iterative development, but scrum didn't impress me much when I was involved with it. Perhaps that was just due to the management that implemented it. We went from logging bugs and tasks in bugzilla to writing them on index cards (do I really need to point out to computer people how stupid that is?), and trying to plan projects on these obscure, poorly implemented planning tools.

    Iterative development is great, but scrum strikes me as nothing more than another useless management fad.

    1. Re:30 day sprints? by dmalloc · · Score: 1

      Hello.

      >I love iterative development, but scrum didn't impress me much when I was involved with it.
      Care to elaborate on that then?

      >Perhaps that was just due to the management that implemented it. We went from logging bugs and >tasks in bugzilla to writing them on index cards (do I really need to point out to computer >people how stupid that is?), and trying to plan projects on these obscure, poorly implemented >planning tools.
      I happen to be one of those computer people. I can write perfectly readable assembler, I know my C and sometimes I understand Perl. I happen to think of tool reduction as a very smart way of doing things and I like to see index card, simply for the added transparancy. Could you maybe elaborate what is so stupid about this approach. I have been doing it the past 4.5 years and with 8 companies I mentored for it worked just fine.

      Thanks

  20. Managers <sigh> by Anonymous+Brave+Guy · · Score: 4, Insightful

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

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

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  21. I've thought about this by th1ckasabr1ck · · Score: 3, Informative
    I program games and I've thought about this a lot. I kind of like the agile approach, and I think that a lot of the concepts could be useful. One of the major components of being "agile" is building unit tests and relying (at least somewhat) on those as a way to make sure that these rapid checkins are not breaking semi-related systems.

    With games it is UNBELIEVABLY difficult to write unit tests that effectively catch problems. With animation, physics, AI, the built in randomness with the game, the human interaction, etc. it's unbelievably difficult to write unit tests that can get the job done.

    It's easy to write a unit test that says, "When I shoot a dude with this gun, make sure his health goes down by 50". But it's an entirely different thing to say something like, "Make sure that when a battle is going on nobody gets caught up on geometry and can't path to their movement goal."

    Sure it's possible to write small little unit tests that make sure a dude can get from point A to point B, and that this guy knows how to path around a dynamic object if a crate falls in his way, but this isn't something you can effectively break up into little parts. I've fixed too many bugs that are a strange and unfortunate combination of all the aforementioned systems to fall into the trap of thinking isolated unit tests are going to get the job done.

    I am a big fan of the idea in theory, but I can't imagine it being implemented effectively in practice. I would love for somebody to prove me wrong!

    1. Re:I've thought about this by elf · · Score: 1

      I also program games for a living, and a new contract team came in recently to work on a sub section of code for a future project. They discussed the "Agile Method" they want to use, and the basic reaction here was "oh, you mean the way we've always done things". It doesn't translate that far off from the "Iterative Development" or "Stepwise Refinement" methods that they were teaching 20 years ago.

      -elf

    2. Re:I've thought about this by magicjava · · Score: 1

      I'm writing a 3D game using agile right now. I'm doing it part time. I started last night. By the middle of next week I'll have an iteration ready for play testing, including a user guide.

      Another iteration a week later, another a week after that. Four or five iterations and I'll be done.

      And yes, you're absolutely right that unit testing will not catch all bugs. Automated unit testing suppliments human testing. It catches lots of bugs humans miss and humans catch lots of bugs automated testing misses.

    3. Re:I've thought about this by Elias+Ross · · Score: 1

      Still, imagine if you did go to the effort to create tests (not necessarily "unit tests" but "integration") for your game. Imagine the test procedure in pieces as follows:

      Set-up:

      1. Load level geometry (perhaps as a simplication point, create a test level)
      2. Place dummy players and computer players in the level; dummy players do not move
      3. Run for 100 game "ticks"

      Verification:
      1. Check if computer players reach dummy player location
      2. Check player lost life

      It would be desirable if the tests ran quickly (at 100% CPU) and without rendering or sound, etc.

      All these steps are easily programmed. Once you have tests like this, not only are you testing specific bug scenarios (path following), but you also cover ones that you might not have anticipated such as your physics engine failing.

      If you're smart, you'll design tests to be intelligent as well so that making a small change doesn't require rewriting all your tests. And if things are unpredictable (random elements), you may need to make the acceptance conditions in tests a bit more flexible or remove these.

      Another way to test: In a specific game itself, you might simply record the input of a player running through a level. Though various unrelated code changes, you might expect the input to produce the same results.

      Game programmers I know don't bother with writing testing frameworks like this because this sort of thing does take a lot of time to write. It is an investment and a lot of game programming is so short-term and non-iterative that it's difficult to be convinced to spend the time.

    4. Re:I've thought about this by phi2one · · Score: 1
      It's easy to write a unit test that says, "When I shoot a dude with this gun, make sure his health goes down by 50". But it's an entirely different thing to say something like, "Make sure that when a battle is going on nobody gets caught up on geometry and can't path to their movement goal."

      You're right, those types of rules are not easily tested with unit tests. In fact they are impossible to test with unit tests. Instead they are tested with integration and/or acceptance tests. These are the tests that the QA department creates and executes. Just because you are doing agile/test first dev with unit tests doesn't mean QA goes away, only that generally the responsibility for catching the fact that you used a != instead of == is yours and not the QA engineer's.

    5. Re:I've thought about this by pebs · · Score: 1

      It's easy to write a unit test that says, "When I shoot a dude with this gun, make sure his health goes down by 50". But it's an entirely different thing to say something like, "Make sure that when a battle is going on nobody gets caught up on geometry and can't path to their movement goal."

      That sounds more like integration testing than unit testing. Unit testing is about testing individual units (e.g. a single class) in isolation.

      --
      #!/
  22. Duke Nuken Forever utilizing Agile Development by mrkitty · · Score: 3, Funny

    What do you think I'm lying? :)

    --
    Believe me, if I started murdering people, there would be none of you left.
    1. Re:Duke Nuken Forever utilizing Agile Development by andyatkinson · · Score: 1

      haha, that damn game is never going to come out is it? What happened to that ArsTechnica preview a few months back?

  23. pushing envelopes by drDugan · · Score: 3, Interesting

    games have pushed the envolope more than any other area in computer software development

    the current rising tsunami happening right now with agile development for web applications (like Ruby on Rails, and similar approaches happening in Perl, Python, java and others)... will take games by storm, in my opinion. there are a few factors here that will make games really interesting:

    there will be much more scripting in games,

    there will be much more meta-programming (code writing code)

    there willo be more layering and customization in the languages we use - with more powerful and expressive languages deep underneith, but with tightly constrained, layered (or mixed-in) frameworks that enforce best practices built on top. we have seen this progression going forward for the last 10 years or so, and it's starting to get really interesting now.

    and on the next 5-10 year horizon, we will see applications (driving mostly by desire for better AI in games) that are human-competative in reasoning and interaction - I offer this conjecture without proof, but with significant anecdotal evidence to support the assertion.

    I watching for signs of two important things in computer development: a code base that can write another codebase (metaprogram) that is (1) aware of what it just did and (2) can communicate in a complex novel way with the new code set (I'm being vague here, but you get the idea -- think compiler theory for AI), and ... a fully autonomous systems that can operate a *power plant*. Once those two things happen, humans are toast. I'd estimate that to be about 2060.

    1. Re:pushing envelopes by ipoverscsi · · Score: 1

      There are already fully autonomous systems that control power plants. They're called "Control Systems". But we don't let them run the plant without human oversight because power generation is unpredictable. Storms can down power distribution lines and cause generators to trip, so the software would have to know that it can't immediately restart the generators. Combustion Turbines (as opposed to steam turbines) destroy themselves under even normal operating conditions (and I'm not talking about when a blade liberates and destroys downstream rows). The problem is that you can't shutdown when a blade's thermal coating reaches 20% because you are contractually obligated to generate power for the next two months. It's cheaper to cook the blades and replace them at the next scheduled outage than it is to violate your contract.

      There are just too many "touchy-feely" siutations in operating power plants to allow software to make the decisions. That is why control systems always have an override.

      Meta-programming is already happening now. Just look at C++ templates.

      And game frameworks? That's a bit if-fy. FPS games demand performance, and performance is hard to wring out of frameworks without significant customization of the code base. You could consider some game engines (e.g. Quake 3) as "frameworks" but they are designed with a specific set of conditions in mind. So, while you can write a racing game using the Quake 3 engine, you're basically stripping it down to the renderer and network code and limited in what you can accomplish without access to the source code.

      Agile development seems like a bad idea for games, particularly something like Half-Life. You need to have the storyline worked out so the artists know what to work on. Sure the artists are constrained by the engine, but everybody's got a set of rules to work by. That doesn't mean that the engine can't be updated with new features and tricks, particularly if the code base isn't a heaping bowl of spagetti.

    2. Re:pushing envelopes by asuffield · · Score: 1

      driving mostly by desire for better AI in games

      What desire? AI in games hasn't really got any better in the past few years, and doesn't look likely to do so. All that has been improving is the level of simulation detail - the meat targets have learned how to crouch behind boxes and throw grenades around corners, but they haven't actually become more intelligent, they just have more actions available to them. Art quality, plot, and to a lesser extent gameplay, are the factors that sell games. Few people go out and buy a game because the AI is smart. So there's little interest in improving it beyond the minimum baseline needed to make the game playable.

      Finally, the standard solution to the AI problem is to use humans for it. Game studios use multiplayer as a substitute for meaningful AI.

  24. Take it from me ... by LaughingCoder · · Score: 4, Insightful

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

    --
    The more you regulate a company, the worse its products become.
    1. Re:Take it from me ... by radarsat1 · · Score: 1

      I believe that the methodology is almost immaterial. ... which is why I am a firm believer in loose coupling.

      Hm. Of course, "loose coupling" is a kind of methodology, no? :)

      (I do agree with you though.)

    2. Re:Take it from me ... by LaughingCoder · · Score: 1

      Actually I look at loose coupling as a style of architecture, not a methodology. But you are right, it could be construed as a methodology for building large systems.

      --
      The more you regulate a company, the worse its products become.
    3. Re:Take it from me ... by DarkSarin · · Score: 2, Insightful

      Ah, but hiring in itself is a tricky thing (trust me, I study this): it is very highly studied, highly optimizable, and can be made VERY formal.

      Interviews are great--as long as they get at standard information. Otherwise you end up asking applicant a one thing and applicant b another and then you have no clear way to determine which is better. Under this method you end up with 'good enough', rather than 'the best we can find at our budget', which is not really the same thing at all.

      If you want more information on hiring good people drop me an email or go talk to a professional.

      --
      "We don't know what we are doing, but we are doing it very carefully,..." Wherry, R.J. Personnel Psychology (1995)
    4. Re:Take it from me ... by LaughingCoder · · Score: 2, Interesting

      I agree with everything you said. I believe this a process which can and *should* be formalized. My experience is that at most companies this is not the case. And in those companies that do attempt some sort of formalization there is a distressing (in my opinion) trend towards these "personality/behavioral-based' interviews, leaving less time to assess technical competence and "passion for product development".

      FWIW, I was exposed to a very rigorous and (I think effective) interview process at the second company I worked for. They had a remarkable hiring track record - a lab full of excellent engineers (most would be top-ranked at any other company) and almost non-existent turnover (over more than a decade, so it was sustained). Their process was formal and quite rigorous. Interview teams were cross-functional, even when hiring for a particular discipline (ie R&D interviewed MFG candidates and vice versa, and everyone talked to both a software and a hardware technical interviewer even if that was not their forte; we believed in hiring flexible, well-grounded generalists). Interviewers all had standard questions that they asked of every candidate - usually one 20-minute-ish technical question that was fairly open-ended and could lead to much discussion, so they could compare candidates on the same material. All of the morning interviews (usually 4) were technical. During the plant tour immedately following lunch with the candidate, the technical interviewers got together and discussed the candidate on technical merits and, if the candidate passed muster (most didn't) the managers did the "soft skills" interviews after lunch. If the technical interviews did not go well usually a short debrief with HR would close out the interview. For good candidates, the whole thing closed with a "sell job" (cool product demos, perhaps a short meeting with a high level manager to sell them on the company's prospects.

      --
      The more you regulate a company, the worse its products become.
    5. Re:Take it from me ... by asuffield · · Score: 2, Insightful

      For what it's worth, it is my experience that the people on the team have by far the biggest impact on product quality, timeliness, and all those other goodness measures. I believe that the methodology is almost immaterial.

      This may be true, but the software industry doesn't work that way. Managers want people to be interchangable parts, because that way they can easily replace them when they leave. So they focus on methodology.

      Ironically there is one process that I believe is critical to every organization's success, and it probably the least-studied, least-optimized, least-formalized process every company has ... and that process is the interview process.

      This is probably directly related. The managers and HR droids apply their standard interview process, effectively hire people at random, and conclude that they can't reliably get good people - hence the above.

      One of the big problems I see is that the interview process is normally optimised to hire the best salesdroid in the group (because they're best at "selling theirself") regardless of whether they are hiring for a sales role or not. Good engineers are cautious and precisionist in their speech, so they tend to "perform worse" at interviews by giving more precise, less optimistic answers.

  25. Re:marketspeak by Aceticon · · Score: 1

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

    I didn't think so

    No wonder you can't, nobody can do all of those three positions from the "Kama Sutra of Software Development" at once - "Synergizing with a results-driven knowledge base" by itself already requires an unusual ammount of body flexibility ... not to mention being really really carefull.
  26. There's no magic bullet by PIPBoy3000 · · Score: 2, Interesting
    But if I were going to name two things that seem to help, they would be:
    • Few, smart people Smaller groups of developers (preferrably one) seem to get so much more done than tons of people working on a project, requiring coordination and creation of standards. I realize this is often mocked, comparing it to the mythic hero developer, locked away and producing great code. Still, in real-life situations I've seen big development groups fail or work at a snail's pace while the single smart person cranks out application after application.
    • Evolutionary prototyping. This is similar to agile programming, basically coming up with something that works and refining it until it's "good enough". I find applications are never firmly done, but rather the fixes and upgrades slow over time. Now if you're building missles or medical equipment, this isn't the best approach, but for most normal business software, I find it works best.
    1. Re:There's no magic bullet by Anonymous Coward · · Score: 0

      This also works well with a fixed schedule. You just go along as fast as possible and then ship your last prototype at the end. Besides you have to have a playable game ASAP so that you can refine playability and artwork within a real framework.

    2. Re:There's no magic bullet by slowbad · · Score: 1
      Take your B-Team developers into a meeting and cryogenically suspend them for the rest of the decade.


      When they wake up, tell them you've got a new set of tools for them and to not worry about gameplay,
      since the new system is an order of magnitude better when it comes to resources and speed.

      And no idea will be too lame, since everything will be original -- the customer base has short memories!

  27. Re:'agile' is neat, but ... by Anonymous Coward · · Score: 0

    "as everyone else pointed out, it's mostly just a name for what people have been doing for a while when upper management leaves them alone." - by bunions (970377) on Wednesday June 28, @01:04PM (#15622175)

    Agreed 110% - most of said "mgt." AND "business/system analysts" out there haven't written a single line of code themselves either (this & the tools involved are just another set of "B.S." & buzzwords they need to justify them even HAVING a job in this field).

    This comes from 15 years total time in this field as a coder (programmer/analyst - software engineer)...

    Too many "chiefs" exist in this field, that plain just should not. Not without having done the job themselves, hands-on professionally, in this field.

    (This is not always true, but largely, I have seen this over my career in this field, & it is just plain WRONG).

  28. Holy buzzwords Batman by Xocet_00 · · Score: 1

    Am I the only one who doesn't at all understand what the summary says?

    1. Re:Holy buzzwords Batman by Anonymous Coward · · Score: 0

      "Agile puts the emphasis on producing demonstrable iterations of a game almost immediately into production, creating prioritized vertical slices that iterate on the most critical elements and features. The method also puts great emphasis on the organization of teams and the relationships therein, as well as the cycles in which teams must plan and carry out their project objectives."

      rewrite after marketing droid was fired...

      Agile aims to produce limited usable software functionality, in relatively quick iterations, so that end users can more quickly work with their software in context, communicate desired imporvements and, in the process, help test and debug the software as it is being built.

  29. Agile is more by moe.ron · · Score: 1

    Ok so we've already established that iterative programming isn't the next big thing, it is simply what most programmers do. Iterative programming is simply a name for how most developers build projects. You write code, test the code, move on to the next code. Not being a game developer, I can't say from personal experience, but I'll bet thats how most games were made anyway.

    Someone even touched on unit testing and continuous integration as game development methods. Saying unit testing can't cover 100% of a game's code may be accurate, may be not, I'm not a game developer. But the big complicated problems that can't be caught with unit testing can at least be narrowed down by unit testing. Ok, so you can't test everything that will happen in a big game, but you can test all the little things. Knowing that all the little things work helps make debugging the big things easier. If you can't test how an AI will move through a map in certain circumstances, you can at least test how the AI recognizes the map, recognizes objects in the map, and the ability of it to move and navigate. So on specific map A, the AI can't get around this crate. Well, can the AI recognize the map around the crate? Can the AI recognize crates? Can the AI navigate? All questions unit tests are meant to answer. Though I must say, I've been through crazy complicated business "ill-logic" , and I have yet to run into something that can't be unit test besides users.

    But ok, what about the other aspects of agile development? Most of what has been left out is more on the human side of development. Aside from iterative development and TDD, what about pair programming? What about daily stand ups? What about 'no code ownership'? Without these, it isn't agile, it just iterative development or TDD. Agile development by name pertains as much to the people and how they are organized and managed as it does to the code itself.

    1. Re:Agile is more by Anonymous Coward · · Score: 0

      I think you confuse the more general term "agile" with xp.

  30. Oh, I get it by Quiet_Desperation · · Score: 3, Funny
    "Agile puts the emphasis on producing demonstrable iterations of a game almost immediately into production, creating prioritized vertical slices that iterate on the most critical elements and features. The method also puts great emphasis on the organization of teams and the relationships therein, as well as the cycles in which teams must plan and carry out their project objectives."

    So the game is to figure out what bullshit like this means?

  31. Product development by Aceticon · · Score: 4, Insightful

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

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

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

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

    1. Re:Product development by Anonymous Coward · · Score: 0

      The real problem with ANY methodology is that it's not a replacement for a project manager or a competant(sp?) one.

    2. Re:Product development by neural+cooker · · Score: 1

      Interesting idea. I haven't thought of that in terms of agile game development. In the teams that I've worked on the 'user' in this case is really the developers themselves (I'm an indie developer) so the users are really close at hand.

      Generally in this topic, from what I've heard, small teams of developers already have been using this type of approach for a long time now. But the reality, a lot of the time, LOT of code and assets had to be done at the beginning of the project to get to anywhere near a playable state, so sure in that part of the project it's not agile. But after that point a good team of developers would usually play through the game again and again in development and tweak it again in again which is basically what agile development is aiming for. This has been going on since the beginning of game development as far as I can tell. It is the basic approach that I've always used.

      I really like agile development as a concept. To me the most important agile idea is that self forming teams are more effective than teams that have imposed structure from above, everything else is just a bag of handy tools, that should be picked and choosen for the occasion. I know most people would disagree but to me this seems to be the true core idea of that whole ball of wax. Also you really don't have to be experianced in my opinion to self form your team. If you take a bunch of newbie developers and stick them together to build something I deeply believe that they will have a better chance of success than even the most experianced developers under a rigid development structure. Experiance doesn't mean much if you're in a rigid structure, since you have to abide by that structure.

  32. another game developed with agile methodologies by peesharp · · Score: 1

    http://www.diamondcrush.net/

    It's a Super Puzzle Fighter rip-off, totally written in Java. The project was born in the developers forum of the italian hardware website http://www.hwupgrade.it/

  33. Thank goodness! by brouski · · Score: 2, Funny
    Thank goodness!

    Now I can finally use that +20 agility enchant!

    --
    Proud member of the American Non Sequitur Society. We might not make much sense, but boy do we love pizza!
    1. Re:Thank goodness! by infomagic · · Score: 1

      there is no such thing as "+20 agility enchant". there are "+15 agility enchant for 1H weapon" and "+25 agility enchant for 2H weapon". there are also few lesser enchants, with +7 agility highest of them.

    2. Re:Thank goodness! by brouski · · Score: 1

      Well...don't I feel like a nerd!

      --
      Proud member of the American Non Sequitur Society. We might not make much sense, but boy do we love pizza!
  34. Re:Here's A Secret About Real Life Game Developmen by Anonymous Coward · · Score: 0

    Any time you see someone interviewed about game development on the web or in a magazine chances are pretty good that ...he has much-needed information about the very process of game development to share and is rightfully not wasting time with personally tooth-brushing bits on the next DNF?

  35. Already done with Indies by ThePolkapunk · · Score: 1

    This has been the method utilized by many Indie game develops for years, if not decades. I'd hardly call it "the next big thing," since it's been around for quite a while. Perhaps big developers haven't been using this method, but it's been around for longer than this article thinks.

    --
    Dear diary: Today I stuffed some dolls full of dead rats I put in the blender.
  36. DNF completed 245th sprint ships Oct 06 by Anonymous Coward · · Score: 0

    opps another sprint started. Ship date Dec 06.

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

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

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

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

    --
    ad logicam Claiming a proposition is false because it was presented as the conclusion of a fallacious argument.
  38. Finally, the Answer! by AppHack · · Score: 1

    They should start over with Duke Nukem Forever. This could be the answer they've been looking for to get it completed. :-)

  39. Re:Managers by Red+Flayer · · Score: 1
    This is just an issue with management, though. A good manager will trust his engineers (or fire them and replace them with trustworthy alternatives). The manager's job is to set the direction of the project, get the engineers what they need to steer in that direction, and then get out of the way as much as possible and as quickly as possible.
    You're missing two vital parts of project management: ensuring the train stays on track, and ensuring that the investors (stockholders, direct investors, whoever supplied the $$) is kept aware of progress.

    A manager's job is not just to get the project done on time, under budget, as best quality as possible -- it's also to liason between their team and the high[er|est] levels. For those at the highest level of a large company, you're looking at possibly dozens or hundreds of projects. How does a company distill the important information that policies and decisions need to be based upon? If you're going to analyze data from dozens of projects, you'll need common metrics -- which means bureacratic "red tape" in order to get values for those metrics.

    I will add, however, that micromanagers, and managers without competency, or at least familiarity, of the skillsets needed for the project, can often harm production. But, you need to keep in mind the full responsibilities of a manager -- that {$TECHNOBABBLE}-caused delay will need to be explained to his boss -- unexplained delays are by default inexcusable.
    --
    "Trolls they were, but filled with the evil will of their master: a fell race..." -- J.R.R. Tolkien on Olog-hai
  40. Innovation programming =/= game design. by arthurh3535 · · Score: 1

    The problem right now is that too many companies are developing new technologies, implenting them and then sitting on their propriotary coding so that no one can steal it.

    This is adding a huge amount of redo-work in the industry. Right now, many video games are requiring budgets bigger than blockbuster movies because of this mentality.

    There is not real standardized programs and artwork. Almost all graphics are recreated for every single game out there.

    This is like movie makers getting rid of all background sets and actors for every movie.

    The software industry is caught in a vicious loop of overly expensive proprietary technologies. There is little real standardization between games except for some of the tools. And even then, only some of the tools.

    This is why when technology for improved video graphics comes out, no one uses it as they have to almost totally redo all of their artwork again and again.

    There needs to be more technology licensing at a lower breakpoint, otherwise the gaming industry is going to pop like the Internet bubble did. We are already seeing signs of "struggling" publishers and design companies, because the industry is just starting to be supersaturated with games that cost too much to design.

    --
    No! It's a *SIG*. Keep the Special Interest Groups away! (Con joke!)
  41. Why is this text blue on BLUE by spicydragonz · · Score: 1

    Does anyone else have a problem with the reply header being blue text on a blue banner? I thought the CSS was *supposed* to be better!

  42. Re:Managers by Anonymous+Brave+Guy · · Score: 2, Insightful

    You're missing two vital parts of project management: ensuring the train stays on track,

    Which can never be done reliably for non-trivial projects with the tools and techniques we have available today, regardless of what anyone trying to sell you their book says. No-one has yet shown how to beat picking two of cheap, fast and good.

    and ensuring that the investors (stockholders, direct investors, whoever supplied the $$) is kept aware of progress.

    Which is a much higher level than the sort of day-to-day project stuff we're talking about here.

    For those at the highest level of a large company, you're looking at possibly dozens or hundreds of projects. How does a company distill the important information that policies and decisions need to be based upon?

    It doesn't, in this context. Again, no executive of a large company should routinely be involved in the day-to-day progress of minor projects by a particular dev team. That's not their job, and it's the worst kind of micromanagement.

    If you're going to analyze data from dozens of projects, you'll need common metrics -- which means bureacratic "red tape" in order to get values for those metrics.

    It also means you need metrics worth something, which random estimates for project timescales based on the inadequate information that was available six months earlier most certainly are not.

    --
    If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
  43. A pipedream by llZENll · · Score: 2, Insightful

    Seems like the whole idea the article suggests is a pipedream. So their great and new idea is to complete the most important features immediately, then refine them. Well that is all great, but what about the fact that a game usually isn't remotely playable until it is 90% done, no matter which pieces you work on or do in what order.

    This reminds me of something I just read about how episodic content will never work, as making episode 1 requires 95% of the work of the entire game.

  44. Show me the money! by slcdb · · Score: 2, Insightful

    Show me raw, tangible statistics pitting Agile methodologies against other more traditional approaches, like "waterfall". I'd like to see a whole range of games (or other applications), developed using various methodologies and scored based on parameters like: shipped on time, end product quality, popularity, critical review scores, and, of course, amount of profit. This would be the only way to see how much "better" Agile is compared to other methodologies. Otherwise this is all just theory, speculation, and unadulterated opinion.

    --
    Despite what EULAs say, most software is sold, not licensed.
    1. Re:Show me the money! by dmalloc · · Score: 1

      Being one that is rather involved in the agile community, I have a question for you.

      How do you compare Apples with Oranges?
      Metrics will always offer you results on what you wish to track and most of the time what you measure has no abstract value. THere have been long winded and numerous discussions on empirical studies on methodologies and quite frankly comparative statistical research on something as abstract as methodologies is very complicated and I do not see it happening anytime soon.

      I have implemented, used, mentored, coached and evangilised many agile projects and for those I worked on, it seemed to work.

    2. Re:Show me the money! by tshak · · Score: 1

      Show me raw, tangible statistics pitting Agile methodologies against other more traditional approaches, like "waterfall".

      In a day of poor software quality, missed project deadlines, and failed software projects, show me the raw, tangible statistics that waterfall and other traditional methodologies are better than no defined methodology at all.
       
        The point I made is clear, but as an aside you actually can find statistics for a lot of different methodologies (including Scrum and XP). Being that software projects are so complex and dynamic by nature, it's very difficult to accurately correlate these statistics. This is why theory is so important in our industry. Sometimes it's all we've got. Which is not to say that we shouldn't strive towards quantification - we just have to be very careful how we approach it.

      --

      There is no longer anything that can be done with computers that is nontrivial and clearly legal. -- Paul Phillips
  45. Can't get past the title by DrVomact · · Score: 1

    Sorry, can't read TFA, uuungggh...can't get past the title no matter how much of a running start I get. Why do people keep saying "methodology" when they mean method? Though I've never found a use for the word myself, I suppose that methodology would be the study of methods. What's "agile" got to do with programming? Weasels are agile...so this is methodological advice given by weasels? Oh nooo...can't uncross my eyes--somebody take me to the emergency room!

    --
    Great men are almost always bad men--Lord Acton's Corollary
    1. Re:Can't get past the title by amateur+bore · · Score: 1

      You're absolutely right. Methodology is the study of the appropriateness of the methods used in an area of scientific inquiry. So you can object to the conclusions of a study on methodological grounds. Method is the way you go about doing things.
      Methodology is just pretentious in this context but it's been (mis)used this way for quite a long time.
      The excerpt from the article was enough to put me off. Well done for at least trying to read it.

    2. Re:Can't get past the title by Flyboy+Connor · · Score: 1

      Why do people keep saying "methodology" when they mean method?

      Because they also like to say "utilize" instead of "use".

  46. Re:Managers by Bastian · · Score: 1

    It's staggering how many managers don't realise this, and hamstring their dev teams with their personal, half-baked, technically-incompetent ideas and/or with excessive procedures and beaucratic reporting because the manager "has to know what's going on". Of course he does, up to a point, but what exactly is he going to do if a developer does tell him that a bug fix was delayed by a day because {$TECHNOBABBLE}?

    The most important thing is never having knowledge, but knowing when your knowledge ends. This is the case in every situation I've encountered. When I was working tech support the absolute worst callers were ones who thought they were computer savvy and weren't (the best callers usually being ones who didn't know a damn thing about computers and were quite happy to make this clear). The most annoying management decisions are the ones made about things managment has never touched and without asking for/paying attention to advice coming from the people who are actually doing it. The most annoying software I use comes from developers who think they know better than the users what the feature set should be. Heck, I know people who have gotten themselves into serious financial trouble by jumping into the stock market on a tip without taking the time to learn how the market works or taking any time to research the tip. (I just saved a none too tech-savvy friend a whole lot of money by working hard to convince him to stay the hell away from the Vonage IPO.)

  47. This 'agile' thing has a different goal by Weaselmancer · · Score: 4, Interesting

    From the blurb:

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

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

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

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

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

    --
    Weaselmancer
    rediculous.
    1. Re:This 'agile' thing has a different goal by startled · · Score: 1

      I'd be wary of condemning an entire school of thought on development methodology, based on a possible misinterpretation of a portion of a sentence written by non-production staff from a company using the methodology outside of the context it was primarily developed in.

    2. Re:This 'agile' thing has a different goal by Weaselmancer · · Score: 1

      A good point. Especially if the agile methodology works somewhere else. Have a reference to an article where agile works well?

      BTW - not putting you on the spot, if it sounds that way. I'm actually curious. Especially to hear from programmers who like being in this system.

      --
      Weaselmancer
      rediculous.
    3. Re:This 'agile' thing has a different goal by startled · · Score: 1

      Hmm, I'm not a producer-type, so I wouldn't count myself as any sort of spokesperson for this stuff. Wikipedia's article has a fair number of links, though many of them seem to be simply to conference abstracts. Agile Alliance might be a better resource: they have user stories. Most of the success stories and case studies I've read have been in books about Scrum, specifically the first two on this page.

      Personally, I've had varying degrees of success. A friend at a 10-person startup is having a lot of success with daily 15-minute standups and 30 day cycles, but then, how much does it really stretch your process when you only have 10 people? We successfully used some XP methods at Homestead, but I don't know whether we'd be counted as agile, overall. TDD didn't work out for us very well. Short cycles worked really well in some cases. I don't think anyone from there wrote an article on our experiences, though it would have been useful.

      Regarding game-specific success stories, I don't have anything for you. Does Valve's cabal system count as agile? Does it count as a success? The most successful games I can think of pretty much all shipped horribly late. Also problematic: the largest, most formalized efforts to improve software development methodologies have taken place outside of games, and the products are different enough that straight ports don't seem to work. It feels like we're having some successes and some failures with the Scrum adaptation we're using right now, but it's too early to tell-- it can't be counted as a success if we haven't shipped.

    4. Re:This 'agile' thing has a different goal by idlemachine · · Score: 1
      I'd avoid it.

      Come on. Be honest. You've already avoided it. Because anyone who has actually taken the time to assess and understand the underlying practices of agile development wouldn't be talking half the shit that you just did. And by "shit" I mean, "Inventing straw 'managers' who act like over-hyped parodies of the PHB to represent your personal misunderstanding of agile development".

      Seriously, any time you start citing as evidence what you believe some mythical representative figure might be thinking, saying or doing, you're really just talking shit and need to stop. Stick to the facts, which unfortunately require experience and not five minutes of juvenile "all managers are retards" rhetoric to actually demonstrate.

  48. *Sigh* by kinglink · · Score: 1

    Since when has people STARTING to adopt methodologies been worthy of slashdot? Game development takes years if this honestly works that's fine, but we need to know of games that were fully created with Agile methodologies.

    There's a few flaws. Can someone tell me why a working prototype would be better when you're working in a company of a couple hundred people? I work at a semi major game developer and let me tell you, working on a early game type, you need those design documents just because you have no idea the vision, then coming on to the game later, you'll need those documents again because no one is going to flawlessly comment code so a new programmer is screwed.

    Game development companies need to make tools, because otherwise you have people doing worthless repeditive work. In game editors are worth more than the guy who solves minor bugs, because that in game editor will be used by almost all the users, a minor bug could probably be solved by everyone. The guy at my company who designed a system for adding gameplay easily is easily worth more than the person who fixed the rendering bug, because the first guy's work takes hours off of everyone's time table when they have to create their own event, the second guy has better end result but that could have been done at any time.

    Their ideas are interesting but sadly it sounds like it's more focused on small scale products with 15-20 employees, rather then large scale products.

    Besides which any time you have large scale products you're already working on the scrum type of cycle. At least if your in a semi intellegent company, that wants to have good communication with out killing the team with it.

    The only flaw in using Scrum is you can't use it for the first monthes of development. Your focus needs to be on developing the world there, but you need those paper guidelines. And worst as the game grows and you're prototypes look finished in a protype world, and they get tossed into a real world almost every single one will end up breaking, whether through a problem with the animation being updated, the world getting a new nav system, the controls completely changing, and so on. And so for another 2-3 weeks you're wasting time on prototype fixes again updating them.

    In the end it is helpful, and with a good company it works well, and it does beat the waterfall system, however it isn't the savior. It sounds more like the writer believes the waterfall system has 0 communication where the programmer and the designer never talks. That's not how the system should work, that's how a poor company implements a mediocre system.

    The bigger problem though is his comment that there's going to be less crunches because of it? Since when. Any time a major system gets changed in the final monthes all subsystems will have problems, ones that were finished earlier are inevitably going to have more errors. Crunches happen, you arn't going to make them disappear, if you don't want to crunch, go talk to Duke Nukem Forever, or Daikatana about that, that's about the only way.

  49. This is nothing new even in pro game development by Sarusa · · Score: 2, Insightful

    This is nothing new in game development, even at large companies. 'agile' (with a little A) has been used for at least a decade. You just can't possibly build a good game with the waterfall model and we've known that forever. I think it's a bit like every generation thinking they invented sex.

    We use nightly builds (a single day without a working build is a huge hit). Getting the framework working so your designers and texturers (and gameplay folks) can start trying stuff in-engine, then fleshing out features. Midding sized time periods (2-4 weeks) between major builds. Unit testing. Though we have to bring in humans to really break it when it's all put together.

    Now if you mean Agile with a capital A, then it's not the next big thing, it's just the same bullcrap it was when it was called eXXXtreme Programming. We like to write things down and design a lot of things up front, which clashes with Agile (and don't tell me it doesn't, even with the lip service) - you need at the very least a production bible for large project games to keep everyone together. Parts of the design will sometimes not survive actual implementation and will be tossed, but in general they keep things on track and usually only need some tweaking (everything gets tweaked during playtest time).

    If you don't do this sort of thing you end up with http://en.wikipedia.org/wiki/Dungeon_Lords, which is what you get with a Agilely (with a capital A) developed game. It shipped only half complete with no internal cohesion at all and still isn't finished. But the great thing is that you can use your Methodology to justify it all.

  50. RUP by Maxo-Texas · · Score: 2, Insightful

    As a programmer, I like RUP.
    As a project lead, I like RUP.

    It has aspects of Agile to it.

    The important parts are:

    Get the risky stuff addressed early. If DX9 doesn't support bi-pixar multi-shading like it says it does, then it is best to find out early rather than at the end.

    Do the work in measurable chunks. That way you know in as little as a month if you are falling behind schedule.

    Frequently interact with the users to make sure you are on course. This is the biggest problem with waterfall projects- working 6 months on something and it turns out you made a wrong turn on week 2. And I've seen other programmers do this again and again even with user interaction- they get an idea of what the program should be like in their head and turn off input from reality.

    All the documents and crap bother me to and feel like useless makework. At least video game programmers do not have to deal with SOX compliance issues.

    --
    She was like chocolate when she drank... semi-sweet at first and then increasingly bitter.
  51. Re:Software Engineering stiff, meet Game Developer by _DangerousDwarf · · Score: 2, Insightful

    Scrum isn't a software engineering method. It is purely a project managment methodogy. That is one if the _key_ differences between Scum and other Agile methods.

  52. The operations view by Anonymous Coward · · Score: 0

    Hardware is cheapest.
    Developer time is cheap.
    Operational time is expensive.

    Why? Because dev time occurs at inception. Operational costs (including post-release patching) are recurring.

    The less documentation you have post-release, the less organised your software, the less well understood your architecture, the more convoluted your tools ... the more expensive operation will be.

    If you just live in the mad world of shove-it-out-the-door and making it somebody else's problem, then congratulations. You don't care about operational expense. You don't have to care. Any manager who doesn't care, and who doesn't make you care, is either similarly constrained, or horribly negligent and short-sighted.

    So-called agile development is the bane of operations.

    But it's good for the next quarterly bottom line, so who the hell cares if next year you're screwed?

  53. historical game development by anselmhook · · Score: 1

    historically games were often developed in environments of intense pressure

    if a game development effort is not at gold master by say september 15 then it would not make christmas and if it failed to make christmas then it would lose 70% percent of its revenue

    many smaller development houses were created or broken by a single game that simply shipped or failed to ship on time. discovery wrote arkanoid and built their subsequent business around the revenue from that one title.

    the way i recall developers working therefore was many small short sprints with multiple people often huddling around one screen, visually auditing the code as one person typed it and acting as feedback and expertise. managers and executive watching everything intensely closely and demanding frequent milestones. these were extremely high stakes development efforts and everybody knew it.

    unit testing and regression testing and the like was not done, but there were monkeys in the back that tested the builds all day long and provided a constant stream of test report data; and of course the app developer was often a subscriber to the experience as well and often there would be late night play sessions against the latest build - simply for fun.

      - a

  54. Whew. by labratuk · · Score: 1
    Agile puts the emphasis on producing demonstrable iterations of a game almost immediately into production, creating prioritized vertical slices that iterate on the most critical elements and features. The method also puts great emphasis on the organization of teams and the relationships therein, as well as the cycles in which teams must plan and carry out their project objectives.

    God knows managers have to find something to talk about to justify their salaries.
    --
    Malike Bamiyi wanted my assistance.
  55. Re:Here's A Secret About Real Life Game Developmen by llopis · · Score: 1

    Or maybe the process actually works and he has free time to have a life outside of work and share his insights with other companies.

    I work with Rory (the author) and he's an invaluable member of the team. So something has to be working right.

  56. Re:Managers by Red+Flayer · · Score: 1

    I think you're missing my point re: metrics. It's not the individual metrics that count -- it's the aggregate metrics that matter in the long term, especially to the highest levels. Without collecting those metrics at the lowest levels, it's impossible to have accurate analysis.

    What if the question is, "Which manager is more effective at making sure their team meets deadline?" or "Which team is hobbled most by inadequate managers, and is therefore a priority for assigning a talented manager?" As multiple projects are completed, this is the way to measure success|failure in a way that can be demonstrated to those who need to know.

    As to inadequate forecasting of timescales -- measuring that is just as important for determining how to better forecast them as it is to determine whether a certain manager or team habitually misses deadline.

    Again, I think the problem is that you're only looking from the perspective of an engineer on a team, or a team manager, not someone responsible for long-term success of many teams and many projects.

    Finally, another word on metrics -- despite how inaccurate they may be, or how poorly they represent what's happening in the trenches, they are invaluable when you need justification for terminations, selective promotions, and raises. Employment law has created a situation where these things MUST be documented or else you're exposing yourself to a boatload of risk.

    --
    "Trolls they were, but filled with the evil will of their master: a fell race..." -- J.R.R. Tolkien on Olog-hai
  57. I'll pass by rabbot · · Score: 2, Funny

    I'll stick to loading up agility on my Thief for that trick attack multiplier.

  58. Re:Here's A Secret About Real Life Game Developmen by jamie(really) · · Score: 2, Informative

    LOL. I'm laughing because usually I'd agree :-) But why? Well, because most games studios I've worked involved near constant death-marches to ship product. I'm now a Senior Architect at High Moon (where Rory works) and I'm amazed to say that (a) I have spare time and (b) our productivity is much higher than any other place I've worked. Now I admit that being a total geek I end up working late a lot anyway, but its on interesting avenues and experiments rather than fixing the bugs that I introduced when I was asleep at the wheel 2am the night before as used to happen.

    You were right about him hanging outside smoking though.

  59. Re:marketspeak by hubritc · · Score: 1

    Of course not. For that you would need a best of bread enterprise solution with lots of buy in from those who will take ownership to solution flexibly

  60. Methodologies by treak007 · · Score: 1

    Methodologies are important, just as long as following the methodologies doesn't become more important then producing quality products.

    --
    Klingon Software is not released, it escapes, inflicting terrible damage onto the enemy as it does
  61. time to face it... by hitmark · · Score: 1

    software development isnt as much a project as it is a evolution.
    you set some goals about what the software should be able to do, and then you try to evolve the best ways of doing it. along the ways the goals may well change, and therefor the direction things evolve will do to.

    i guess thats why open source wins in the long run, you can do it darwin style.
    at some point the source will split, and the more successfull banch will survive, potentialy absorbing whats good about the other branch on the way.

    --
    comment first, facts later. http://chem.tufts.edu/AnswersInScience/RelativityofWrong.htm
  62. Solve specific bugs by Prien715 · · Score: 3, Interesting

    We're in the process of implementing further unit tests under the agile model (though not gaming related, it is a heavily interactive app). The idea behind unit testing is to:

    1) find bug
    2) write unit test for bug.
    3) write fix.
    4) verify unit test/program both work. If unit test works, but program fails, go to step 2.

    1) In your example, a tester/coder would find see some soldier dude getting stuck in the middle of battle.
    2) So do it again, saving the game before the bug occurs. Write a unit test which loads this save and then check after x seconds to see where the soldier is and then fail the unit test cause he's stuck behind the crate. The unit test will is not in any way general. It's not meant to test all your pathfinding issues, just this one.
    3) Rework the pathfinding code.
    4) After you notice the unit test passes, go in and see if the bug is still physically in the game. If it's not, you've fixed it. If it still is, well, write another test. You may end up with a dozen pathfinding unit tests this way all of which "fix" some sort of bug.

    The idea behind this methodology is that let's say your new pathfinding algo causes a bug which developer B fixes, but which causes the original case to break. Your unit test will now "clue you in" before a checkin occurs. It also free testing to do more "battle" and "feel" stuff.

    --
    -- Political fascism requires a Fuhrer.
  63. Guidance on unit testing for games by lquam · · Score: 2, Interesting

    Check out the agile game development blog and in particular High Moon Studios who has provided seminars at the last two GDC's on their experience with SCRUM and XP, including tips for unit testing game components. They admit that some elements of game, for example, "fun" is not something you can tests, but since games are so hideously complex, having most of your code covered by unit testing makes regression testing far easier when your 18 months and a few 100k lines of code in.

    That said, I've experienced a lot of blowback in game companies about using any agile methodologies. The rank and file in most game companies are, while blindingly talented, often very stubborn and/or passive-aggressive toward anything they perceive as control. The organizations I've been in where XP, in particular, has really worked, was where most if not all of the engineers were tired of priority of the day project management from marketing, sales, etc. and where management was enlightened about the benefits of better software quality and more predictability in development. Unfortunately, to make any agile method to work requires buy-in from the top to bottom of the org chart and very few places will ever get that.

    That said, I think in 5 years, most game companies will be using elements of XP, SCRUM, and other agile methodologies in their work. I don't believe game companies will be able to survive without this shift, because although some poo-poo agile for large teams, some of these techniques can work very well for large teams and game teams are only getting larger and the financial stakes of failure and missed schedules will only becoming higher. In that environment, only studios which get a handle on their development will survive. The companies that refuse will become overwhelmed by the complexity and IMHO will start losing their best people to studios that start putting agile processes in place.

    Of course, EA and that ilk may continue to just chew through developers, working them 80+ hours a week for years to come, but that will not be an option for most studios and smaller publishers.

    And, yes, agile comes with a lot of marketing-speak gobbledy-gook, because you usually have to sell it to management. The reality is that it's as much about controlling management as it is about controlling development, perhaps more so.

    And to the example above where XP was implemented at a game company where management thought that they would simply get more features, well, that's management not understanding XP and I'd wager that in the absence of XP those same executives would have been adding the same damned features, still not dropping any features, and still kvetching that the game needs to ship for Xmas. That's the game industry folks. No process can fix that.

    LQ

  64. the art by angrymilkman · · Score: 1

    but 75% of the cost of the game is in the art work, so creating all that is not going to change significantly regardless of any development methodology.

    --
    ...what matters is what you like, not what you are like...
  65. Re:'agile' is neat, but ... by MagikSlinger · · Score: 1
    That said, I've found the hardest part of the process to be finding a client who is willing to put up with the constant back-&-forth and interminable beta testing.

    That's funny (in an amusing, obersvational way) because I work in a large company and the clients in the company actually like to see early versions, provide feedback & testing and then sent back for another quick iteration. They absolutely hate not seeing something for 6 months and discovering it doesn't do what they hoped for. Every company's different. It's important to adapt your methodology to the reality your project lives in.

    --
    The bitter lessons of a veteran coder: http://bitterprogrammer.blogspot.com
  66. Re:'agile' is neat, but ... by Tim+Browse · · Score: 1

    it's mostly just a name for what people have been doing for a while when upper management leaves them alone

    While I agree with you to an extent (but there are plenty of people who will screw up when left alone), it did remind me of this:

    Four stages of acceptance of a theory:

    • this is worthless nonsense;
    • this is an interesting, but perverse, point of view;
    • this is true, but quite unimportant;
    • I always said so.

    -- J.B.S. Haldane, Journal of Genetics

  67. Harness innovative action-items by Un+pobre+guey · · Score: 1
    ...creating prioritized vertical slices that iterate on the most critical elements and features. The method also puts great emphasis on the organization of teams and the relationships therein...

    Reengineering our paradigm towards monetizing our customer base will indubitably ramp-up our global synergies and dovetail smoothly with our virtual workspace vertical portal initiatives, monetize bleeding-edge networks cultivate end-to-end infrastructures utilize interactive applications brand frictionless web-readiness scale value-added networks harness impactful mindshare revolutionize one-to-one architectures drive killer e-services aggregate bricks-and-clicks applications, and stuff.

    But you have to use the process.

  68. I thought game company never hire any QA by Trieuvan · · Score: 1

    Games I played are full of bugs (I've been QAIng those for free)

  69. The Bane of My Existence-seeking asylum. by Anonymous Coward · · Score: 0

    "Because managers don't trust engineers."

    Oh, I can't imagine why.

  70. Re:Managers by Anonymous Coward · · Score: 0

    A great engineering manager is one who would likely be an excellent all-purpose journalist: someone who is extremely smart, dedicated, and people-savvy, and is not obstinate, arrogant, or aloof. If they are extremely smart that more than makes up for not having current technical skills, since they can learn what they need to know by carefully interviewing the members of their team, watching how they do, and sizing them up.

    In practice, there are two types of people that seem to become development managers: those who determine in their late 20's that they aren't going to be great engineers, and those who decide in their mid 30's that they want to make more money than devs are making. Those in the former camp aren't extremely smart. Those in the latter camp are usually smart, but too often they are not dedicated enough, not people-savvy enough, or too obstinate, arrogant, or aloof. Great development managers are few and far between.

  71. Re:Here's A Secret About Real Life Game Developmen by neural+cooker · · Score: 1

    Anytime you see a post on Slashdot by someone in the game development chances are pretty good that the reason that person has the time to waste is they aren't valuable enough to be busy doing actual work on game development.

    Seriously though, I'd say writing about game development is contributing to actual work on game development in a very meaningful way. Just because it's not contributing to one of the milestones on a project doesn't mean critically thinking about the process is meaningless.

  72. What Gamers Have Been Waiting For by Kichigai+Mentat · · Score: 1
    Or, at least, what I'VE been waiting for. Games like Halo 2 are fun and all, but some of the methodology is kind of brain dead. CTF is classic, Slayer is fun, but to restrict yourself to such mundane game types is like developing the X360 with sprite animation in mind. It's old.

    I've been waiting for a squad-based combat game (not just red team vs. blue team, but groups of players on the same team working together, instead of a mass melee) that actually encouraged cooperation. I've been promised it before (Battlefront II, Republic Commando), but never quite got it. Perhaps now we'll see that. And some more open-ended maps.

    Map design, while it's good for some games, is really lacking. A map is more than just a plane with objects on it. You need to be able to interact with those objects. You need to be able to go INTO buildings, throw boxes, push dumpsters, stack rubble. You know, something resembling more of how you could do things in the real world. Let us up on the roof for God's sake! I shouldn't have to discover an exploit to have a good sniping spot.

    --
    Rawr
  73. Re:marketspeak by master_p · · Score: 1

    You forgot an important word: enterprise. If it is not enterprisy, then it is not good.

  74. Structured coding by jandersen · · Score: 2, Interesting

    Structured coding has so far been the only really big thing in programming; anything else since then has just been fads. Structured programming made it possible to write code that was reasonably easy to follow logically - compare a badly structured COBOL or FORTRAN program to well structured C program to see what I mean.

    The things that have come in since then have been attempts at addressing minor shortcomings in the way people work; and not always very successfully. Compare C and C++: C is syntactically extremely simple, it gives you exactly what is necessary and nothing else. C++ tries to address the perceived shortcomings of C, mostly in the areas of reuse of code and initialisation of variables; but it comes at the cost of being an excessively complicated language and it requires a huge amount of self-discipline to avoid writing impenetrable, convoluted code.

  75. complexity? by Anonymous Coward · · Score: 0

    Not by a long stretch does game development relate to operating system development.. Games are not hard to develop. They cost boatloads of money on artists and middleware and marketing. There is a huge uncertainty about being successful and simple commercial interests in other directions can get a game cancelled. A game does not have any real complex elements. The rendering is a stand alone component, the AI, the sound.. all relatively easy modularized parts.

    Something that compares more to an operating system in terms of complexity is something like a top notch dbms. Or any of the ms office and open office products. A C++ compiler... But a game is not comparable.

  76. Agile development is OS style? by xerxesdaphat · · Score: 1

    Aside from all the utter bullshit marketing/corporate language, this so-called agile development methodology seems to be pretty similar to how people develop outside of any particular methodology constraints (such as the dreaded waterfall, oh how I hate you). In particular, it seems to be particularly close to how the open-source community write software. In this land of eternal betas (not you, Google), this is how it happens; first the bare, most basic, but core features will be written, and then slowly the project will sort of fill out with other important features and polish. In fact, I thought that was part of the Unix philosophy -- didn't Doug McIlroy say `Design and build software, even operating systems, to be tried early, ideally within weeks. Don't hesitate to throw away the clumsy parts and rebuild them.'
                    At the end of the day, I thoroughly dislike any enforced development methodology, but this `agile' system seems to be relatively close to how programmers naturally work, so I'd imagine it's a lot more intuitive to work with.

    --
    The Shoes of the Fisherman's Wife Are Some Jive Ass Slippers
  77. Re:Managers by 1iar_parad0x · · Score: 1

    Which leads to the point that you either need a manager who has some understanding of the business process of software methodology or has a SENIOR developer (read 'architect') who he can rely on. A good manager in the software world needs to understand documentation. They really need quasi-technical skills. Sure, a CIO can leave the details to an architect, but somewhere a quasi-technical needs to be in the decision making loop to provide push-back so the company's "business needs" don't always overrun engineering sensibilities. (Yeah, I feel like a Dilbert comic strip today...)

    --
    What do you mean my sig is repetitive? What do you mean my sig is repetitive? What do you mean....
  78. Strange... by Daegras · · Score: 1
    First off, I agree completely. Having watched other teams use the Waterfall method of game design and development during my previous year in school, I know just how dangerous it is to follow. Teams would find themselves in dire time crunches by the end, cutting out significant parts of their games that made them unique and interesting. The few teams that followed a methodology closer to that of Scrum where the teams that did well and managed to put out complete or near complete products that didn't lose the drive and power of their original designs.

    But my post is actually due to the person who linked in the article. It seems to me like the article is discussing the RESULT of Agile strategy, which is Scrum. So I feel like I looked into the article with the wrong idea because the focus was actually on a spinoff that has been doing well.

    Not sure why I posted, just figured I'd mention it. Offtopic me if you must *shrug*

  79. Re:Managers by Anonymous Coward · · Score: 0

    Hahaha! Metrics! My company has a top level executive that's nuts about metrics. He gives all these nice looking Power Point presentations explaining how this or that has improved. What he doesn't realize is that now that people realize that they actually get rated (even though possibly at a group level) on what they say they spend their time doing, they tend to skew the numbers they turn in to look better. Add to that the fact that if I turned in accurate metric numbers, I'd be spending *all* my time keeping track of the numbers and no time actually doing work. So its garbage in, garbage out!

  80. Re:Managers by Red+Flayer · · Score: 1

    The problem there is twofold -- the exec has poorly designed metrics (if they are so easy to falsify and so difficult to report accurately), and the reporting structure is not sound. They don't have to be complex to be useful.

    --
    "Trolls they were, but filled with the evil will of their master: a fell race..." -- J.R.R. Tolkien on Olog-hai
  81. All I need to know about the waterfall method by siriuskase · · Score: 1

    The term was introduced in 1970 by W. W. Royce; ironically, Royce himself advocated an iterative approach to software development. Royce originally proposed what is now known as the waterfall model as an example of a system that he argued "is risky and invites failure"

    http://en.wikipedia.org/wiki/Waterfall_model

    Thankfully, I'm a hardware engineer and never had to learn about such nonsense.

    --
    If you must moderate, please moderate as irrelevent, not something bad, because I'm sure someone will find this interest
    1. Re:All I need to know about the waterfall method by ClosedSource · · Score: 1

      In other words the waterfall method is more of a straw man than a real methodology.

  82. MOD PARENT DOWN !!! by Anonymous Coward · · Score: 0

    -1 not on bandwagon.

  83. Re:'agile' is neat, but ... by WilliamSChips · · Score: 1

    Your quote reminded me of this quote:
    First they ignore you
    then they laugh at you(this is worthless nonsense)
    then they fight you(this is an interesting, but perverse, point of view; this is true, but quite unimportant)
    then you win(I always said so)
    -Gandhi

    --
    Please, for the good of Humanity, vote Obama.
  84. Agile methods by speakup · · Score: 0

    I use agile methods to play games! First iteration: stay alive for 2 seconds ... dang failed. Second iteration: run a different direction ... dang dead again. Third iteration: jump, then run, anywhere ... dang dead. Fourth iteration: press buttons and randomly move stick ... not again! The game developer's management loves me, I can't get off level-one.

  85. Right on point by AttilaSz · · Score: 1
    functional programming is finally going to come out as a reasonable paradigm over the next 10 years as it will be best able to take advantage of multi-core systems without completely upheaving how you write programs
    I can only agree - wrote this exact same thought (among others) in a recent blog entry of mine http://constc.blogspot.com/2006/06/accomodating-fo r-everyday-parallel.html, in case you're interested.
    --
    Sig erased via substitution of an identical one.
  86. Re:This is nothing new even in pro game developmen by Anonymous Coward · · Score: 0

    Actually, Dungeon Lords was NOT developed using Agile/agile methodologies, nor was it developed using a waterfall method. And methodology has nothing to do with the justification for the game's state of completeness - in the end that rests entirely with end-users who didn't return the game after seeing the state it was in and therefore contributed to publisher profits. If people are willing to pay money for unfinished products then they shouldn't be surprised when that's what they receive.

  87. Re:Managers by thenymph · · Score: 1

    I agree. When have you seen a project manager with a textbook in his hand following institutional guidelines anyway? There are good project managers and there are bad ones. My guess is that the good ones rely on original ideas and a solid structure/organization rather than cookiecutter concepts.