Slashdot Mirror


Game Development In a Post-Agile World

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

30 of 149 comments (clear)

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

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

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

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

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

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

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

      That should be pretty much method-independent.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    3. Re:Conclusions by DamonHD · · Score: 3, Insightful

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

      Rgds

      Damon

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

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

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

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

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

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

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

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

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

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

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

      --
      Camping on quad since 1996.
  2. Not sure how Agile helps game development by dhall · · Score: 3, Insightful

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

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

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

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

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

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

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

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

      --
      Any sufficiently advanced intelligence is indistinguishable from stupidity.
    2. Re:Not sure how Agile helps game development by hackerjoe · · Score: 3, Interesting

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

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

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

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

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

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

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

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

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

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

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

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

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
  3. "Agile" was just a PHB buzzword. by Hurricane78 · · Score: 4, Funny

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

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

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

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

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

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

    --
    Any sufficiently advanced intelligence is indistinguishable from stupidity.
  4. When to use "agile" methods. by Animats · · Score: 5, Insightful

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

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

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

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

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

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

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

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

      --
      We know where leadership by an anti-intellectual "strongman" who scapegoats minorities and likes boisterous rallies goes
  5. Any process is better then no process by LordZardoz · · Score: 4, Insightful

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

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

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

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

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

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

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

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

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

    END COMMUNICATION

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

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

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

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

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

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

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

    ...but I like games.

    1. Re:Staring blankly by Yetihehe · · Score: 2, Insightful

      It's called Cowboy Coding

      --
      Extreme Programming - Redundant Array of Inexpensive Developers
  9. Re:I am a game developer. by maxwell+demon · · Score: 4, Funny

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

    --
    The Tao of math: The numbers you can count are not the real numbers.
  10. Oh ... I did not know ... by angel'o'sphere · · Score: 3, Insightful

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

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

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

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

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

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

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

    angel'o'sphere

    --
    Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  11. Agile without user feedback!??? by Aceticon · · Score: 3, Interesting

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

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

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

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

    Now look at games:

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

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

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

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

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

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

    No, the programmers do.

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

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

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

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

    The problem is not in "Agile" methodology.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      Right methodology for right use.

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

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

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

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

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

      --
      45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
  14. Re:methodology for noobs by Aladrin · · Score: 3, Informative

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

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

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

    --
    "If you make people think they're thinking, they'll love you; But if you really make them think, they'll hate you." - DM
  15. Orientated. by ericvids · · Score: 2, Interesting

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

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

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

    --
    Pet peeve: Profane people propagating perfunctory pedantry.
  16. Re:there is no engineering in software by mcvos · · Score: 2, Insightful

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

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

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

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

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

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

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