Slashdot Mirror


A Decade of Agile Programming — Has It Delivered?

snydeq writes "InfoWorld offers a look back at the first decade of agile programming. Forged in February 2001 when a group of developers convened in Utah to find an alternative to documentation-driven, 'heavyweight' software development practices, The Manifesto for Agile Software Development sought to promote processes that accommodate changing requirements, collaboration with customers, and delivery of software in short iterations. Fast-forward a decade, and agile software development is becoming increasingly commonplace, with software firms adopting agile offshoots such as Scrum, Extreme Programming, and Kanban — a trend some see benefiting software development overall."

395 comments

  1. No by Anonymous Coward · · Score: 1, Insightful

    No

    1. Re:No by Anonymous Coward · · Score: 0, Insightful

      Yes!

    2. Re:No by Anonymous Coward · · Score: 1, Funny

      You're just not doing it right then. ;)

    3. Re:No by mcgrew · · Score: 3, Interesting

      From languages I've seen, programming has regressed in the last decade. When Grace Hopper wrote the first compiler, her dream was an english-like language that computers and people could both understand easily with a minimum of training. She co-wrote COBOL as the second compiler.

      Older languages, like the mainframe DBMS NOMAD and the PC DBMS dBase were IMO brilliant. They needed little documentation, and no curly braces or other such nonsense you find in modern languages like C or Java.

      The "language" I hate most is MS Access. Convoluted and unintuitive, you don't really write anything, and what's produced is "visual basic" and the equally unreadable SQL.

      I hate it. I'd rather program in assembly, so I can know what registers are being accessed, whether I pushed or popped a stack (and which stack), etc.

      I hate programming in a language that doesn't let me feel the metal. Hell, I'd tale old fashioned 1980 BASIC over the newer languages; it doesn't take long to learn not to write spagetti.

    4. Re:No by abigor · · Score: 2, Insightful

      This is pretty much the ultimate "get off my lawn" post.

    5. Re:No by freeshoes · · Score: 0

      Modern like C and MS Access is a language? Don't put C and Java together, one is a efficient, correct level of abstraction, powerful language, the other is a bloated, slow, over protective, not that portable pile of junk. "But C is like a sharp tool you can shoot yourself" If you were cutting down a tree would you want to use a blunt axe, in case you were such a moron you would slice your own arm off?

    6. Re:No by AVee · · Score: 1

      No, but I would want my colleagues to have a blunt axe in case they chop my arm of. It's the same when programming... Mostly the same at least, lumberjacks generally do get proper training.

    7. Re:No by mcgrew · · Score: 1

      Actually, yes, I'm old school. No reason for those damned kids to mod me down, though!

    8. Re:No by An+ominous+Cow+art · · Score: 1

      When Grace Hopper wrote the first compiler, her dream was an english-like language that computers and people could both understand easily with a minimum of training. She co-wrote COBOL as the second compiler.

      Older languages, like the mainframe DBMS NOMAD and the PC DBMS dBase were IMO brilliant. They needed little documentation, and no curly braces or other such nonsense you find in modern languages like C or Java.

      I began working with dBase II/III and FoxBase back in 1988 or so, and still do some work with VFP today. The language itself always reminded me of a mix of Cobol, Pascal and Basic - all designed to be relatively English-like and/or easy to use.

      These days, I'm a fan of Python, which has the advantage of being easy to use, but with limitless power.

    9. Re:No by pigiron · · Score: 1

      Get real. Nomad is no more "readable" than SQL.

    10. Re:No by bhcompy · · Score: 1

      See the PICK database. The scripting/query language is called ENGLISH. And it's pretty damn intuitive. Blows SQL out of the water as far as query capabilities go(when coupled with custom dictionary items) and in readability

    11. Re:No by fwarren · · Score: 3, Funny

      Old School here too. I do what I have to, to make a living. For fun, I program in FORTH and store my source code in 1K Screens represented as 16 lines of 64 characters each.

      Simplicity and elegance is what I am looking for. A new Forth definition should be about 7 to 9 words long (not including noise like + - / ). If I somehow end up in a situation where I run out of room, It means I have used 15 lines for creating my definition. Which is another way of saying "Hey! your doing it wrong".

      I think programming should be taught on an emulator of a Commodore64. Once you learn the computer from one end to the other and how to take advantage of all of it and understand all of its concepts, then you can move onto programming in a more abstract environment.

      --
      vi + /etc over regedit any day of the week.
    12. Re:No by FooAtWFU · · Score: 1
      My paycheck says otherwise. Well, the paycheck, and the ~$200,000+ in equity-related bonuses over the past two years.

      Just sayin'. Don't know about you, but we're doing it right over here.

      --
      The World Wide Web is dying. Soon, we shall have only the Internet.
    13. Re:No by abigor · · Score: 1

      I completely agree with the concept of teaching on very basic machines where students can learn everything.

    14. Re:No by mcgrew · · Score: 1

      Haven't heard of it, will have to research. Thanks!

    15. Re:No by VolciMaster · · Score: 1

      Older languages, like the mainframe DBMS NOMAD and the PC DBMS dBase were IMO brilliant. They needed little documentation, and no curly braces or other such nonsense you find in modern languages like C or Java.

      C is only 8 years newer than BASIC (being developed in 1972 instead of 1964). That hardly makes it more "modern" than BASIC - if you want to look at "modern" try F#, C#, or even Python or Ruby.

    16. Re:No by bhcompy · · Score: 1

      There are a different names for it nowadays, but the most commercial is probably Reality, which emulates PICK under *nix and gives it network capability(though I guess they've released a Windows version of it as well recently). PICK is an OS and a database at the same time.

    17. Re:No by VoidCrow · · Score: 1

      C isn't that modern any more. And, I found Python to be pretty trivial to learn. The list handling and functional programming features are sweet, and overall the language is easy to read, easy to write and powerful. It isn't perfect, but it's nice.

    18. Re:No by mcgrew · · Score: 2, Funny

      I think programming should be taught on an emulator of a Commodore64.

      No, 64k is too much memory. Teach them on a TS-1000 emulator with its 4k or RAM. You learn to write really tight and fast code when you're programming in 4k on a chip that's only 1 mHz clock speed.

    19. Re:No by mcgrew · · Score: 1

      C has too much syntax for my liking. MS Access isn't my idea of a "languuage". languages are words, not shoving boxes around a screen, which is basically what Access "programming" is.

      In Access, if you want to do something MS didn't think of, it's hard as hell. I could make a computer running dBase do damned near anything I wanted it to, with Access I can only make it do what Microsoft wants it to.

    20. Re:No by fwarren · · Score: 1

      What is assembly language like on the TS-1000? The 6502 is a wonderful chip to learn on. Accumulator, X-Register, Y-Register, Staus Flags (7), Stack Pointer and Program Counter. That is 6 items to track at all times. Also the I/O, bitmapped graphics, spirtes, user modifiable character sets. There are a LOT of basic concepts that can be taught there.

      --
      vi + /etc over regedit any day of the week.
    21. Re:No by mcgrew · · Score: 1

      They're pretty much the same; either would do the trick. An analogy would be between a Unix shell and a DOS batch file, in that the commands are different, but they do pretty much the same thing.

    22. Re:No by sapgau · · Score: 1

      Agreed hahaha!!

    23. Re:No by icebraining · · Score: 1

      Programmers working with high-level languages achieve better productivity and quality than those working with lower-level languages. Languages such as C++, Java, Smalltalk, and Visual Basic have been credited with improving productivity, reliability, simplicity, and comprehensibility by factors of 5 to 15 over low-level languages such as assembly and C (Brooks 1987, Jones 1998, Boehm 2000). You save time when you don't need to have an awards ceremony every time a C statement does what it's supposed to. Moreover, higher-level languages are more expressive than lower-level languages. Each line of code says more.

      Steve McConnell, Code Complete (2004)

    24. Re:No by sockman · · Score: 1

      I'd want a sharp axe, so the wound was cleaner and they could reattach the arm later.

    25. Re:No by turgid · · Score: 1

      The TS-1000 is basically a Sinclair ZX81 with extra RAM (the ZX81 had 1k). It has a Z80 CPU (actually an NEC clone, because that was cheaper).

      The Z80 is much nicer to program than the 6502. It has more registers and register pairs for doing 16-bit arithmetic. The two index registers (IX and IY) are 16-bit and so is the stack pointer (SP). The 8-bit accumulator, A, is sometimes paired with F, the flags register. The other register pairs are BC (a 16-bit loop counter), DE, a 16-bit source address register, and HL, the 16-bit accumulator. They can be used for general storage too.

      The Z80 has separate IO and data buses, so IO devices don't have to take up space in the memory map.

      There are block move and compare instructions (LDIR, CPIR, LDDR, CPDR), bit shifts and rotations, a vectored interrupt mode in addition to the simpler ones...and an alternate register set that can be switched in and out quickly for low-latency interrupt handling (EX AF, AF' and EXX).

      The Z80 is binary backwards-compatible with the intel 8080.

      The extra registers, 16-bit arithmetic and wide index registers are luxury compared to the 6502. I really can't understand by the 6502 is so revered on slashdot...

    26. Re:No by fusiongyro · · Score: 1

      When it comes to simplicity, you have to ask, to whom? A stick shift is closer to the metal, but it takes more training to use than an automatic. It can also limit possibilities. I had a friend who staunchly refused to buy a hybrid until he could get one with a manual shift. It was quite a shock to him that the design of hybrids precludes it.

      I have friends who pine for the good old days of dBase and FoxPro. Have you watched them actually write a program though? They're ugly and unintuitive, because those weren't important concerns when they began to program. They assume single user access, because computers were scarce. Yes, these programs run faster. Yes, older programmers understand the machine better. But things change, they change faster and faster, and everything continues to get more complicated. To do assembly programming on an 386 is not like doing assembly programming on an x86-64 with SSE and all that other good stuff. You have to have good understanding of vector and matrix arithmetic to use these features, you have to worry about whether stuff is in L1, L2 or L3 cache. You have to worry about cache lines. You have to worry about whether or not you're reading sequentially from the disk, or whether stuff is coming out of the disk's own cache.

      I think we're stuck between two extremes. To stay married to the metal is limiting. Oftentimes, it is possible to add capabilities to the hardware that are hard to understand how to make optimal use of, but it still helps because the compiler writers understand them and can ensure they are used appropriately. Hardware manufacturers on all sides are adding complexity: the CPU, the video card, the storage, the network card. They're intended to be made use of by people who understand those aspects in great depth. If they had to be comprehensible to everyone who can program, we would still be using 2400 baud modems with our 386's and 8-color video, because that's what you can do when you have to understand everything from top to bottom. I wager almost nobody has a full and complete understanding of absolutely everything that happens between entering the URL and the page being rendered on the screen.

      It's hard to give up control. But I have to ask if you're as productive as those of us who have given up control. My software tends to output HTML. It gets rendered by the browser and I don't really understand all that goes into that. I understand enough of CSS to change the way it looks. My problem is understanding SQL. I understand SQL well enough that MySQL and Access annoy me, and dBase would be a constant burden to me. My depth there is matched by the power of PostgreSQL and other true RDBMSes. I get more done this way, and my interfaces are not deplorable, and making small changes is easy and big ones are possible. It's a different way of working than application development. I worry about fewer things and get more done. Whatever technology enables that is the one that wins.

      The other extreme, which I don't like either, is reinvention of the wheel and ignoring layers below that have already solved the same problems. I know you balk at that because you see it happening all over the place. I balk at it too. However, at the end of the day, you aren't the one responsible for those reinventions. If you are not the one reinventing the wheel, why get so worked up about it? Limit the effect of that kind of thing on you and you can be OK without having to curmudgeonly dawdle on ancient irrelevancies while you're programming.

    27. Re:No by Darinbob · · Score: 1

      Makes sense. The only people who've ever expressed any admiration for "agile" methods tend to be those who are young, and who are in young industries. I've never seen seasoned engineers look at it twice (not counting those who were brainwashed by management training). You just can't design large scale and long term projects this way, it's far more appropriate when everything is a micro task and deliverables are only a month or two away.

    28. Re:No by Darinbob · · Score: 1

      Basic was never intended to be a production language. It was intended for learning how to program. It was a bit behind the times too in that it encouraged a goto-heavy style with no structured control constructs. Basic was basically backwards with respect to the state of the art. C used modern concepts and was intended for professionals to create production programs.

      If I designed a lousy language today that only used goto statements for flow control, it might be newer than C but it certainly wouldn't be more modern than C.

    29. Re:No by chrismcb · · Score: 2, Insightful

      You like COBOL because its a nice verbose language. But you had verbose languages because you can't tell what stack you are pushing? You love BASIC, but hate Visual Basic, I guess because there are no line numbers? Make up your mind. You know COBOL doesn't give you any more control of the underlying structure than C# does.

    30. Re:No by Jane+Q.+Public · · Score: 1

      Except that it just isn't so.

      HERE is a list of 50 Ruby on Rails websites... the majority of which were built using one or another variant of Agile programming.

      Agile is actually better at large projects. Those who think otherwise really don't understand how or why it works. The reason "seasoned engineers" don't look at it twice is because it is alien to the old-school methods they were taught, and a threat to the way they have always done things and the huge investment their companies have in "waterfall" methods.

    31. Re:No by Darinbob · · Score: 1

      These are "websites". I am completely unfamiliar with them. I thought they were composed of lots of tiny projects. Ie, they build on top of a database, but the database itself can't be designed and built using a two week incremental model, the network stack isn't built using a two week incremental model, the OS isn't built using a two week incremental model...

      There is more than just agile and waterfall in the world. Just because some people have a religious attachment to Agile does not mean that unbelievers have an attachment to waterfall. Most engineers are trying to get the job done, and the project is more important than the fashionable management method of the month.

    32. Re:No by UnknownSoldier · · Score: 1

      > C has too much syntax for my liking.

      Seriously?! I think that's the first time I've ever seen someone saw C was too "big."

      What would you remove/redo in C if you could? (Inconsistent syntax not withstanding.)

    33. Re:No by Jane+Q.+Public · · Score: 1

      You are showing your ignorance, in at least several ways.

      First, if you don't think websites like Twitter or Yellow Pages.com constitute "large software projects", then you don't understand how they work. Some websites are in fact among the largest and most complex works of software ever built. Ever successfully built, I should say.

      The only reason they might be even somewhat accurately perceived as "lots of tiny projects", is if they were developed using one or another "Agile"-derived method. Anything else, by definition, is "waterfall". In fact it is still one large project, but it is divided into many small tasks. This is actually very different from the way you described it.

      And when I say "by definition", I mean exactly that. When you say there is more than just waterfall and agile, you are actually incorrect. Agile -- and its many variants, including Scrum and Kanban -- make up a group embracing the same general concept. The term "waterfall" was coined by those very people, to describe "the other" major way of doing things: corporate-centric, top-down, traditionally-planned software projects. So realistically there are only two groups: agile and waterfall.

      Okay, you might find a few strays wandering off in some other, rare and unfollowed direction, but they are just the few exceptions that prove the rule, as the saying goes.

    34. Re:No by fwarren · · Score: 1

      Downside: The Z80 is more complex, more register/register pairs to track and the added complexity of a separate IO bus. Also, a more powerful and complex set of operands.

      Upside: Parity with the 8080 means the conceptual model more closely matches modem PC's, including the IO bus, more registers.

      The reverence for the 6502 comes from the fact that many Slashdoters over 35 learned to program on Commodore, Atari and Apple computers, all of which are 6502 based. With only 6 items to track and only 1 stack, it is much easier to learn on. As your programming skills increase, you add routines to your library such as multiplication, divide and block move/compares.

      The Z80 has way, way, way to many registers to comfortably keep in mind at all time for someone learning to program. That was MY thought back, in 1984 when first exposed to it. Since a register can be 16 bit (AX) or 2 8 bit reigsters (AH and HL).A new programmer has to be mindful of not just the accumulator A on the 6502, but AX, BX, CX, and DX, and if they are 16 bit or 8 bit at the moment AND the 2nd register set that can be swapped in. With power comes complexity. For basics, the 6502 has it hands down.

      --
      vi + /etc over regedit any day of the week.
  2. Maybe they did it wrong... by TheFakeMcCoy · · Score: 5, Interesting

    A team in my the company I worked for was designing a new set of software and were utilizing Agile development. Well, seems they spent so much time going back and changing the software due to the changing demands that they never got anything finished to demonstrate so they wiped out the project team.

    1. Re:Maybe they did it wrong... by MadKeithV · · Score: 5, Insightful

      "You are doing it wrong" is the perpetual excuse of Agilists when you say that agile methods have not worked for you. They are hiding behind a certain impossible to define or explain "something" that you supposedly are not doing or not doing right that causes your project to fail, because if you were Doing Agile Right (tm) (whatever that means) your project would have been a resounding success.

      In the end Fred Brooks got it right decades ago: "there is no silver bullet". Software development is just hard. Anything promising massive gains in success or effectiveness is snake oil.

    2. Re:Maybe they did it wrong... by 91degrees · · Score: 5, Insightful

      Well, they are doing it wrong.

      The something is possible to define and explain but is typically different in different cases.

      In this case it seems that the problem is changing requirements. That will kill any project no matter what the methodology.

    3. Re:Maybe they did it wrong... by MadKeithV · · Score: 5, Insightful

      In this case it seems that the problem is changing requirements. That will kill any project no matter what the methodology.

      This is exactly one of the key points that the Agile community keep trying to drill into us! The Agile Manifesto explicitly states "Responding to change over following a plan", which is translated into the principle "Welcome changing requirements, even late in development."

    4. Re:Maybe they did it wrong... by Superken7 · · Score: 4, Interesting

      I fail to understand why that failing was related to the methodology?

      "Due to changing demands"

      It doesn't matter which methodology you use, if your goal is constantly changing you won't get anything finished, almost "by definition". If it wasn't that bad, maybe they weren't familiar enough with the methodology?

      In fact, I'd say that agile software development methodologies work best for such projects, because they are aimed at constantly changing demands.
      That's why almost all startups use agile software development, because *every* startup goes through a process like (very grossly, mind you):

      1. search a business model
      2. execute business model
      3. realize 1) wasn't realistic, change it
      4. goto 1

      The transition process (usually referred to as pivoting) needs to occur *rapidly* and *continuously*, hence the agile software development.

      Of course, if you keep changing the initial goal, you will never get finished, doesn't matter which methodology you use.

    5. Re:Maybe they did it wrong... by William+Robinson · · Score: 3, Insightful

      Software development requires Creativity, Discipline and many more things apart from Agile, and the process goes through lot of iterations, training, discussions and confidence building among developers to motivate them to follow process in the company. Also, the process to be adapted should be close to the type of Software company is focused on and what developers are comfortable with. Many process designers/implementers forget this fact and blindly throw something at them and expect results overnight and get surprised when it ends up disastrous.

      It takes time to show them the processes are here to improve quality. Agile or any other Software Engineering process is not bad. The process of process implementation could be bad.

      Also, process implementation is a difficult task if upper management believes that it is job of juniors.

      So yes, I agree with you that Maybe they did it wrong way. If somebody believes Agile is going to work like a switch, they are mistaken.

      My 2 cents.

    6. Re:Maybe they did it wrong... by JLangbridge · · Score: 5, Interesting

      I was fired from a job because of Agile... I'm a C developper, and one part of the server had Java development. Well, guess who had to take the post-it, because "that is the way things are done". So here I was doing Java, on a ticket that was supposed to take a day, I did it in 4. I had to take the ticket, because that is what Agile is about. During the scrum meetings, I said I had problems with it, but I couldn't ask for help, because I took the ticket, and "that is the way things are done". I was a 6-month trial period, so they sacked me with no warning, because I was crap at my job. Since then I've been working with multinationals, and the previous company has made one single iPhone App that has a rating of 1-star, their previous flagship application is now one-star too (and on the verge of a lawsuit because of a dodgy change of contract for the application). Since then, I've had real Agile training, and the trainer explained the way things were really done, and at least I know I wasn't in the wrong. Still, my first Agile experience cost me my job. That's what I remember.

      --
      The urgent is done, the impossible is on the way, for miracles expect a small delay.
    7. Re:Maybe they did it wrong... by Entrope · · Score: 5, Insightful

      Agile principle #2 (from http://agilemanifesto.org/principles.html): "Welcome changing requirements, even late in
      development." Other methodologies typically draw a line in the sand to recognize the costs of changing requirements late in development. They don't often forbid crossing that line, but they encourage people to honestly evaluate the trade-offs involved in changing requirements.

    8. Re:Maybe they did it wrong... by dkleinsc · · Score: 4, Informative

      Well, yes and no.

      There have been some developments since Brooks wrote No Silver Bullet that have helped by attacking the accidental complexity of software development - widespread use of garbage collection, for instance. But Brooks is still absolutely correct that the complexities of software have a lot more to do with the complexities of the human mental modeling, heuristics, and decisions that software replaces than they do with the challenge of converting that to something the computer can understand.

      --
      I am officially gone from /. Long live http://www.soylentnews.com/
    9. Re:Maybe they did it wrong... by Anonymous Coward · · Score: 2, Interesting

      +1 yes

      Verily I say unto you, Agile is the development methodology of mystics. You don't fail or succeed on this basis alone. You also have to be not an idiot, and you must not have idiot managers and idiot customers. Agile doesn't prevent anybody from being these things. Nor does waterfall turn you into these things.

      "You're doing it wrong" is a phrase you hear uttered by proponents of faith healing, psychics, homeopaths, practitioners of feng shui, gingers, etc when their particular brand of woowoo fails to deliver on its promises.

      Now, that's not to say someone *isn't*, in fact, doing it wrong. But I am saying that you can't necessarily take next step and conclude that there is a *right* way.

    10. Re:Maybe they did it wrong... by MadKeithV · · Score: 1

      Well, yes and no.

      There have been some developments since Brooks wrote No Silver Bullet that have helped by attacking the accidental complexity of software development - widespread use of garbage collection, for instance. But Brooks is still absolutely correct that the complexities of software have a lot more to do with the complexities of the human mental modeling, heuristics, and decisions that software replaces than they do with the challenge of converting that to something the computer can understand.

      Oh man, wrong tree :)
      I'm involved in a .NET to native wrapping project, and I'm NOT friends with the garbage collector right now.

      I wasn't really referring to the detail of Brooks' essay, just the overall idea that there is no silver bullet to make solving hard problems easy. The "hard problems" are the things that have not been done before that our customers are asking us to develop.

    11. Re:Maybe they did it wrong... by Eraesr · · Score: 1

      No, really... no.
      If using a methodology where you start off with a design which firmly sets the requirements of the software, then changing requirements is something that simply won't happen.
      Granted, it's not a perfect world so new things are bound to slip through, but that's often more a case of a manager forcing it down your throat, forcing you to deviate from the methodology rather than the methodology being incorrect.

    12. Re:Maybe they did it wrong... by Jurily · · Score: 4, Funny

      Shhh, we're talking about Agile. Put your logic away and break out the Bib^Wmanifesto.

    13. Re:Maybe they did it wrong... by iangoldby · · Score: 4, Insightful

      I was fired from a job because of Agile... Since then, I've had real Agile training... Still, my first Agile experience cost me my job.

      I don't know enough about Agile to make a judgment myself, but you've practically said it yourself: your first experience wasn't Agile, it was just something that someone called 'Agile'.

    14. Re:Maybe they did it wrong... by dropadrop · · Score: 1

      Somehow I get a feeling that this was mainly a problem with the employer, or the way they implemented agile programming.

    15. Re:Maybe they did it wrong... by AnonymousClown · · Score: 1

      The transition process (usually referred to as pivoting) needs to occur *rapidly* and *continuously*, hence the agile software development.

      We called that "Cluster Fuck" development in my day.

      --
      RIP America

      July 4, 1776 - September 11, 2001

    16. Re:Maybe they did it wrong... by gutnor · · Score: 5, Insightful
      The change are welcome in Agile indeed. That does not mean that there is no consequence of that change. A lot of changed requirement means a later release and if you keep changing, you will never release anything. But there is no methodology that can prevent that.

      To take a car analogy - using Agile is like using a GPS: it is a methodology that tells you were you are, and can adapt if you take a wrong turn or if you change the destination. Like the GPS, if you cannot make up your mind where you are going (or do follow the indication of the GPS gives - been there, ...) you will not get anywhere.

    17. Re:Maybe they did it wrong... by jfanning · · Score: 3, Insightful

      Uh, that's not Agile. Nearly everything you mentioned there is so anti-agile I can't even start breaking it down. Slapping an Agile tag on it doesn't make it agile. No mater what most companies think.

      I have seen frequently referenced that the switch to agile takes up to 18 months to produce results. And even then there have been studies that find no significant enhancement in productivity.

      As far as I can see there is no actual benefit in productivity at all moving to agile. It just gives greater clarity to the current state of development and should produce software with lower levels of faults through automated testing and continuous integration.

    18. Re:Maybe they did it wrong... by elrous0 · · Score: 5, Insightful

      Your post reminds me of a Muslim friend who told me once (dead seriously) that Muslims didn't attack the World Trade Center. They weren't REAL Muslims, you see.

      --
      SJW: Someone who has run out of real oppression, and has to fake it.
    19. Re:Maybe they did it wrong... by Anonymous Coward · · Score: 0

      you don't need agile, you need git. git makes it easy to branch and merge, trying out radically new features (or total rewrites) with no pain. git.

    20. Re:Maybe they did it wrong... by gstoddart · · Score: 1

      so they wiped out the project team.

      Wow, that's a little harsh. ;-)

      --
      Lost at C:>. Found at C.
    21. Re:Maybe they did it wrong... by Anonymous Coward · · Score: 0

      it's because as purists as they were, they forgot an important addition to that principle; it should be stated as follow:

      "welcome changing requirements, even late in development, but do not forget of charging it up front"

    22. Re:Maybe they did it wrong... by Anonymous Coward · · Score: 3, Insightful

      Firstly, I think Agile has delivered. The real problem is that most companies (people) have used the term, "agile" to mean I don't really have to have discipline because I'm being so agile. In my experience, management loves the "code done in two weeks" part, but they hate that the rest of it has to be done in two week increments part. In my opinion, Agile methodologies have had the least affect on developers. Most of the rest of IT is used to a leisurely pace where they have meetings for six months to decide what programmers should do in two weeks. Using an agile methodology, these same folks are under the gun to deliver and, in my experience, they don't like it.

    23. Re:Maybe they did it wrong... by Anonymous Coward · · Score: 0

      Ah, the good old No Real Scotsman fallacy 3

    24. Re:Maybe they did it wrong... by TrueKonrads · · Score: 1

      The key message behind that principle is: "Don't deliver working software that has no more purpose for business". If you can deliver a well QA'd and developed software that is obsolete by the time it is shipped then that is money wasted. If the development overall objective is always slipping, but along the way useful software modules are delivered to the users and they make money, then it is a success.

      --
      Lone Gunmen crew.
    25. Re:Maybe they did it wrong... by mkawick · · Score: 2, Interesting

      Alright, I'll bite. What do you mean that you're doing it wrong. Agile is supposed to be many things but as long as you follow a few key ideas, it'll work better than waterfall.

      1) Continuous delivery. Deliver something every two weeks.
      2) Quickly fail. If a problem is found in a design or a project, find it early and save tons of money.
      3) Small teams. No 80-person teams here.
      4) Small tasks that you should accomplish quickly helping with visibility
      5) Highly visible tasks and burndowns to help with "buy in" from upper mgmt
      6) Open communication meaning that the team has the responsibility of fixing things, identifying poor performers, and helping people to succeed.

      No manager... just scrum masters.

      Just these few key points make a world of difference and can be key to success. I haven't seen it fail but maybe you were in a company of design-by-personality...

    26. Re:Maybe they did it wrong... by nschubach · · Score: 1

      My supervisor got the brilliant idea to implement Scrum ...

      The only problem is that it's not Scrum. We meet every day and justify "yesterday." If you can't come up with arbitrary numbers to say you worked on something (not just your projects, you must include the 2 hours you spent helping someone with their project) for at least 6 hours you start getting questioned about what you did yesterday in front of the "team."

      --
      Every time I start to have faith in humanity, I ruin it by driving to work between 7 and 8 am.
    27. Re:Maybe they did it wrong... by Anonymous Coward · · Score: 2, Insightful

      You also have to be not an idiot, and you must not have idiot managers and idiot customers.

      Therefore, it is always doomed to failure, since at least one of those will always be true.

      The most successful model will be one that assumes all of those are going to be true.

    28. Re:Maybe they did it wrong... by mkawick · · Score: 1

      Welcome change...but every two weeks. I do see this too often.. every day the manager comes in with a new idea and the team jumps on it. This is called a sprint hijack and can destroy morale and productivity. After a sprint begins, the team should be 'locked down' and any new ideas should be added to the backlog. When you do your sprint planning, then you go through the backlog and decide what's important.

      You would never deliver if you had new requirements every day. Scrum is meant to always deliver and you should deliver something every two weeks.

    29. Re:Maybe they did it wrong... by Anonymous Coward · · Score: 0

      Yeah! Wouldn't it be so much better if they just ignored the changing demands and built one perfect piece of software that did nothing of what the client wanted it to do?

      Client: "But we wanted a web server!"
      Team: "Shut up! We built you an IRC server and it's the best on earth!"

    30. Re:Maybe they did it wrong... by Anonymous Coward · · Score: 0

      this is just a very small aspect.

      the problem is, programming requires effort, commitment, investment and most importantly: continuous improvement.

      most manager today think that one something passed QA, it is set in stone never to be changed again, because going back will kill th project. if it is not a feature on the program, is a the build system, or the workstations, or the ide.

      we're on a so called 'agile' team, with two week delivery iterations, and the freaking build/delivery system means the team is blocked three days every two week. that is, a 30% overhead because of the build system and there is no freaking time (as the manager say) to fix the damned build to make it automatic. we have one more year work ahead, with a 30% overhead planned, and no time to remove the overhead?

      problem is, managers should be more focused on managing the team than managing stakeholders expectations. let the team meet that, and do something for the day to day problems. that is.

    31. Re:Maybe they did it wrong... by Anonymous Coward · · Score: 0

      ... but when you read the description of the "agile process" some of these failing teams have followed it's obvious that they're doing it wrong. It's not enough to just call your process agile.

      Lets say I'm baking a chocolate cake.... and I have a really good recipe, but then I replace the butter with water, the sugar with salt and the flour with sand and the cake tastes like shit. Is that the fault of the original recipe that I couldn't be bothered to follow or me?

    32. Re:Maybe they did it wrong... by Not_Wiggins · · Score: 1

      It isn't that requirements shouldn't be re-evaluated or should never change... this principle of accepting change in Agile makes perfect sense in the context of "providing a solution that meets the actual need."

      The challenge comes in with education of the non-implementers who have been sold on their development teams utilizing this methodology.

      My experience with "Agile" (can't say the intended way, just the way it has been bastardized) can be summarized with this anecdote: Business guy comes in and wants to fundamentally change what is being delivered for a project. And, no... the "deadline" for when the project is needed isn't changing. But, that should be ok, right? Because Agile allows for changing requirements even late in development.

      Don't get me wrong. Agile vs Waterfall (for some project types) is vastly superior. Delivering incremental, meaningful software frequently can help the business evaluate if what was asked for is on the right track or not. But, in my experience, rarely does the whole team understand the use/application of this methodology. People understand in Waterfall "if I don't get the requirements right, it is my fault" because it has been around for a long time and is widely implemented across many industries.

      Even with 10 years, Agile methodology hasn't seeped into enough minds cross-discipline to reach this same tipping point. Until that happens, I see Agile representing both/either "we can change it whenever with no consequences" (which ISN'T what Agile is about) and "we can do complete development without the pain of any sort of documentation" (the mis-perception that it completely eliminates culpability for the business for not defining what is needed).
      Just my $.02.

      --
      Diplomacy is the art of saying, "Nice doggie!" until you can find a rock.
    33. Re:Maybe they did it wrong... by 99BottlesOfBeerInMyF · · Score: 1

      I think maybe what some people are misunderstanding is that there is cost, explained to the customer as part of the process, for such changes. You see sometimes you absolutely need to change the requirements late in the development process; otherwise you finish the project but it doesn't do what the customer needs it to. Seriously, if you have a project and right near the end the customer tells you they were purchased and by fiat need to switch the networking protocol on which the app relies to comply with the new company servers that have replaced the old ones entirely, what are your options?

      You can:

      1. change at the last minute and hopefully your development method has a process for doing this;
      2. Or you can finish the project as specced and then it gets trashed because it is useless.

      I fail to see how you can blame the development methodology for being flexible enough to not fall over. I mean have people ever been in an Agile planning session with a customer? When they change the requirements they see a fair estimate of how much time that is going to cost them and how long and how expensive the project is now going to be. Further, they have a history of these decisions going back. If they're plain stupid or wasteful they can ruin the project, but hey that's not dependent upon the development method as I'm sure about 99% of developers can attest.

    34. Re:Maybe they did it wrong... by MadKeithV · · Score: 1

      Therefore, it is always doomed to failure, since at least one of those will always be true.

      The most successful model will be one that assumes all of those are going to be true.

      That's probably the most succinct formulation of the problem and the proper path to a solution I've seen. Well done.

    35. Re:Maybe they did it wrong... by Anonymous Coward · · Score: 1, Insightful

      Your post sounds sarcastic although your friend makes a lot of sense. To most Muslims, highly radical types are horrible people. Of course, to radical Muslims, the normal people aren't real Muslims in turn.

    36. Re:Maybe they did it wrong... by somersault · · Score: 1

      If using a methodology where you start off with a design which firmly sets the requirements of the software, then changing requirements is something that simply won't happen.

      Considering the developers are rarely the ones setting requirements, I don't see how you can say this. Even if you ask for a specific set of requirements, the actual end users' requirements may change during the time that it takes to write the app.

      For example my current job is to replace a bunch of spreadsheets with a web app to keep track of various contracts that our sales team are working on, but they have several times added in some new sections to the spreadsheets which I then have to duplicate in the database and interface. In some cases the changes have made little difference, in others they have meant completely rethinking the design of some parts of the interface.

      --
      which is totally what she said
    37. Re:Maybe they did it wrong... by LongearedBat · · Score: 1

      Geez, they weren't particularly agile. I feel for you. :/

      I might not know much about Agile methodology, but I do know one needs an agile approach.

    38. Re:Maybe they did it wrong... by Anonymous Coward · · Score: 1, Insightful

      You were fired because ... they did it wrong.

      1) You were forced to take the ticket: wrong

      2) You were denied help when you asked: wrong

      3) You were held to an _estimate_ which happened to be off by a factor of 4: wrong

    39. Re:Maybe they did it wrong... by Anonymous Coward · · Score: 0

      Lots of thuggery costumes itself as religion (or patriotism for that matter), it's kind of how the world works; or did you not notice.

    40. Re:Maybe they did it wrong... by Anonymous Coward · · Score: 0

      7) Participate in trust falls, get your e-meter screening, and drink the Kool-Aid.

      Anyone who can claim that one development process is better in all situations than another is either high off their asses or trying to push their book.

    41. Re:Maybe they did it wrong... by Barlo_Mung_42 · · Score: 4, Informative

      No true Scotsman fallacy:
      http://en.wikipedia.org/wiki/No_true_Scotsman

    42. Re:Maybe they did it wrong... by qwijibo · · Score: 2, Interesting

      The reason it looks like magic is because it requires at least one person who Truly Gets It. It's easy to get business people to buy flash, because they cannot measure substance, nor can they differentiate between skill and luck with past experience.

      For Agile methods to work, you need at least one person who sees the whole big picture, and given enough time and/or other good people to work with, could implement everything from scratch. Once you have that person and a commitment to make the project work, you'll succeed. If you don't have that person, your odds are just as good as any other poorly managed software project.

      I worked on a project where we had 6 months to do more than others had done in 18-24 months in the past. The requirements were subject to change on the fly, but the big picture was understood well enough by everyone to make sure that we kept going down the right path. We bought three off the shelf software components that were supposed to be the building blocks of the project. In the end, we used one, abandoned one, and had to do a lot of work to make the third one usable for our purposes. From a functionality perspective, buying the software covered 10-20% of the work that needed to be done to create a viable solution.

      There were several times where the management direction would have badly crippled us further into development. However, our management trusted our recommendations and later in the process learned that what we were advocating had been right all along, but wasn't obvious until core requirements changed later.

      Without someone who has a deep understanding of software development and all of the things that go into it, the whole process looks like magic.

    43. Re:Maybe they did it wrong... by CarpetShark · · Score: 1

      "so they wiped out the project team"

      Murder seems a little over the top.

    44. Re:Maybe they did it wrong... by qwijibo · · Score: 1

      If the core goal keeps changing, you're doomed. However, it's possible to make major changes to key requirements in order to keep the project on track.

      I implemented a data warehouse where we had purchased some address parsing software. The addresses in places like Brazil and Mexico are incredibly inconsistent compared to US addresses, so the software simply did not work. We could have spent an infinite amount of time trying to customize the software we bought to do what we needed and it simply could not have worked. Instead, I wrote my own process from scratch that ran circles around anything we could get out of the software we bought, so we abandoned that investment and used my code. That was one of 3 major components in the process that had to be completely rewritten. Sometimes the right solution is to recognize that starting over is the fasted and most productive path, regardless of previous investment of time and money.

      The goal, even if somewhat vague, should be solid and understood by everyone. The agile approach is about starting small and making it better. Nothing ever gets to perfection with the agile approach, but if you get things to be good enough on the key features, it counts as a success. If only Microsoft could raise their standards to "good enough". =)

    45. Re:Maybe they did it wrong... by n1ckml007 · · Score: 1
    46. Re:Maybe they did it wrong... by daem0n1x · · Score: 1

      .. every day the manager comes in with a new idea and the team jumps on it. This is called a sprint hijack and can destroy morale and productivity.

      Oh, shit. Do you work in my company?

    47. Re:Maybe they did it wrong... by Gulthek · · Score: 1

      Wow, that's a highly effective explanation. And a car analogy to boot.

    48. Re:Maybe they did it wrong... by donscarletti · · Score: 1

      Wow, if you lost that job, it sounds like you have a lot to be grateful to Agile for. Though it sounds like these guys would have done badly given any development style they had chosen, had they gone for something they had called "waterfall" or anything else, they would have implemented it in practically the same way and met the same problems for the same reasons. I personally believe that if a company needs to use a development style with a name, it generally means that they do not understand their own situation well enough to create their own workflow and certainly not enough to finish a project properly. When I hear "this is what agile programmers do", I am 90% sure that the individual making the claim is just trying to rationalise doing something that he has no actual rationale for, otherwise he could explain it in real terms.

      --
      When Argumentum ad Hominem falls short, try Argumentum ad Matrem
    49. Re:Maybe they did it wrong... by Red+Flayer · · Score: 1

      I personally believe that if a company needs to use a development style with a name, it generally means that they do not understand their own situation well enough to create their own workflow and certainly not enough to finish a project properly.

      Why should every organization delevop their own project management system? Surely there are gains to be made from using a standardized system, particularly in getting new hires up to speed, etc.

      In my experience, a large company that does not have a clearly defined process *that they actually use* for project management is likely to be extremely f*d up. I don't think it matters if it's a named workflow or not.

      I think what you're referring to is the use of buzzwords in project management -- when bad management says "agile", they sometimes mean "instantly adaptable and conforming to demands no matter how ridiculous those demands are".

      --
      "Trolls they were, but filled with the evil will of their master: a fell race..." -- J.R.R. Tolkien on Olog-hai
    50. Re:Maybe they did it wrong... by Anonymous Coward · · Score: 0

      Agile principle #2 (from http://agilemanifesto.org/principles.html): "Welcome changing requirements, even late in development." Other methodologies typically draw a line in the sand to recognize the costs of changing requirements late in development. They don't often forbid crossing that line, but they encourage people to honestly evaluate the trade-offs involved in changing requirements.

      You're not supposed to follow #2 at the expense of all the other ones. Look at #3 from the same link: "Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale." To do #3, you have to deliver something. If all you're doing is constantly responding to #2, then you'll never get to #3. Therefore, to "evaluate the trade-offs involved in changing requirements" is a necessity in Agile, too.

    51. Re:Maybe they did it wrong... by DragonWriter · · Score: 1

      It doesn't matter which methodology you use, if your goal is constantly changing you won't get anything finished, almost "by definition".

      If you are really doing agile, you are scoping your iterations so that each iteration is a complete unit of work that delivers value to the customer whether or not the requirements for any later unit of work change (or whether any later unit of work even happens at all.)

      A major part of the value of Agile is this aspect, which is important for both assuring quick delivery of value (even though it is small increments of value), and manages the risk associated with change.

      If you are still doing big-bang, all-or-nothing projects, but applying internal iterations that don't deliver independent value as a technique for organizing work as an alternative to waterfall-style development, you are doing something that looks like Agile within the technical staff, but doesn't look at all like Agile externally, and particularly (while it may be somewhat more efficient in terms of completing a big-bang project, and may have some value in that regard) doesn't realize the principal benefits of Agile methods in terms of delivering value quickly and providing the real ability to mitigate the costs of changing requirements.

      On the other hand, its also probably as "Agile" as many shops are able to implement, since its as much as you can get without the pull to change culture outside of the development shop. Which is why the real need isn't agile software development but agile, or lean, business methods more generally. Having software development being "agile" while the rest of the enterprise (or even, just the interface between "business" and "software development") isn't acheives, well, not quite nothing, but a lot less than having the whole system geared to adapt to change effectively.

    52. Re:Maybe they did it wrong... by Lunix+Nutcase · · Score: 1

      If using a methodology where you start off with a design which firmly sets the requirements of the software, then changing requirements is something that simply won't happen.

      BWAHAHAHAHAHAHAHAHAHAHA. You must have little to no real world experience in developing software. The notion that you can plan every single thing in advance so that requirements will be set in stone and will never change is hilarious. Besides, one can easily find many high-profile waterfall based projects that have failed and failed big time.

    53. Re:Maybe they did it wrong... by Anonymous Coward · · Score: 0

      "You are doing it wrong" is the perpetual excuse of Agilists when you say that agile methods have not worked for you.

      That's because the most teams claiming being agile are not. It is hard to change to agile development, for example lower management fears losing power and sabotages it, developers are fed up of constant process change and hope it blows over, and more recurring problems. Only a minority of the companies I worked for as consultant the last 10 years are agile, even if they tell otherwise. Don't believe it, measure it! You could use an agile adoption test like http://www.piratson.se/archive/Agile_Karlskrona_Test.html or the Nokia test http://agileconsortium.blogspot.com/2007/12/nokia-test.html

      Btw, I think agile ideas are older than 10 years. The ideas of Deming ( http://en.wikipedia.org/wiki/W._Edwards_Deming ), born 1900, are very much in line with the agile manifesto, Lean, Kanban, etc. Check him out, he has some nice quotes.

      What makes me wonder, why is the software industry so resistant to change... is control greedy management to blame or also the organisation lazy techies? I have lost a project or two over my career because I didn't agree with a difficult manager, but that's okay in my opinion, it allows me to keep a passion for the job and find better places to work for!

      Cheers /M

    54. Re:Maybe they did it wrong... by MadKeithV · · Score: 2, Interesting

      There's a huge grey zone with the actual Real World in it between "deciding everything up front" which is what Agilists say the iterative waterfall process does, and "allowing everything to change" which is what the CMM L5 claim Agile/agile is about.

      Yes, some things should be able to change.
      No, some other things should NOT be allowed to change without a complete project renegotiation.
      You guys without an external paying client can open your eyes again now.

    55. Re:Maybe they did it wrong... by donscarletti · · Score: 1

      Well, maybe what I said was not expressed very well. My viewpoint is that if someone understands development and management, they will generally not focus on what style they are doing, but why they are doing it. It is not the name that is the issue, it is the tendency to quote the name in liu of a justification. Your summation in the final paragraph is correct.

      --
      When Argumentum ad Hominem falls short, try Argumentum ad Matrem
    56. Re:Maybe they did it wrong... by Anonymous Coward · · Score: 0

      Same arguments hold for Christians.

    57. Re:Maybe they did it wrong... by LordArgon · · Score: 1

      As far as I can see there is no actual benefit in productivity at all moving to agile. It just gives greater clarity to the current state of development and should produce software with lower levels of faults through automated testing and continuous integration.

      This sounds like a recipe for improved productivity to me. How are you measuring your productivity level?

    58. Re:Maybe they did it wrong... by garutnivore · · Score: 2, Insightful

      You are completely right.

      I remember when extreme programming (part of agile programming) was still new and being promoted. I have not kept abreast of developments but at that time there was only one project for which extreme programming had been systematically used: the C3 project at Chrysler. It turns out the project was a resounding failure. However, every time the extreme programming snake oil peddlers had something to say about it, they'd defend extreme programming by stating that the reason the project failed was not due to to the process but due to internal politics.

      Yeah, and I have a process to get cold fusion from ingredients found in my kitchen. What? It did not work? That's because a ghost interfered.

      I went and read the article and found that even to this day the defenders of agile methods pepper their statements with disclaimers:

      Solid programming skills are necessary for agile development, Cunningham stressed. "There's a lot of people who get into this field who actually find programming tedious and don't want to do it," Cunningham says. "If you enjoy doing it and want to do it well, that helps a lot."

      Well, duh... is this not the case for any method? This is just setting up the stage for again pointing fingers at anything except the method when projects using agile methods fail. The whole agile thinking starts from the axiom "agile methodologies are intrinsically successful". So any problem is seen to come from outside.

    59. Re:Maybe they did it wrong... by 140Mandak262Jamuna · · Score: 1

      The problem is, most people whose idea of complex software is address parsing for Latin American addresses and they think something that worked there will also work for hypersonic combustion simulation. Agile may be good for this kind of data warehousing, porting, merging products, GUI development etc. But there are software where Agile is not suitable. But very hard to convince the Agile fanbois to agree on principle in theory there could be software projects where Agile methods do not work.

      --
      sed -e 's/Chuck Norris/Rajnikant/g' joke > fact
    60. Re:Maybe they did it wrong... by rwven · · Score: 1

      Yeah, they weren't practicing agile. They may have called it agile, but that's not how the process is supposed to work. Sometimes estimates are wrong, and that's just a fact of life as a developer. If you were fired because a task took longer than the estimate, they should have fired the project manager instead.

    61. Re:Maybe they did it wrong... by rwven · · Score: 2, Interesting

      It all depends on the level of change as well. Agile, by design, is supposed to have constant product demos throughout the development process. The customers should always know what is being built, and the changes should come in little bits after each demo instead of a massive turnaround near the end.

      I've done nothing but proper agile for years now, and even when it's done perfectly a massive about face on a project will kill pretty much anything....agile or not.

      Agile tends to avoid game-changing changes at the last minute because the customer can watch the product evolve and can provide proper feedback along the way. It also puts a lot of emphasis on business value vs. wild desire.

    62. Re:Maybe they did it wrong... by Black-Man · · Score: 1

      Yes, but PM's think Agile is a license to introduce changing requirements through-out the first three stages.

    63. Re:Maybe they did it wrong... by qwijibo · · Score: 1

      The old addage of quality, cost, time - choose two holds here. You're absolutely right that when quality is negotiable, cost and time are much more flexible. For us, we could throw away 5% of the data and it met spec.

      Many years ago I set up mechanical engineering systems that performed simulations of stress when operating at 8 kelvin. The calculations in a system like that must be done right and have to adhere to strict requirements. However, I suspect the same group of programmers who wrote those parts of the code also wrote the daylight savings time conversion that caused the job scheduler to always think it was 2 hours in the future. The sign was wrong and the vendor was on the east coast, we were on the west coast. They couldn't reproduce the problem. Some aspects of projects may have a higher quality threshold than others, but overall the approach can work if applied in a thoughtful manner. From the customer's standpoint, a fair amount of effort to debug a problem with the scheduler is annoying, bugs in the simulation code would be unacceptable and extremely expensive.

    64. Re:Maybe they did it wrong... by suutar · · Score: 2, Funny

      The catch, of course, is coming up with a model that works when implemented by and for idiots. If someone actually does so, I will be extremely impressed.

    65. Re:Maybe they did it wrong... by nine-times · · Score: 1

      In the end Fred Brooks got it right decades ago: "there is no silver bullet". Software development is just hard. Anything promising massive gains in success or effectiveness is snake oil.

      I wish people would recognize this in general. Doing a good job at most things-- whether you're a developer building a piece of software, an engineer building a car, or a politician running a country-- doing a good job is just hard. It takes intelligence, dedication, good judgment, teamwork, and a lot of other virtues.

      We keep looking for "silver bullets". We keep looking for processes and systems and rules that do it for us. We argue about "If we just used this development model..." or "if we just used electrical power instead of fuel..." or "if we just restructured our government this way..." We act like there's a fool-proof single way of doing things which will always work without downsides, but you can almost always follow the rules to the letter and still do a bad job.

      The truth is that a good system can help and a bad system can hurt, but either way we need good people with good judgment to be spending a lot of time and effort to make sure the results turn out well. No system of rules and processes can replace good people working their asses off. Hell, even being a janitor, doing a good job cleaning toilets, can require judgement and dedication.

    66. Re:Maybe they did it wrong... by Anonymous Coward · · Score: 1, Insightful

      Since agile is non-prescriptive there is no "doing it wrong".
      Agile just wants to define every Agile failure as "not-Agile", and every success based on people somehow working it out for themselves as "Agile".

    67. Re:Maybe they did it wrong... by iangoldby · · Score: 1

      Not actually a fallacy in this case.

      It would be a fallacy if one were to use this particular case to define (in part) what Agile is or is not. But Agile is well-enough defined anyway that it is perfectly clear that this case is not Agile.

    68. Re:Maybe they did it wrong... by Anonymous Coward · · Score: 1, Insightful

      And that raises the pertinent question of what the hell sort of process relies on having some superman genius as a critical part of it?
      Processes are supposed to make successes repeatable and help eliminate failures. If step 1 is "hire superman", then it's hardly surprising the failures.

    69. Re:Maybe they did it wrong... by Anonymous Coward · · Score: 0

      I am totally underwhelmed by reports that agile worked great in projects with less then 10 very capable, very communicative people who where working with an equally capable, communicative customer who was willing to live without a project plan and adapt requirements on the go.

      Agile is not a method to get really big, complex, ugly projects done; it rather specifies optimal conditions under which any project is likely to succeed. It does not address the risks (unclear requirements, unwilling customers, large head count, incapable people), it defines them away, demands their absence.

      This is awfully close to saying that crossing a mile wide canyon on a rope under windy conditions is much easier when no wind is blowing, and you walk on level ground for a few yards instead.

      Flying is much, much easier once the law of gravity has been suspended.

      CT

    70. Re:Maybe they did it wrong... by Anonymous Coward · · Score: 0

      I believe you've misinterpreted. Being open to changing requirements is not the same as dealing with shifting goalposts. The changing requirements are supposed to be a natural product of the process, where through each iteration, necessary changes to your goals and reqs become revealed (be it for quality, usability, etc.). Not a top-down situation where the goals are being changed arbitrarily and your devs are left trying to hit a moving target in the middle of development.

      Essentially, if done right, the amount of changes in direction should look something like heading into a funnel, rather than out of one. Any situation where you're having drastic shifts in goals and nothing is becoming more refined over time is doomed, no matter what process you implement.

      Oblig car analogy: Start of project decide to build some sort of "Passenger Vehicle" and then iterate to "Truck", change direction towards "Car", then refine to "Sedan", then end with "Camri".

      Vs. Decide from the start to build a "Bugatti Veron", then change direction towards a "Ferrarri", then again to a "Ford F150", then again to "Ford Focus", and end up with a "Bicycle" and a lot of metal tacked onto the chasis because you ran out of development time and budget.

    71. Re:Maybe they did it wrong... by sartin · · Score: 1

      I was fired from a job because of Agile...

      You were fired because of incompetent idiots in management and possibly on the technical team as well. Nothing about Agile says "make programmers do things they haven't the skills to do". Nothing about Agile says "don't help fellow programmers". Nothing about Agile says "let programmers fail". Not all agile methods agree, but Extreme Programming, for example, would have had you pairing with someone who knew Java better than you did. The Agile Manifesto says:

      Through this work we have come to value: Individuals and interactions over processes and tools

      I think your former employer showed a value of process over individuals and interactions. Any good team would have had people helping you out.

      I've managed or worked as a developer on several projects where we were "Agile":

      • One where I was lead architect and pushed Agile with the team, one by one. The project ultimately failed, but the team made more progress in six months than they'd made in the previous two years.
      • One started as a management push with the guy assigned to promote it starting his pitch "I don't really believe in this, but...." (really, he had a slide with those words on it). It was used as an excuse for cowboy coding. We did "eXtreme Programming" - with no tests, no stories, and no pairing. Miserable failure.
      • Ran a startup with Agile (XP) all the way and a team committed to it. We built exactly what our customer (marketing) wanted and nobody wanted to buy it.
      • Was brought in to save a flailing project. Used some Agile methods so we could start demonstrating incremental progress. The goal never changed, so Agile's ability to deal with changing requirements wasn't helpful. The ability to demonstrate small, concrete progress was hugely valuable. Project released on the revised schedule we targeted when I came in. Buffed up the code enough to sell it (and the hardware it supported), which was management's goal from the beginning. Probably could have done it without Agile, but lack of information about where we were (nobody really knew how much work was left when I got there) made Agile helpful.
      • Built an online system using the (then) newfangled Ruby on Rails. Customer took the "change" thing to heart so much that they were often reversing decisions made at the previous weekly meeting. We put change management into place that talked directly about what features they wouldn't get as a result of each change (really simple, just a piece of yarn on a blackboard, stories above the yarn were doable in the time/effort available, below weren't). Customer didn't take the Agile acceptance stuff seriously and would take 6-8 weeks to look at our releases (which by agreement with them were every three weeks). We managed that aggressively, added our own testing staff and delivered successfully.
      • Did a prototype for a web system using Agile. Requirements changed radically week to week. Prioritized aggressively and delivered minimal working code as quickly as possible. As a result of the prototype, the client got angel funding. None of the prototype code was used for anything other than Angel demos.

      What I've learned:

      There is No Silver Bullet. Agile is a tool that can work on projects that hit the sweet spot. If you haven't got a clue, Agile won't help you. If you know exactly what you're building, Agile's flexibility will be of no benefit. If you are doing fixed price bidding, you need to be careful about the definition of "done".

    72. Re:Maybe they did it wrong... by AuMatar · · Score: 1

      Because every project is different, and every team is different. Project management styles need to be customized to the team, the company environment, and the work. The style that works for a 100 man team will be too much overhead for 5. The style needed for a website won't be strict enough for aircraft control systems.

      The processes a company use should be organic- you can start with a standard idea, but you need to adapt them as you find what works and what doesn't (which will likely change over time). Just using "what the book says" is an assured disaster.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    73. Re:Maybe they did it wrong... by DrVxD · · Score: 1

      The problem there is that if you don't respond to changes in requirements, then you end up building software that nobody wants.

      --
      Not everything that can be measured matters; Not everything that matters can be measured.
    74. Re:Maybe they did it wrong... by blair1q · · Score: 1

      "Welcome changing requirements, even late in development."

      Sure. I can do that.

      But you'll have to welcome changing budgets, even late in development; and the budget changes will be randomly distributed from no problem at all to wildly disproportionate to the requirement change.

      Because not all requirements trace to the same amount of code. What? What does "trace" mean? Oh, right, we're being an Agile shop for your project, so we don't do that stuff. We're just expected to know what pieces of the code are affected by your change, and go do it, because we wrote it so agilely that we haven't had time to forget, or have employee turnover, or develop a system more complex than a single mind can understand.

      Because you are, as you said, willing to take the expense at the back end rather than up front.

    75. Re:Maybe they did it wrong... by blair1q · · Score: 1

      But there is no methodology that can prevent that.

      No, there is none that can prevent it.

      But there are methodologies that can reduce the cost of late changes. But what they do is make the up-front cost larger, because you have to build in traceability, maintainability, and testability, and overbuild areas of the design that should be flexible rather than form-fitting to the original requirements.

    76. Re:Maybe they did it wrong... by blair1q · · Score: 3, Insightful

      Well, there's a consistency there, then.

      One of the basic tenets of Agile is that you don't use inexperienced people.

      Much of the agility comes from the fact that your team consists of pros who don't have to hack so much as lay down code and keep going.

      If you give someone a task for which they aren't trained, you're shoving logs under the bogies of your train. The whole thing will stop, but not all at once, and the spot where it starts stopping will be the least happy about it.

    77. Re:Maybe they did it wrong... by blair1q · · Score: 1

      Not so much a fallacy as an example of the scientific process.

      Don't like the data? Change your hypothesis, I say.

    78. Re:Maybe they did it wrong... by sapgau · · Score: 0

      Any mortal can:

      - Read, study and practice Agile so he/she can "truly get it".
      - Understand the big picture and learn how eventually the final product fits into the user's needs.
      - Take decisions and follow through with them.

    79. Re:Maybe they did it wrong... by Thuktun · · Score: 2, Interesting

      it is a methodology that tells you were you are, and can adapt if you take a wrong turn or if you change the destination

      If you constantly take wrongs turns, maybe you need a better driver. If you can't decide where you want to go, nothing can give you directions on how to get there. None of this relates to the effectiveness of the GPS device.

      Translating this back out of the car analogy is left as an exercise to the reader.

    80. Re:Maybe they did it wrong... by Thuktun · · Score: 2, Interesting

      Yes, but does a Brazilian saying "I'm a Scotsman" make him a Scotsman?

    81. Re:Maybe they did it wrong... by dudeanand · · Score: 1

      I was fired from a job because of Agile... I'm a C developper, and one part of the server had Java development. Well, guess who had to take the post-it, because "that is the way things are done". So here I was doing Java, on a ticket that was supposed to take a day, I did it in 4. I had to take the ticket, because that is what Agile is about. During the scrum meetings, I said I had problems with it, but I couldn't ask for help, because I took the ticket, and "that is the way things are done". I was a 6-month trial period, so they sacked me with no warning, because I was crap at my job. Since then I've been working with multinationals, and the previous company has made one single iPhone App that has a rating of 1-star, their previous flagship application is now one-star too (and on the verge of a lawsuit because of a dodgy change of contract for the application). Since then, I've had real Agile training, and the trainer explained the way things were really done, and at least I know I wasn't in the wrong. Still, my first Agile experience cost me my job. That's what I remember.

      I think if you had a problem developing or fixing that issue, you should mention them clearly in the scrum meeting which you have regularly that you are are a C developer haven't done much of java development so the issue which I am dealing right now may take a little longer, or I am not at a stage of setting the deadline right now. There is nothing wrong in asking for help if they want to get it done sooner or you could do it by learning but it would take a little longer, but its always good to inform.

    82. Re:Maybe they did it wrong... by NuShrike · · Score: 1

      Just like no real Christians are Republicans.

    83. Re:Maybe they did it wrong... by Griffon26 · · Score: 1

      I can't tell if your claim is about agile methodologies or not, but in case it is:

      The agile methodologies pick the requirements that are most solid and independent to implement first and only refine and implement the others later.
      The hope is that the latter set of requirements will be easier to nail down by the time you need them. If they were to change between the start of the project and the time you needed them again, that change would not have cost you anything.
      What they do not do is encourage you to make things overly generic in order to already capture future requirements.

      So they do intend to reduce the cost of late changes, but not by spending more up-front.

    84. Re:Maybe they did it wrong... by Anonymous Coward · · Score: 0

      Wow...so when did cancelling a project mean that it was a failure? In fact, I would say some of the biggest successes that I have seen are when a team/group/department/company has enough guts to admit that they aren't going to get value out of the project and shut it down. The earlier the more successful.

      Agile will make those projects "successful" much more quickly, because if the group can't produce anything to show to the customers/users early and often, then it will be SHUT DOWN. You can't hide behind your gantt charts and red/green status dashboards anymore!

    85. Re:Maybe they did it wrong... by Anonymous Coward · · Score: 0

      This has nothing to do with Agile. Send labotomized people to manage a group and they will do things without thinking. They may call it Agile, or RUP, or Spiral, or Lean, or Six Sigma or Laughy Taffy, it really doesn't matter. They will cause harm to individuals and companies alike. Use whatever excuse lets you sleep at night (in this case Agile), but if you force people into ridiculous and no-win situations, you are the problem.

      Sorry JLangbridge - sounds like you didn't deserve what you got, but the bright side seems that you aren't surrounded by labotomized management anymore.

    86. Re:Maybe they did it wrong... by blair1q · · Score: 1

      I was talking about traditional methodologies that include the sort of traceability that Agile methodologies duck. With proper care in traceability, you can tolerate requirement changes better, since you can identify the extent of the effect on the existing code and test while you're doing the requirement-change analysis. If you don't have that, you'll have to hope that the developers have enough knowledge of the code to give you an accurate plan. And if you don't have that, a requirement change can become a nightmare of analysis that both fans out seemingly interminably and sends you down a forest of blind alleys.

    87. Re:Maybe they did it wrong... by Anonymous Coward · · Score: 1, Informative

      Kind sir, the person who Truly Gets It is what's needed in *every* project. Agile is not special in this regard. Furthermore, this Totally Getting It person is required, also, to be in a position of some kind of executive control and influence. Too often we find that the local Person In Possession Of It is one who can do more than observe as bulk heads on the fail boat surrender themselves to the crippling dark waters of a combination of the three aforementioned categories of idiot.

      From your anecdote, nothing about Agile is validated any more than any other methodology: what is breathtakingly obvious, however, was that your managerial overlords were prepared to let well informed technical people make some important technical decisions.

      This is the best weapon we have against project failure .

    88. Re:Maybe they did it wrong... by Anonymous Coward · · Score: 0

      No, in this case the problem is that "agile methods" were seen as a form of magic pixie-dust that means you don't have to work out actual requirements before you start.

      Top management was willing to believe it because it made their jobs easier. The team was eager to believe it, because it meant they got to spend months farting around with no real responsibility and no deliverables. There were probably a few mid-managers who saw the problem, but they were probably willing to let it go so that they could use the story to discredit the next attempt to do anything "agile".

      Agile can work, but it's no more immune to organisational-political bullshit than anything else.

    89. Re:Maybe they did it wrong... by Superken7 · · Score: 1

      agree with this completely. Mod parent up! :)

    90. Re:Maybe they did it wrong... by Mithrandir · · Score: 1

      You'd be surprised at how often point #2 cannot be assumed to be true. There are some personality types that just cannot see big picture stuff, despite how much you work on training them to see it. These are the detailed-oriented people who become fixated on minutae that they can't see big picture stuff.

      --
      Life is complete only for brief intervals in between toys or projects -- John Dalton
    91. Re:Maybe they did it wrong... by Anonymous Coward · · Score: 0

      I would make a small correction for this and say instead:

      To take a car analogy - using Agile is like using the car odometer: it is a methodology that tells you how far you have gone and makes it easy to adapt and change directions if you notice you took a wrong turn. It does not tell you if you are going in the right direction or how far you have left until you reach your destination.

      For that you need a navigator... and a good navigator can get you to your destination using a compass and a map or a gps....

      Agile is another variant of snake oil.

    92. Re:Maybe they did it wrong... by Anonymous Coward · · Score: 0

      Like Fred Phelps isn't a REAL Christian?

    93. Re:Maybe they did it wrong... by chrismcb · · Score: 1

      "You are doing it wrong" is the perpetual excuse of Agilists when you say that agile methods have not worked for you.

      I'm not an Agilists, but they probably are doing it wrong. Almost everyone I've talked to who have said they are doing it the "agile" way, aren't. Most people don't understand the method, or they pick one or two things they think are Agile.

    94. Re:Maybe they did it wrong... by NateTech · · Score: 1

      Which is a serious problem with Agile, because all organizations have some number of inexperienced people. A huge hole in the methodology and the way many companies do business is "How do we get people up to speed?"... there's been so little investment of real dollars and time on training that IT/Development is a cluster**** these days.

      --
      +++OK ATH
    95. Re:Maybe they did it wrong... by jeroen94704 · · Score: 1

      Indeed, there is no silver bullet. But don't knock the agile movement for failing to deliver. Even Fred Brooks, in his latest book "The Design of Design", concludes that iterative development with intense user involvement (which are some of the core ideas in the Manifesto) is a better way to develop than a waterfall approach. In fact, iterative development goes way back to at least Boehm's spiral model, which he introduced in 1986. And even then it was probably not a new idea.

      --
      He who laughs last, thinks slowest.
    96. Re:Maybe they did it wrong... by Anonymous Coward · · Score: 0

      The problem is applying that statement without some sort of common sense. Typical document driven waterfall shows that there is a cost to changing requirements late in development. There are a few ways to approach the problem.

      When adding requirement X, work with the customer to prioritise it. Let them know that you can either push back the timeline for R, S and T, or add this feature after R, S and T are done. You also need to let the customer know that it will cost them more if they are just adding a requirement, or they can substitute it for another requirement of roughly similar complexity.

      If the customer modifies or claims misinterpretation of requirement Y, then you haven't been doing your analysis early enough. In proper TDD, you have already sat down with your customer and worked out an appropriate test to verify that the software meets Y. While mistakes are inevitable possible, writing your validation tests before writing the code means it should (in theory) be caught during test design.

      Keep in mind the 'release early and often' mindset. You should always have working software ready for deployment from the point when you finish your first big iteration, if not before. This means that requirement changes late in the project will not affect the "releasability" of your software and your customer can get the latest (mostly working) version deployed despite moving goalposts.

      Full accountability - I have not implemented agile in any work environment, I am just using what I have read and seen in presentations on TDD and Agile. Therefore for me it is easy to sit back and apply what seems to me to be common sense without any business pressures.

    97. Re:Maybe they did it wrong... by Anonymous Coward · · Score: 0

      Why settle for snake oil, when you can have the whole snake?

    98. Re:Maybe they did it wrong... by MadKeithV · · Score: 1

      Wow...so when did cancelling a project mean that it was a failure? In fact, I would say some of the biggest successes that I have seen are when a team/group/department/company has enough guts to admit that they aren't going to get value out of the project and shut it down. The earlier the more successful.

      You must live an economically sheltered life. In the real world, project success is defined by the project earning more money than it cost.
      And no, "money not spent" isn't money earned, because every project you don't even consider doing is "money not spent".

      Don't get me wrong, I know what you mean - sometimes you know that the only real valid choice is to kill it (with fire, or from orbit), but that just turns a potentially massive failure into a tiny failure.

    99. Re:Maybe they did it wrong... by Skal+Tura · · Score: 1

      No, you are simply getting it wrong.

      Requirements will be clearer further in the development, when testing can take place, and ideas translate into tangibles. Meaning the end product is better suited for the task it's being developed for. Upfront savings can be done by less burden on initial design, no trying to figure out every little detail does it work or not, just start doing by general idea, and polish it.

      All changes increase overhead, in waterfall methodology the costs just are FAR greater than in agile. Changes in waterfall methodology project are done in a continuum project, so the cost is hidden from current project. Waterfall designed software is less adaptable to real world requirements, and can at worst result in software complete unusable by target audience.

      Agile is more like "These are our basic requirements, let's get cracking on it, and then get feedback later on"

    100. Re:Maybe they did it wrong... by Skal+Tura · · Score: 1

      Also during development the coder might notice that something is 10x easier to do by doing slightly differently. Say filtering data sources, requirement specifies Direction X to Y to Z, but coder might notice it's better and easier to do X and Z to Y separately.

      Or in case of a huge data set, it might be noticed that midway project it's better to do using Sphinx for search rather than MySQL Fulltext match performance wise. or that a certain feature is impractical to do at best, almost impossible at worst. ie. we had a waterfall methodology project where customer demanded something which is simply impossible to do with the chosen set of technologies. And it was only a single line item amidst hundreds.

      I've also seen Waterfall and Agile colliding really badly. Company orientates to Agile, customer to Waterfall. Agile was seen as the best approach by customer as well after starting project, but at the end customer demands back to Waterfall by demanding all features in requirements to be done, after the provider has done A LOT of features outside the scope, in exchange for some in the initial requirements which were A) useless B) impractical.

    101. Re:Maybe they did it wrong... by Skal+Tura · · Score: 1

      The other reply is exactly correct, it wasn't agile development.

      Agile development is EXACTLY about allowing agile changes in how & what are being done, including who is doing what, or other practices.

      Basicly that company management were über stupid, nothing to do with agile, just idiots running a company.

    102. Re:Maybe they did it wrong... by Skal+Tura · · Score: 1

      wow, that's bad!

      We had weekly meetings, where you got questioned in front of the "team". Ofc it was on monday morning too. The funny thing is that i got always questioned the most and examined, while having multiple times more items on my list than anyone else, simply because i had an insane workload :O I hated those meetings, being still half asleep, already forgotten about last week and trying to figure out all the tasks i had last week

    103. Re:Maybe they did it wrong... by Anonymous Coward · · Score: 0

      the funny thing about agile is that it has a very very narrow scope, but it is applied nevertheless to everything IT and then blamed afterwards by implementors.

      some thing that are fundamentals to the agile methodology and routinely forgotten about:
      - people has not to be working far apart
      - programmer should work day to day with the end users, asking directly for them about requirement
      - agile is to be used on thing that have a very fast time for feedback, like user interface - library, business logic are very ill suited for it
      - already written and working code has to be continuously improved, refactored and reused, even if that may introduce new bugs, being scared is not a good reson to introduce duplication
      - testing
      - testing
      - no really, testing, automated and not.
      - better yet, automated daily builds, and testing

    104. Re:Maybe they did it wrong... by MadKeithV · · Score: 1

      A well-designed architecture (up-front in non-agile, defined in the first few iterations in sane agile) can also help, because you know your modules are well-separated and isolated, and there are not so many paths to check for change impact / risk management.

      Upshot is: just because the agile manifesto doesn't define it, doesn't mean you can get away with no documentation, no risk management, no traceability, no change management, or in fact no responsibility at all. I don't really think that was the original intention of agile anyway, but it sure is the most popular interpretation.

    105. Re:Maybe they did it wrong... by MadKeithV · · Score: 1

      These are the detailed-oriented people who become fixated on minutae that they can't see big picture stuff.

      And these are exactly the people that make really excellent coders. Or to put it another way: your developers are extremely likely to mostly be like this.

    106. Re:Maybe they did it wrong... by Anonymous Coward · · Score: 0

      In this case it seems that the problem is changing requirements. That will kill any project no matter what the methodology.

      Iterative waterfall is resistant to the changes. Because on has to restart every time from the first phase. But to do that, one has to wait for the current iteration to finish.

      From what I have seen, R&Ds generally prefer waterfall because requirements are set in the beginning and do not change. Finance likes that since budget planning is much easier and more predictable. Testers likes it because they have time to test the release. Developers like it because requirements do not change overnight so they do not have to start from scratch pad every day.

      People here are trying out Scrum now, but from what I have seen it is more of anomaly in the company and they already scored several missed dead-lines - mostly because developers concentrated too much on cramming more features, often disregarding deeper testing. Testers flat out refused to test the software because it is changed every 2-6 weeks and they are simply can't make any schedule and results are going to be invalidated anyway by next Scrum's sprint.

      Weakness of the agile development model (from what I have seen) is that organization of the development process is way too uncertain, meaning that: (1) one needs dedicated people for communication between people and teams to keep others informed in advance about coming changes; (2) it is nearly impossible to plan budget in advance. One has to have very good architects and designers to help plan the sprints - and those are rare birds.

      It boils down to the simple matter: if you have talented developers, agile stuff works. But if you have talented developers, they would make any development methodology work.

    107. Re:Maybe they did it wrong... by Anonymous Coward · · Score: 0

      Can we adapt to change by going into waterfall mode and still call it agile?

    108. Re:Maybe they did it wrong... by dadisman · · Score: 1

      Criminals attacked the World Trade Center, simple as that.

        If I go to a local bookstore and shoplift a magazine, the news reports don't say "Christian steals from local bookseller". One might argue that a disproportionate amount of terrorist activity has been carried out by adherents of Islam, but then again a disproportionate amount of magazine shoplifting heists have been masterminded by white Christian teenagers.

    109. Re:Maybe they did it wrong... by AmiMoJo · · Score: 2, Insightful

      Straining the analogy to the limits you can mitigate a changing destination if you plan your route well. Most changes will not be of the "make a legal U-turn" variety, but rather "let's go to that other shop/restaurant in the same city." If you planned your route well and stick to major roads like motorways then these changes can be incorporated without massively disrupting the journey.

      In programming terms that means building in flexibility where possible, normalising your databases and so on. If you are writing an inventory management program and the company brings in a new procedure as long as your database is in good shape and the code not monolithic it usually isn't too hard to accommodate. Actually a lot of business software is just a human interface to an SQL database with a bit of automation thrown in.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    110. Re:Maybe they did it wrong... by Tony+Isaac · · Score: 1

      Yes, they did it wrong.

      Agile is not just a methodology, it is an entirely different way of thinking about product development. Many classically-trained programmers simply can't make the mental shift.

      I too lived through an unsuccessful switch to Scrum. In its wisdom, management instituted a "design sprint," followed by a "implementation sprint," followed by a "testing sprint," followed by a "debugging sprint," and so on. Sorry, that's just waterfall in agile clothing.

      My current company successfully delivers software using true agile philosophy, in the form of iterative development. We have real customers with constantly changing requirements, and we generally satisfy those changing requirements (with a team of 4) in a matter of hours or days.

      It can be done, but there is more to it than just "utilizing" an "agile process."

    111. Re:Maybe they did it wrong... by Eraesr · · Score: 1

      Funny how everyone seems to ignore my admittance that we're not living in a perfect world. My initial "claim" was a gross simplification of how things really are.

    112. Re:Maybe they did it wrong... by Anonymous Coward · · Score: 0

      Here is what you say: "Yes we can make that change... in the next iteration". So you finish your current iteration, get something useful out the door, THEN accommodate changes. The key is to make your iterations quick enough so that you actually reach release points while still reacting to changes quickly.

      Its really not surprising that a process that constantly accepts changes will never produce anything useful.

    113. Re:Maybe they did it wrong... by DragonWriter · · Score: 1

      I've also seen Waterfall and Agile colliding really badly. Company orientates to Agile, customer to Waterfall. Agile was seen as the best approach by customer as well after starting project, but at the end customer demands back to Waterfall by demanding all features in requirements to be done, after the provider has done A LOT of features outside the scope, in exchange for some in the initial requirements which were A) useless B) impractical.

      That's not a problem of development methodology (either of them, or a clash between them.)

      Its a problem of insufficiently clear obligations in a contract, or possibly of casual disregard for the obligations in the contract midway through its performance. Which is a whole different problem.

    114. Re:Maybe they did it wrong... by jfanning · · Score: 1

      I mean in delivering new features. Main benefit seems to be just adaptability to change and improved fault levels.

    115. Re:Maybe they did it wrong... by LordArgon · · Score: 1

      Simply having improved fault levels should improve your productivity, as you'll spend less time hunting / fixing bugs and more time on new features. Or do you end up spending MORE time on a feature, but deliver it with higher quality?

      Sorry, I'm not trying to be difficult. I just want to understand what trade-offs you're experiencing to yield your conclusion.

    116. Re:Maybe they did it wrong... by Doomdark · · Score: 1
      There is no requirement that everything uses Agile style; it is possible to mix and match. Nor is there any reason why training, getting up to speed could not scheduled as regular task.

      Basically, throwing inexperienced (or incompetent) people tasks they are not capable of doing is just basic management or team failure and has little to do with Agility or lack thereof.

      --
      I like paying taxes. With them I buy civilization -- Oliver Wendell Holmes
    117. Re:Maybe they did it wrong... by Doomdark · · Score: 1
      No, not at all. He did not say superman, but just someone capable of solving the problem. And like has been pointed out ALL projects need at least "one person with a clue". Given this, then, Agile approach is likely to be more efficient in getting to the outcome compared to "classic" top-down approach.

      And yes, I have had pretty good experiences with Agile teams; as well as less-than-optimal experiences with in-name-only approach. In latter cases many developers actually wanted to back to old-fashioned top-down approach, mostly because that is what they were used to (never mind the fact that there had been big lay-offs when management had viewed the team as incompetent for taking so long to get anything down; partly due to analysis-paralysis).

      --
      I like paying taxes. With them I buy civilization -- Oliver Wendell Holmes
    118. Re:Maybe they did it wrong... by NateTech · · Score: 1

      Thanks Captain Obvious.

      Were we discussing how to get it right, or just doing the usual status-quo of tech... a bunch of concepts that get over-hyped, over-paid-for, and over-blown... and then someone points out the flaws and a newer-better thing is released the next day and the original "deprecated"?

      --
      +++OK ATH
    119. Re:Maybe they did it wrong... by wgc · · Score: 1

      Some of the other fundamental principles of scrum are:

      Transparency - In a traditional process the costs of change are often hidden, but with scrum, the costs should be more immediately apparent. Traditional process draws a line to limit change but scrum welcomes change while providing better feedback on the cost to allow a better decision.

      Accountability - In scrum you have one person, the product owner, who is responsible (has the authority AND the accountability) for deciding on the balance between changes and costs.

      In a case like this, the arguments about not following scrum come down to: either you screwed up the process so you don't have the transparency or you screwed up the product owner role so he either didn't have the authority to make a decision or wasn't held accountable for it (not that I've seen a PO with either of those).

    120. Re:Maybe they did it wrong... by meloneg · · Score: 1

      [...]but then again a disproportionate amount of magazine shoplifting heists have been masterminded by white Christian teenagers.

      Globally? I seriously doubt it.

    121. Re:Maybe they did it wrong... by jfanning · · Score: 1

      I'm not going to dig up all the references, but this was one study I had heard of.

      http://allankelly.blogspot.com/2010/08/study-on-benefits-of-tdd.html

      The main conclusion is that TDD will reduce your fault count significantly, but INCREASES the time taken to deliver a feature. I have heard the same thing for other agile methods.

      And from my own experience there are definitely times where 20% of the time was taken to implement a user story and 80% of the time taken writing test cases.

    122. Re:Maybe they did it wrong... by LordArgon · · Score: 1

      Thanks for digging up the study. As an aside, I'm not sure why TDD is so bundled with Agile. It may well have surfaced with the movement, but it could apply to any software development model... I've worked in various agile teams and never practiced TDD.

      So this study is interesting. I immediately see a number of issues with it. First, it looks like it's actually measuring two dimensions at the same time: add a formalized testing policy + use TDD. From reading about the teams, it looks like their previous testing methodology was "write whatever tests you think are necessary." So it's not at all clear whether the changes in bugs and productivity are a result of TDD or the formalized policy. It could be that a simple formal testing policy would have caused the same changes, but we can't really know because they don't seem to isolate their variables.

      The teams are also new to TDD, so you don't know how they'd perform at peak efficiency. Plus they can't really measure the gains of having a library of tests to run against your code - something that makes future refactoring and extensions much simpler.

      The defect rate does seem significantly reduced (which is further evidence to me that the team had no formalized testing practice prior to TDD). It's misleading to say "but it took X% longer" when you have no way to measure what the future cost of the bugs would be. You'd have to do this study over a long period of time and multiple dev cycles to determine how much their productivity was actually impacted.

      This last point is the most important to me. And it's why I want to understand the methodology behind claiming the overall feature rate is the same. Bugs cost a lot and reducing them does seem like a recipe for long-term productivity.

  3. A point of view by Anonymous Coward · · Score: 0

    As a developer I find it to be a pain in the ass. Maybe in wasn't done correctly in the projects I worked, but this is my view.
    And scrum is really offending to people that actually have a tad of self respect: I mean, really, pigs and chickens ?!

    1. Re:A point of view by drewhk · · Score: 4, Insightful

      The original manifesto's key message was "people over processes" which I still agree with. On the other hand the word "Agile" now means just as many processes as waterfall or RUP meant in the past. Shame.

    2. Re:A point of view by JamesP · · Score: 1

      Exactly

      Some people can only function with a pile of paper apparently.

      --
      how long until /. fixes commenting on Chrome?
    3. Re:A point of view by JaredOfEuropa · · Score: 3, Insightful

      "People over process" is an important tenet in more ways than one, and not only in IT. Often, this message is taken to mean that teams and individuals are given more freedom to organise their own work, and are managed on outcome rather than activities. This is true in some ways, but it's more than that.

      "People over process" to me also means acknowledging the value of each individual's skills and abilities. That starts with resourcing: instead of posting jobs for "2 junior programmers, 1 senior programmer, 1 encryption specialist (part time) and 1 PM", one would think "Together, Alice and Bob are up to the task of writing this module, Alice knows enough about encryption to cover that part of the job, and Bob is a good team lead". No two people are alike, and if you value people, that means that you account for their differences as well. Yes, it also means that if Alice calls in sick, you have a problem on your hand, but it's by no means an insurmountable problem.

      And it goes beyond that. "People over process" to me also means that you let people do what they are good at beyond the call of their assignment. (as long as it benefits the company). As an individual, it means that you sometimes take responsibility for stuff that is not strictly your job. If someone contacts me with a problem I can solve, I do not answer with "Contact the helpdesk"... if it's likely the problem will get kicked down 3 layers, taking 2 weeks to come up with a non-answer. Instead I will take an hour off my regular work to provide a helpful answer (of course with the suggestion that they contact the helpdesk, and copying in support as well). This helps everyone, including the company.

      Yes, accounting for individual differences makes budgeting, resourcing, managing continuity, and people management a lot harder. That's why managers hate "people over process" and why Agile IT gets loaded down with more process: resources are so much easier to manage than people.

      --
      If construction was anything like programming, an incorrectly fitted lock would bring down the entire building...
    4. Re:A point of view by mcgrew · · Score: 1

      The original manifesto's key message was "people over processes" which I still agree with.

      I read the summary's links and never saw anything concrete, just marketing buzzwords. But "people over processes?" That makes no sense at all on the programming end; in the end it's all processes.

      "People over process" makes sense from a design point of view, but not the nuts and bolts of programming itself, any more than "people over processes" makes sence when engineering an automobile engine.

    5. Re:A point of view by Anonymous Coward · · Score: 0

      process is important. it insures that critical information is available in a standard easy to find way. this is why all methodologies have it in some way or another.

    6. Re:A point of view by drewhk · · Score: 2, Insightful

      If you read the original manifesto, it is very carefully worded. It does not say "abandon processes", it says that the priority should be on the developers as creative individuals, instead of mechanized drones.

      Also, it is not against "processes" (with small "p"). A build system is itself a process, a source control software also enforces a process. The manifesto is against Process with a capital P. It is hard to explain, but easy to give an example what I mean about this:

      http://www.ogcio.gov.hk/eng/prodev/es3.htm

      The above link is about the SSADM Process. Read it and you will immediately understand what I mean.

      Also, lot of people misunderstand "Working code over documentation" and think that documentation is not important. In fact, it should be read primarily as "project documentation", the things that most old fashioned processes mandate. Again, look how many and what kind of docs SSADM needs.

    7. Re:A point of view by DragonWriter · · Score: 2, Insightful

      Also, it is not against "processes" (with small "p"). A build system is itself a process, a source control software also enforces a process. The manifesto is against Process with a capital P. It is hard to explain

      I don't think its really hard to explain, though I think the best explanations I've seen are in books that focus on "lean" methods rather than "agile" ones (which, really, aren't all that different; the principles are largely similar, though "lean" seems to focus on an enterprise wide approach that lean software development applies to software development, while "agile" seems to focus on software development with applications to the broader enterprise particularly the interface between software development and business):

      It is important to have clear processes that people follow, because otherwise you have wasteful churn as extra effort is spent doing everything ad hoc. But you have to respect the people doing the work to the point where they are expected, on encountering a problem with the existing process, to call a halt, propose and test an alternative, and then that alternative, if it is an improvement, is adopted as the new process.

      That is, just as software being developed needs to be developed in small increments and able to respond to emergent discovery of requirements, so the processes used in software development (and, really, throughout the enterprise) need to be able to be adapted rapidly in response to emergent requirements. And, to do that, the people that do the work have to own the processes by which the work is done.

      This is opposed to devotion to enshrined Processes that are treated as received wisdom and not subject to question or revision by the people actually involved in doing the work.

    8. Re:A point of view by frank_adrian314159 · · Score: 1

      A very astute set of observations, showing that the poster of the above actually understands this aspect of agile development. However, you are incorrect about one thing: That's why managers hate "people over process" and why Agile IT gets loaded down with more process: resources are so much easier to manage than people.

      As a manager, I disagree - this mindset might be true among some managers, but not all of us. I find people a lot easier to manage if you treat them as people and not as resources. In fact, assuming you've done your hiring and training correctly, most teams end up being "self managing" after a while with the only thing you need to deal with are occasional corrections and helping to set priorities (and, of course, managing your team's face to the rest of the organization, getting physical resources, etc.). That's a lot easier than having to go over a bunch of paper each day making sure that every "i" is dotted and every "t" is crossed for some arbitrary process. However, it does make it more critical to hire the right people - look for flexibility and intelligence rather than for a code monkey and you'll be on the right track. And, I'll almost always take a generalist over a specialist. That being said, I wouldn't pass on process in some places - but, thankfully, most of us are not working in avionics, health care devices, or nuclear power station control systems (to name a few).

      --
      That is all.
    9. Re:A point of view by Agile.Zorro · · Score: 1

      Well, you are the manager I haven't meet in years and I wonder - are you for real, or just a developer who's wish is his manager would be this way :-) LOL ?!

    10. Re:A point of view by sjames · · Score: 1

      Sure it does. It's simply an acknowledgment that we don't know how to define "the process" well enough to actually accomplish any of those tasks procedurally (if you disagree, code it up and let the computer design the engine by itself!)

      Having acknowledged that, we can either use procedure where it helps (and there are such places) as determined by people (that is, "people over process") or we can let it prevent the achievement of the objective.

    11. Re:A point of view by nurb432 · · Score: 1

      Without processes your people have nothing useful to do and your entire business model is suspect. Processes MUST come first. People can be inserted or removed as needed.

      --
      ---- Booth was a patriot ----
  4. Captain Obvious by MadKeithV · · Score: 4, Insightful

    Quoth TFA: "Despite potential pitfalls, experts in the agile space agree that implementation of agile practices has benefited software development overall."
    And in other news, despite potential pitfalls, the pope agrees that Catholicism has benefited religion overall.

  5. It's all I've ever known by Faraday's+Sloth · · Score: 1

    I've been working in the sofwtare industry since 2007 in a small team (individual projects ranging from 1 to 10 persons). We've always used scrum. Mind you, not by the book but heavily modified to fit our style. Seems to work if all participants are even a bit motivated and not totally clueless about the tasks at hand.

  6. "Agile", no -- "agile", yes by CyberDong · · Score: 4, Interesting

    I've worked in 100% waterfall, and in good agile environments, and I've found the key is to keep things small-a "agile", not to concentrate on capital-a Agile. Some places embrace Agile as a process, and fill binders with process documentation around their Agile process - at which point it's no better than any other.

    I think the key to success is summed up in this line from T3FA:

    "Most teams are not adopting scrum, extreme programming, or another specific Agile approach, but are embracing agile as an ethos or philosophy and cherry-picking the best bits from many different process models to develop a formula unique to their own situation," according to the report.

    1. Re:"Agile", no -- "agile", yes by Anonymous Coward · · Score: 1, Insightful

      Basically it means they are not using any specific methodology but doing things as they think it's better in specific circumstances. The question is then if we shouldn't just drop all the crap about methodologies and just go ahead and do things the best way we can.

    2. Re:"Agile", no -- "agile", yes by Anonymous Coward · · Score: 0

      Agile's main downfall is that it makes it look like you can go faster than you really can. Waterfall looks slow and it is; Agile looks really fast, but if you actually move as fast as it looks like you could, skipping testing and documentation, you will be screwed. Fast, cheap, minimal bugs; I don't care what method you use, you will only achieve two of those at any given time. Agile also doesn't solve the scheduling baby problem, i.e. just because it takes 1 woman 9 months to have a baby, doesn't mean that you can put 9 women on the project and produce a baby in one month.

    3. Re:"Agile", no -- "agile", yes by drewhk · · Score: 4, Insightful

      The original Manifesto:

      "We are uncovering better ways of developing
      software by doing it and helping others do it.
      Through this work we have come to value:

      Individuals and interactions over processes and tools
      Working software over comprehensive documentation
      Customer collaboration over contract negotiation
      Responding to change over following a plan

      That is, while there is value in the items on
      the right, we value the items on the left more."

      I think it is hard to disagree with the original statement. What is frustrating now, is that "Agile" degraded to a bunch of buzzwords and processes (SCRUM, XP, TDD, BDD, etc.) which it was going against originally. Of course it is more business in selling these (by consulting companies) than the vague "do what fits you best" statement.

      Also, the problem is not with particular practices, or processes but the mindless, inflexible application of them to every project and team on earth. Teams are different, software are different, why should we all use the same processes then?

    4. Re:"Agile", no -- "agile", yes by MadKeithV · · Score: 1

      If you drill down, the original quote basically means that Agilists (big-A) are defining "their process" as "whatever you're doing that is actually working, THAT's Agile man, keep doing it! I'll take my consultancy fee now.".

      Meanwhile the rest of the world is just trying to get the job done, trying not to waste time in "methodologies", but us old fogeys keep having to explain to the new guys that we've *tried* all this stuff, and what we are already doing is what works for us.

    5. Re:"Agile", no -- "agile", yes by arth1 · · Score: 2, Interesting

      A related problem is that you don't look ahead and don't see the showstoppers until it's too late to avoid them. When you do, you often end up having to rewrite large parts of the code or implement major kludges.
      At least with a traditional methodology, everything is reviewed for feasibility and risks before you invest too much time driving down the wrong path. And a change in scope means a forced review of how this affects everything else too.

      But there are benefits to agile too, not the least of which is that it shows progress, which gets management off the developers' backs, which in turn increases productivity.

      My preferred method is parallel programming, where two or more units are set to design and do the same task, and halfway through, you present both solutions, axe one of them, and merge it with the remaining unit, with focus on doing QA They don't know the other unit's code, but will know many of the inherent problems, and see ones that the "winning" team are blind to.
      Your initial velocity will be slower, but you'll end up with both a solid product, and one that management has actually picked themselves, and thus feel obligated to stand behind.
      And no, the hours when you work double aren't wasted -- any more than the hours spent on scrum, six sigma or other "necessary overhead" are wasted. The competitiveness ensures a better product, and you even have fallback code and coders, whereas for administrative overhead the hours spent has zilch value later in the game.

    6. Re:"Agile", no -- "agile", yes by plastick · · Score: 1

      Not only that, but how many organizations use Post-it notes to write down requirements and call it SCRUM?

      And if you ask them if they are using the other parts of these methodologies, they will say they "invented their own version" to suit their business.

    7. Re:"Agile", no -- "agile", yes by MobyDisk · · Score: 1

      What is frustrating now, is that "Agile" degraded to a bunch of buzzwords and processes (SCRUM, XP, TDD, BDD, etc.) which it was going against originally.

      Realistically, the original authors were never against buzzwords and processes. They were against the buzzwords and processes of the time. With experience, their new approach also yielded repeatable processes that needed their own new vocabulary. And that vocabulary gets called "buzzwords" by the next generation, and the cycle repeats forever.

      Words are not evil. We assign names to things so that we can clearly communicate those concepts to other people. You can't be a professional in something and not have a vocabulary assigned to it. Anthropologically speaking, you can't even think about something without having a vocabulary for it. So we need to stop making these approaches that boil down to "My approach is whatever approach has no vocabulary or well-defined concepts in it. I want to be unique! I don't have a number!"

      Agile is different from Waterfall. Agile approaches include things like SCRUM, XP, TDD, BDD, etc. Those are words describing agile approaches. Don't lament that we now have well-defined ways to be agile. Giving them names doesn't make us less agile, it just means we can talk to someone else and know that we are talking about the same thing. I've worked on teams that claimed to be "agile" which really meant that they didn't have any process, and didn't understand the SDLC, and were always late and buggy.

    8. Re:"Agile", no -- "agile", yes by mcgrew · · Score: 1

      I think it is hard to disagree with the original statement.

      I think it's idiotic. "Working software over comprehensive documentation"? Yeah, good luck debugging your undocumented code. And I hope your help desk personnel have fun if there is no FM to R.

      "Individuals and interactions over processes and tools"? Any carpenter, electrician, or anyone else who makes things would laugh their asses off at that. Software about nothing BUT processes and tools.

      For a software design aspect it makes sense, but not from a programming standpoint.

    9. Re:"Agile", no -- "agile", yes by drewhk · · Score: 2, Interesting

      If you interpret the manifesto in the original context in its own age, you will understand that documentation means there not "developer documentation" or "user documentation" but the various "project documentation" artifacts that were the holy grail of that age.

      The same is true for processes. It is not about the small scale ones (source control, review processes, whatever), but the overengineered project processes prevalent in that era.

    10. Re:"Agile", no -- "agile", yes by jaroslaw.fedewicz · · Score: 1

      It must be understood, that all "agility" is about is not producing the best, the fastest and the cheapest. It is about having an average-quality (a firm and predictable average, I would say) product in an acceptable timeframe. Then you add up polishing iterations until it goes from average to good enough if you need it.

      See, nothing about miracles, but lots about actual manageability.

    11. Re:"Agile", no -- "agile", yes by Sulphur · · Score: 1

      Just because it takes 1 woman 9 months to have a baby, doesn't mean that you can put 9 women on the project and produce a baby in one month.

      Every time I hear that one, I think pipelining.

    12. Re:"Agile", no -- "agile", yes by Anonymous Coward · · Score: 0

      If you interpret the manifesto in the original context in its own age, you will understand that documentation means there not "developer documentation" or "user documentation" but the various "project documentation" artifacts that were the holy grail of that age.

      Absolutely correct.

      But the guy raises a point: in a large project, you're going to have technical writers and support personnel who can't do anything useful until a critical mass of functionality is stable. If the first two sprints involve throwing out one database engine for another, the developers may have learned what they needed to know to produce a better product, but if you have support people training on something that'll never ship to the customer, their time has been utterly wasted.

      Customer: I want to go from A to B, and I'm tired of my horse and buggy!
      Engineering: Let's build a car!
      Marketing: Starts making models featuring lots of chrome and flashy red paint.
      Support: Starts training on internal combustion engines, transmissions, and braking systems.
      Engineering: Gas is expensive! How about a plug-in EV?
      Marketing: Spends two weeks photoshopping red paint into green paint.
      Support: At least the stuff we learned about gearing and brakes is still relevant.
      Engineering: Segways for everyone!
      Marketing: WTF?
      Support: Aaw, crap.

      This isn't about resisting change - the downstream organizations could have spent their time far more productively by marketing and supporting existing products, and simply hinting that "Something better than a horse" is coming soon.

    13. Re:"Agile", no -- "agile", yes by dwandy · · Score: 1

      At least with a traditional methodology, everything is reviewed for feasibility and risks before you invest too much time driving down the wrong path.

      With many (most?) software projects over budget, late and n% (where n is between 5%-115%) software projects outright failing I don't see how that can be true.

      Ultimately I think I'm largely in agreement with many people here who assert that software development is actually very difficult to do successfully; I'd just add that it's also very easy to do poorly, pays reasonably well and it is difficult for non-technical people (like hiring managers) to evaluate who will actually do it well. This combination makes success an unlikely outcome.

      --
      If you think imaginary property and real property are the same, when does your house become public domain?
    14. Re:"Agile", no -- "agile", yes by boethius78 · · Score: 1

      "Working software over comprehensive documentation"? Yeah, good luck debugging your undocumented code.

      This seems to be something that causes a lot of confusion, and a lot of knee jerk dismissal of agile principles. "Working software over comprehensive documentation" isn't saying that documentation is unnecessary - just that it's better to expend effort on getting your software working than trying to document each and every aspect of the system. If it's important that users have strong passwords, it is far better to write the code to ensure that users have strong passwords than it is to spend your time deciding and documenting exactly what a strong password is. I've worked in companies in the past where a simple change like modifying the password policy would involve a couple of days of documentation, discussion and sign off. Often the code changes would take around half a day, maybe just a couple of hours, but we still had to go through the documentation and sign off no matter what. Agile is kicking against that, and saying that it's better to just get stuff done. Documentation is still important - coding is just more important.

    15. Re:"Agile", no -- "agile", yes by arth1 · · Score: 1

      Ultimately I think I'm largely in agreement with many people here who assert that software development is actually very difficult to do successfully; I'd just add that it's also very easy to do poorly, pays reasonably well and it is difficult for non-technical people (like hiring managers) to evaluate who will actually do it well. This combination makes success an unlikely outcome.

      Competitive parallel programming can help with that, as you don't put all your eggs in one basket -- no one programmer (or team) becomes a bottleneck or single point of failure. The more parallel teams you have, the greater the chance of one of them delivering without going way beyond time (the main problem with waterfall) or below specs (the main problem with agile).

    16. Re:"Agile", no -- "agile", yes by frank_adrian314159 · · Score: 1

      At least with a traditional methodology, everything is reviewed for feasibility and risks before you invest too much time driving down the wrong path. And a change in scope means a forced review of how this affects everything else too.

      Ideally, yes. In reality, most of these "heavy document" processes simply gave developers and their managers a CYA feelgood moment. And then they were told to absorb the change in scope anyway - with insufficient change in schedule. It never worked out in practice very well because it increased the cost of change. In the end, the change came anyway and the developers paid the price. But I'm sure that having a CYA document made the whining so much more effective.

      --
      That is all.
    17. Re:"Agile", no -- "agile", yes by k8to · · Score: 1

      Agile doesn't mean don't identify showstoppers. It means you try to identify showstoppers more quickly!

      It means you don't try to plan for architectural issues which aren't actually necessary for your goals.

      You could make the argument that trying to make code "more general" has some value (ie, trying to handle case you believe you don't currently have), but history typically shows this works out very badly.

      If you have a team insisting on not identifying some architectural issues, they're following the stupid methods, not the agile ones.

      --
      -josh
    18. Re:"Agile", no -- "agile", yes by Anonymous Coward · · Score: 0

      >

      Also, the problem is not with particular practices, or processes but the mindless, inflexible application of them to every project and team on earth. Teams are different, software are different, why should we all use the same processes then?

      The only "reason" is managerial inertia. It's easy to "manage" (that's right, with quotes) teams that use the same process. For the average "manager" (that's right, quotes again) to "manage" (ok, you got it by now) multiple teams under multiple processes would make his head explode.

    19. Re:"Agile", no -- "agile", yes by arth1 · · Score: 1

      To borrow a mantra of Agile: Then you're not doing it right.

      Upfront specs aren't for the benefit of management, but for the benefits of the programmers who can do their part without having to know anything about the rest of the system. If they follow the given API, it will work. The specs shouldn't tell them how to do their work (then it's overly detailed), but it should define all the interfaces and set non-negotiable requirements.

      Agile gives the ability to change specs and requirements on the fly, but this comes at a price. As always, TANSTAAFL.

    20. Re:"Agile", no -- "agile", yes by Griffon26 · · Score: 1

      I also believe it squeezes the most out of developers (for better or worse). The pressure is on all the time instead of just at the end of the project and I get the impression that pair-programming drains your energy quicker than working on your own because you spend more time being focussed.

    21. Re:"Agile", no -- "agile", yes by Darinbob · · Score: 1

      I don't trust a lot of things that start off as a manifesto from a core group of revolutionaries.

    22. Re:"Agile", no -- "agile", yes by CyberDong · · Score: 1

      In my experience, the CYA document's biggest use is to provide a baseline for Change Requests (which are always billable) by a consulting company.

      "We built what you signed off on. Now pay us a bunch more money, and we'll turn it into what you actually need. Oh, and we'll update our documentation for an additional fee".

  7. the circle is complete. again. by Anonymous Coward · · Score: 0

    I remember when we wrote video games for Atari and Amiga. and we just hacked away with quickly agreeing on things we had to achieve and who had to to what while we went along. So we were very agile without knowing the term. but this is over 20 years ago. and here we are again.... the full circle.

  8. Why don't they ask by JamesP · · Score: 3, Insightful

    if waterfall has delivered?!

    It seems most projects work in spite of waterfall, not because of it.

    I'm not saying it doesn't work. That is for small/medium projects with a very tight scope it does.

    What's the name of that FBI project again?! Virtual case file?! Oh well...

    --
    how long until /. fixes commenting on Chrome?
    1. Re:Why don't they ask by Shados · · Score: 1

      Ironically, Ive done agile in small companies with small projects, and in huge companies with multi-hundred millions projects and thousands of people involved (using Scrum of Scrums for scaling), both software and non-software project... the multi-hundred million dollar non-software projects in many cases worked better than the software ones in Agile.

      Kind of counter intuitive.

    2. Re:Why don't they ask by elrous0 · · Score: 1

      Every day, your life is effected directly by thousands (if not hundreds of thousands) of pieces of software written during the waterfall era. So it must not have stagnated the programming field *too* much.

      Personally, I always thought "agile" sounds like a dodge--suspiciously like a bunch of business doublespeak being hawked by con men who are selling managers on the bullshit idea that they can have fast, quality programming on the cheap. At the end of the day, quality work still takes time, someone still has to do the coding, and there are no free rides. "Agile" newspeak doesn't change the truth of the old axiom "Fast, cheap, or good: Pick any two."

      --
      SJW: Someone who has run out of real oppression, and has to fake it.
    3. Re:Why don't they ask by arth1 · · Score: 1

      if waterfall has delivered?!

      It seems most projects work in spite of waterfall, not because of it.

      I'm not saying it doesn't work. That is for small/medium projects with a very tight scope it does.

      You can substitute "waterfall" with "Agile" in the above, and it still makes exactly the same amount of sense.

      A good measure of success is to look at what's actually out there. Discounting meta-products (like Agile developed systems to support Agile processes), I don't see Agile-developed software gaining a lot of ground. After 10 years or so, one would think that if it really was a lot better, at least half of all products out there would be Agile-based by now?
      Of course, many successful products have been developed with "Agile-like" methods, including the bazaar.

    4. Re:Why don't they ask by Dumnezeu · · Score: 1

      After 10 years or so, one would think that if it really was a lot better, at least half of all products out there would be Agile-based by now?

      No. Most companies don't understand Agile so they're either afraid of it or they implement their own flavor which is usually far from Agile.

      And here's some of the stuff I heard managers/CEOs say about agile:

      Agile may be better than waterfall, but what would we do without all that documentation??!?!?1?? How would the project survive and how could the developers write code without shitloads of documentation? Who the fuck do those computer programmers believe they are when ask to be considered human beings? Everybody knows you can't trust your employees with anything, so you have to make all the decisions because they're either incompetent, they might steal your code or they might intentionally break it. Waterfall WTF! </sarcasm>

      --
      Yes, it's sarcasm. Deal with it!
    5. Re:Why don't they ask by Kjella · · Score: 1

      What's the name of that FBI project again?! Virtual case file?! Oh well...

      Things that fail this spectacularly normally fail for reasons completely unrelated to development methodology. I've not been in that huge projects but I've been in projects with very much plan and documentation and in projects with very little plan and documentation. Both tend to reach their goal, if just the goal is reasonably stable and someone is willing to take decisions.

      Where I've noticed the biggest limitation is that agile just doesn't work to replace already large and old systems. You can't start with a system that does 10% of what the old one did, and it's not that easy to break it down into parts because the old system isn't very modular. Oh, you can still try for agile development but without actual users, only a few people to test progress it doesn't really work. You really have to draw up a list and say "We need features a, b, c, d and e before we can even start using it. Only when that's done can we make the kind of continous improvement you talk about."

      --
      Live today, because you never know what tomorrow brings
    6. Re:Why don't they ask by DragonWriter · · Score: 1

      if waterfall has delivered?!

      It seems most projects work in spite of waterfall, not because of it.

      Assumes facts not in evidence. To wit, "most projects work".

    7. Re:Why don't they ask by Hairy1 · · Score: 1

      There is no waterfall.

      As soon as you deviate from the original design you are doing something else.

      In my experience there are three important factors for sucessfull teams:

      Good people.
      Good communications.
      Good teamwork.

      Development is primarily getting these factors right.
      Process should focus on being minimal and observed; that is have the least process possible, but ensuring the process is followed.

    8. Re:Why don't they ask by Peeteriz · · Score: 1

      Well, most projects don't work; any worldwide project management statistics state that a vast majority of projects didn't meet the expected project goals or got extreme cost and/or time overruns.

  9. Work's for us by IronWilliamCash · · Score: 1

    I work for a company that uses the scrum variant. It's been working for a while now and the company hasn't stopped growing because of it. The trick is to know when to say no to a change request for the current version of your software. You can always develop a functionnality for the next version, which in Agile is always in a short time. (We work with four iterations per year). All in all it works great for the time being.

    1. Re:Work's for us by jfanning · · Score: 1

      Iterations should be on the order of a week or two, not 3 months.

    2. Re:Work's for us by IronWilliamCash · · Score: 1

      Unfortunately a week or two doesn't get enough done. Some things do fit in that time period, but some things don't so it's adapted a bit, but still works fine.

    3. Re:Work's for us by IronWilliamCash · · Score: 1

      I'd like to specify also that the software developped is not available as a download, it's a dvd distributed version for large companies, changing the whole supply line every 2 weeks wouldn't be very nice for the budget.

    4. Re:Work's for us by jfanning · · Score: 1

      Then you aren't breaking the tasks down into small enough parts.

      The point of the sprints is that at the end of each sprint you have something to show and everyone can see your progress. Three months sprints isn't agile, it is mini waterfalls.

    5. Re:Work's for us by jfanning · · Score: 1

      That also doesn't matter. Agile, doesn't say you have to ship at the end of each sprint. It just says that you have a "potentially" shippable product.

      The company where I work has many scrum teams (hundreds of developers across the world) all working on different parts of an extremely large product. The entire product is only shipped every 6 months or so, but the sprint is usually only 2 or 3 weeks.

    6. Re:Work's for us by MadKeithV · · Score: 1

      I'm anti-agile in principle, but even I know that you don't ship every iteration - you create a potentially shippable product every iteration.

    7. Re:Work's for us by DragonWriter · · Score: 1

      Iterations should be on the order of a week or two, not 3 months.

      Iterations should be sized based on what is typically needed to complete a coherent unit of work with independent value (that is, even if you aren't shipping after each iteration, the stuff that's done in the iteration should be such that if you did ship, it would be complete, useful functionality, not dangling pieces that aren't valuable on their own.)

      If, for a particular product, that's 3 months, then the iterations should be 3 months. If you aren't completing independent units of work in iterations, you are creating additional overhead costs in managing the iterations, but not producing the value for that cost that development in iterations that deliver value is designed to produce.

      It may be the case that on a typical product 1-2 week timelines are more appropriate, but one of the things agile is against is taking processes that work on a "typical project" and holding them up as Received Wisdom that is uncritically applied everywhere.

  10. First decade? Not likely by netsavior · · Score: 5, Interesting

    In my experience, software development methodologies are more of a way of describing how teams already work. Sure you can put a name to it, polish it a bit, and other people can work toward that name, but there were tons of "Agile" projects and "Agile" groups before the manifesto. Maybe "Software companies" didn't do it before 2001 I don't know... but "software departments" of other companies have pretty much doing this since I have been around, which is a lot more than a decade.

    The truth is that electronic delivery created agile development, at least for software companies. Internal departments have had the connectiviety for 2+ decades to deploy new releases often, but it wasn't till the late 1990s or early 2000s that a "boxed" software company could provide regular working releases to their customers (who wants to mail a CD or a stack of floppies every 3 weeks, and what customer would actually apply them?) Web-based apps and self-updating software just brought dedicated software development in line with corporate development practices, and then it was given a name.

  11. Prove it works in terms of ROI and... by gestalt_n_pepper · · Score: 1

    only then will I take it seriously. It's different from waterfall, but the results don't look different to me, and I have yet to see a decently designed independent study comparing the two (If you have some, please send links).

    --
    Please do not read this sig. Thank you.
    1. Re:Prove it works in terms of ROI and... by Anonymous Coward · · Score: 0

      So your new shiny product you are working on you want to show it at a trade show. Scheduled a demo...

      Waterfall OH CRAP we need to rearrange everything 10 features are not there yet and do not go in for 2 months. Crash and burn right up until the demo date. The demo goes 'ok'.
      'Agile' pull the 10 features forward schedule it down and figure out we only really needed 8 of those and have a demo on each all the way. The demo goes 'ok'.

      Result SAME.

      However, with the first one you stressed everyone out your grand plan is all shot to hell and you did Agile like things anyway. After the demo everyone feels 'burned out' and takes a few weeks off. Especially after the end where everyone was burning on weekends and 60-80 hour weeks. Your crew is probably burned out and will never 'recover' properly.

      Second one no one is stressed out. Change is part of the norm. You hear things like 'yes we can hit the demo however you will not get feature X Y and Z unless you drop feature Q weeks before. You can then as a business decision decide what sells better. With waterfall you wouldnt find that out until the day before the demo and then everyone is scrambling to decide what to show. Remember Agile guys are used to fiddling the schedule around, waterfall its not part of their job that is the program managers problem. After the demo everyone keeps going as its just norm. They were not burning 60-80s (unless something is wrong in your agile process). You still have a productive crew.

      One way you burned your guys out the other they keep coming in and the demo was just another delivery point.

      I have no studies. But that is what I have seen in the few dozen different projects I have worked on.

      Of the two Agile and Waterfall produce the same things. Agile however is better at scoping the project (cost and time) and finding out what is really needed.

      The trick with *ANY* of them is to stick to the process. Do not short cut them for 'time'. That always costs you time later on. In my first example you had to shortcut the process. It totally wacked it out of shape. In my second example that type of shortcut is PART of the process.

      I have also see Agile done badly (all processes can be perverted). Typically it happens if you see people getting myopic on the process with it instead of letting people work and hit their deliveries. It can also get out of control with 'meeting hell'. You need to keep them short and stay on it, as some people like to showoff and blab. Notice at no point did I say 'skip planning'. It is just as important in all processes. If you have no plan what are you doing? With Agile the plan is a bit more swag, with waterfall you are trying to figure out what you are going to do a year and a half from now (when was the last time that worked for you?). Or as one old guy I used to work with would say 'that looks good but it will not be what we deliver'. Everyone would chuckle and do it anyway.

  12. I think.. by Anrego · · Score: 2, Insightful

    Bits and pieces of agile are good. I think if you take the spirit of agile.. that is doing things because it's a good idea, not because you have a compulsive need to fill binders with documentation.. it can work well.

    I like unit tests for regression testing (that is, verifying that the software still does what it used to).. but I think test driven development is more hassle and riskier than it's worth (now instead of just changing code when the requirements do a 180, you have to change code _and_ unit tests, ($cost + $time) * 2).

    I like eliminating "because we need documentation" documentation.. but I think there is great value in documenting stuff that is complicated or weird. Having a binder full of "the UserAccount class represents a user account. It is comprised of a username representing.." is useless. The same goes with diagrams.

    The worst is when agile is implemented as a buzzword. "We are agile! We have a binder full of documentation describing the rigid agile process we follow!" (not saying agile or processes in general shouldn't be documented, but in my opinion the whole point of agile is to be flexible).

    1. Re:I think.. by mcgrew · · Score: 2, Insightful

      Bits and pieces of agile are good. I think if you take the spirit of agile.. that is doing things because it's a good idea, not because you have a compulsive need to fill binders with documentation.. it can work well.

      Documentation is like code -- it doesn't work unless you do it right. An example is kubuntu's documentation. Pages and pages about how to customise the K menu, but not a single word about how to start the editing program. I had to have someone on slashdot to tell me you left click the K menu.

      We're not mind readers. Just because you think something's obvious doesn't mean it is. Bad documentation is as bad as bad programming. The trick isn't less documentation, it's BETTER documentation.

      It seems Microsoft has been studying this, because Windows help system is even worse than kbuntu's documentation. At least most stuff is documented, and accurately, even if a few things someobody thought was obvious were left out.

      I like eliminating "because we need documentation" documentation.

      Indeed; sometimes it seems you need less than three digit IQ to be a manager. Document code for the people who will have to maintain it, not for documentation's sake. Document the software for the end users who need to know how to find a feature, not for the sake of documentation (like Microsoft seems to do).

      The worst is when agile is implemented as a buzzword.

      I saw nothing but buzzwords and marketspeeak in the linked FAs.

    2. Re:I think.. by complete+loony · · Score: 1

      There's a picture on one of our cubical walls called something like the "sine wave of test automation" (can't find an online copy ATM). You start with heaps of manual testing, automate it and become more productive. But then a small change breaks heaps of tests, you end up with an aversion to change because of all the tests that would break.

      The best documentation for what the application currently does, is the source code. Of course not everyone can read it. If you find yourself answering the same questions, then you don't have enough external documentation. Too much documentation is a lot harder to diagnose. And there's nothing worse than documents that are inaccurate or misleading.

      Our development processes used to be all about control being imposed from the analysts and project managers who have nothing to do with writing the actual code. They tried to spec everything in way too much detail, get the client to sign off on it even though they may not understand it. Then us dev's would get a hold of it and try to make something that actually worked. What ended up being tested rarely matched the spec precisely.

      Now we have a small team starting to work in a more agile way. The biggest change isn't how we go about writing the software, it's how we communicate about those changes. We're admitting the truth about how we actually develop software.

      The requirements are stated in much simpler terms. The more detailed documentation we produce, actually describes what we are implementing. Our estimates are approximate and the design isn't set in stone until the work is actually finished. And most importantly, we're communicating with each other more throughout the whole process.

      --
      09F91102 no, 455FE104 nope, F190A1E8 uh-uh, 7A5F8A09 that's not it, C87294CE no. Ah! 452F6E403CDF10714E41DFAA257D313F.
    3. Re:I think.. by TrueKonrads · · Score: 1

      unittests also serve as documentation - show how stuff is used.

      --
      Lone Gunmen crew.
    4. Re:I think.. by Nerdfest · · Score: 1

      I find the the bigger advantage of having all of the unit tests is getting people to think about testability when designing. Components designed with testability in mind seem to be more robust and well thought out as it tends to force a lot of the 'spaghetti' out of a component.

    5. Re:I think.. by rwven · · Score: 1

      The point of agile is not to be "flexible." The most successful Agile teams are extremely disciplined and follow very strict guidelines for development. Anyone who has gone through any proper Agile/Scrum training will tell you that if you're not very strict and disciplined, the process can fail just as easily as any other methodology.

      The point of agile is to cut the pointless crap out of development, and hand the customer what they ACTUALLY wanted instead of what the documentation and req docs were interpreted as saying. It's iterative so course corrections can come quickly as-needed and you won't hand the customer software at the end that doesn't do what they actually wanted.

    6. Re:I think.. by Griffon26 · · Score: 1

      Don't lump specs/design documentation and user documentation together. They are completely different.
      The design documentation should complement the code and give a new guy the high-level overview he needs to know where to start reading the code. Less documentation is good in exactly the same way that less code is good. This is about maintainability.
      The user documentation is like the functionality of the code once it's running. More documentation is good in exactly the same way that more functionality is good. This is about usability.

      Don't misunderstand me, I'm not saying that smaller code is always better or that more features are always better. It's the difference in considerations that separate the two types of documentation.

    7. Re:I think.. by wgc · · Score: 1

      Bits and pieces of agile are good. I think if you take the spirit of agile.. that is doing things because it's a good idea, not because you have a compulsive need to fill binders with documentation.. it can work well.

      I'm not sure what you're saying here, but I disagree. In general agile processes are defined a certain way because they work. If you take only pieces, you're not following the known-working process so your expected results are indeterminant. If you're filling binders with documentation, you're probably not doing any form of agile.

      I like unit tests for regression testing (that is, verifying that the software still does what it used to).. but I think test driven development is more hassle and riskier than it's worth (now instead of just changing code when the requirements do a 180, you have to change code _and_ unit tests, ($cost + $time) * 2).

      That may be true if you're the only one working on it. However some of the benefits of TDD include arriving at an early consensus on design details and allowing different roles to work in parallel. Once you've defined the tests, everyone knows exactly how it needs to work and you can have your developers go ahead at the same time as your qe at the sae time as your doc at the same time as your consumers. You've flattened out the pipeline.

      By your reasoning without TDD, yes, your stage in the pipeline is quicker, but the pipeline is much longer and more serial.

      I like eliminating "because we need documentation" documentation.. but I think there is great value in documenting stuff that is complicated or weird. Having a binder full of "the UserAccount class represents a user account. It is comprised of a username representing.." is useless. The same goes with diagrams.

      My group is still having that argument, but people seem to misunderestand that agile requires no documentation. Agile does not assume any documentation. Starting from zero, YOU define what is necessary for your project then implement it. The result should be significantly less and significantly more effective documentation than the traditional approach of starting with a heavy doc requirement regardless of project needs. However it does assume you have competent people willing and able to make the right decisions.

      I always think that is the fundamental difference. Waterfall assumes everyone may be lazy, incompetent or malicious and tries to keep everyone in line by predefining everything and including lots of checks and balances, and command and control. Agile assumes you have competent professionals so you need to get out of their way, empower the right person to make the right decision, and help the team work together.

      The worst is when agile is implemented as a buzzword. "We are agile! We have a binder full of documentation describing the rigid agile process we follow!" (not saying agile or processes in general shouldn't be documented, but in my opinion the whole point of agile is to be flexible).

      Yes, that's clearly not.

    8. Re:I think.. by Anrego · · Score: 1

      That may be true if you're the only one working on it. However some of the benefits of TDD include arriving at an early consensus on design details and allowing different roles to work in parallel. Once you've defined the tests, everyone knows exactly how it needs to work and you can have your developers go ahead at the same time as your qe at the sae time as your doc at the same time as your consumers. You've flattened out the pipeline.

      By your reasoning without TDD, yes, your stage in the pipeline is quicker, but the pipeline is much longer and more serial.

      I totally agree that nailing down interfaces between seperate components is always a priority, however there are lots of alternatives to TDD for this. it can be done procedurally through some kind of documentation... or even at the code level (Java interfaces are awesome for this.. define your interfaces first, then everyone can go into their silo).

      I guess what I have an aversion to is locking the design down so tightly that developers can't breath. No matter how much up front design you do, programmers are always going to think of better ways to write code while they are actually writing the code. Stuff that works great on paper can suck in code form.

      If unit tests are used more as general test automation.. that is testing inputs and outputs vice testing classes.. it's not so bad. When you start writing test cases that test every function of every class to increase some code/branch/path coverage metric, you end up with massive dead weight and a lot of "yeah that makes sense, but you'll have to re-write 56 use cases to make that slight design tweak".

  13. Re:I love seeing liberals wallow in misery! by gestalt_n_pepper · · Score: 0, Offtopic

    Wait.

    --
    Please do not read this sig. Thank you.
  14. Re:I love seeing liberals wallow in misery! by just_another_sean · · Score: 0, Offtopic

    Did Al Gore invent Agile as well or something?

    --
    Creationist Textbook Stickers Declared Unconstitutional by CowboyNeal
  15. I Pass On Any Job Asking for Agile, Scrum, XP by Anonymous Coward · · Score: 0

    I'll usually pass on any job asking for agile, scrum, xp, etc. Any company asking for those 'skillz' is sure to be a nightmare to actually work in. I've been a consultant for over 20 years and every single project I've seen where they emphasize this mode of working has delivered extremely sub-standard results and I've worked in everything from banks to startups.

  16. Re:First decade? Not likely by khakipuce · · Score: 1

    Mod the parent up. I'd done agile within Waterfall for about a decade before 2001.

    --
    Art is the mathematics of emotion
  17. Look! Boxes of software falling from the sky!!!! by Anonymous Coward · · Score: 1, Insightful

    Sweet, more supposed justification for the cargo-cult bullshit that passes itself off as modern software engineering practices. "Yes, someone said that every morning we must huddle and Scrum and the Scrum must take place like this or it won't work right! If you let someone sit down it won't work right !! Now make sure you don't do anything until you've jumped up and down together and given a handy to the dude to your left or it won't work right !!!"

  18. Where it works and where it does not. by 140Mandak262Jamuna · · Score: 2, Interesting
    1. It definitely tells the management what they want to hear. Timely delivery, early notification of slippage etc.

    2. It at least notionally asks the management to consider resources while committing to features.

    3. It allows some kinds of software project to managed better. Things like merging products when companies merge, or when porting software to a new platform etc.

    4. It works when the project has a large number of people with identical or largely similar skill sets. If the project has large number of specialists (like "Frank here is the only one who can even touch the turbulence modeling code") development will be slow, agile or not. At least the management should know not to commit to too many turbulence modeling features.

    5. Rally proponents broad brush all skeptics as "people not willing to change".

    6 Too many Rally concepts come from manufacturing and some of the examples and analogies don't even translate correctly. Take the famous, "burnt toast" example. A company decides to burn all the slices, and then scrape off the charred crumbs to get the color desired by each customer. Supposedly Rally will toast them right in the first try saving all the efforts that go into scraping off charred crumbs. Well, in software it does not cost me any money to char a toast and scrape the crumbs. Often times it is perfectly ok to render all the pixels of each body, even if another body is going to come back and override a lot or most the pixel later. You waste time trying to predict the final pixel value to render it just once.

    7 Some times it is funny to see the Rally proponents not using Rally methods to develop their presentations, not using Rally for their own internal websites! Too many of them recite from a text book or a holy book instead of using actual code/project examples.

    --
    sed -e 's/Chuck Norris/Rajnikant/g' joke > fact
    1. Re:Where it works and where it does not. by 99BottlesOfBeerInMyF · · Score: 1

      It works when the project has a large number of people with identical or largely similar skill sets. If the project has large number of specialists (like "Frank here is the only one who can even touch the turbulence modeling code") development will be slow, agile or not.

      One should note that for pair programming environments and most Agile methodologies, this should never happen because there should have been many different people that developed each part of the code. If only one guy knows how something works, you probably did not follow an Agile development method.

    2. Re:Where it works and where it does not. by 140Mandak262Jamuna · · Score: 1
      1. There are already products that are shipping. They were developed sold and they have to be maintained. No point in saying it should never happen in true agile environment. Agile has to take existing code base and existing programmers and hit the ground running.

      2. These developers are expensive. Many companies cant afford to hire the second turbulence modeling guy or the second boundary layer meshing gal or the second transonic flow specialist.

      3. You can't reimplement or refactor their code. They are often hire for their math and physics skills and their programming skills are atrocious.

      --
      sed -e 's/Chuck Norris/Rajnikant/g' joke > fact
    3. Re:Where it works and where it does not. by 99BottlesOfBeerInMyF · · Score: 1

      There are already products that are shipping. They were developed sold and they have to be maintained. No point in saying it should never happen in true agile environment. Agile has to take existing code base and existing programmers and hit the ground running.

      True, but the problem is the result of the previous development methodology and the refusal to hire the manpower needed to implement Agile correctly. Hiring one programmer that can work the code and one that cannot is NOT Agile programming. Calling it such is just marketing.

    4. Re:Where it works and where it does not. by Anonymous Coward · · Score: 0

      i am not calling it agile. Just admit there are situations where agile does not work. That is all the point I am trying make. I will readily concede there are situations where Agile is very suitable.

    5. Re:Where it works and where it does not. by 99BottlesOfBeerInMyF · · Score: 1

      i am not calling it agile. Just admit there are situations where agile does not work. That is all the point I am trying make.

      Well of course there are, like when someone wants you to make software that does something impossible, for free, in a day. No one is claiming Agile is magic. It's just that saying because you used some other methodology and don't want to invest to bring things into line with Agile methods, that Agile does not work, well that's a little redundant. It's just another way of saying Agile doesn't work in cases where you don't use Agile. That's the point I'm making. It's useful and constructive to point out the drawbacks to Agile, such as more overhead or an unneeded level of testing. Your example I find less relevant.

  19. Management Bullshit by Anonymous Coward · · Score: 0

    "Agile Programming", is a trick to get programmers satisfy management lies in schedule.
    Once schedule is satisfied, they look good; they move on to the next lie.
    Whatever happens after that (bugs, code reuse, maintenance, adherence to standards, scalability, interoperability) is not their problem.

  20. Scrum is *not* a replacement for good management by Gopal.V · · Score: 5, Interesting

    I appreciate good management. I can live with no management, but I can't handle bad management.

    SCRUM has sort of become a device for a manager to avoid managing. The human in the picture is replaced with a sprint chart and backlog tracker. It lets bad managers get by, while good managers are really thrown out of the picture.

    I hated scrum in my old job. But the new job just throws out a list of features to implement, ranks it and throws it at one of us. There are no punishments for missing a day, no tracker to guilt-trip you and most importantly, the stand-up meetings are just before lunch. And mostly, serves to keep our communication channels open across the team.

    I hated the time-keeping TPS report style scrum, but I'm cool with the new approach. I love the idea of sprints and taking a week out of a month to hammer something out. But this system only works with motivated teams with a fair scrum-master.

    But I repeat, it is not a replacement for good management. It is as good as a way of letting me manage my tasks,but please (for the love of God, please) do not use it to manage me.

  21. Those are not agile offshoot at all by Anonymous Coward · · Score: 0

    They all existed before the agile manifesto was written.

    Scrum was described and named like this in a 1995 (https://secure.wikimedia.org/wikipedia/en/wiki/Scrum_%28development%29).
    Books on Extreme Programming were written in 1999 (https://secure.wikimedia.org/wikipedia/en/wiki/Extreme_programming).
    Kanban was used in the 1950s (https://secure.wikimedia.org/wikipedia/en/wiki/Kanban).

    Get your history straight.

  22. Paired programming might get you cut! by Anonymous Coward · · Score: 1, Insightful

    I post anonymously for a reason. But the next person that decides they want to sit down and "pair program" with me might just get stabbed. Yay almost 1/2 the productivity!!! 1 person sitting the other thinking:

    - You smell.
    - God I can't type while someone watches.
    - Fucking sip that coffee one more time bitch!!
    - I have to fart.
    - I don't want to hear about your kids.

    and the biggest..

    - Touch my screen one more time!!! daaare you. :-(

    I swear, the ones that are the most interested in this programming paradigm feature are the ones that can't code and want to feel part of the process while still acting in their typical ineffective fashion all the while flying under the radar.

    1. Re:Paired programming might get you cut! by indeterminator · · Score: 1

      - Touch my screen one more time!!! daaare you. :-(

      Keep a pencil nearby. Explain that you don't enjoy fingerprints on your screen the first time someone does it. The next time he tries to finger the screen, slap that finger with a pencil.

      You'll find out most people are quick learners.

    2. Re:Paired programming might get you cut! by wrook · · Score: 1

      I don't want to pair program with you either. See, we're all happy :-)

      Some people can't pair program. Sometimes they are intimidated by having someone seeing what they are doing. Sometimes they don't understand how to do it effectively and are so caught up in their preconceived notions that it is impossible to teach them. Sometimes they are just nasty people that nobody wants to work with.

      When I ran teams with pair programming I never forced people to do it. But our shop had a strict policy of no code ownership. You took the top story on the list no matter what area it was in. Our stories took on average 1-2 days (which is important when your iterations are 2 weeks long or less). It doesn't give you a lot of time to get up to speed especially when you refuse help from others. Habitual solo programmers were usually late and their code didn't fit with the others.

      I know lack of communication and a desire to hide in your fortress of impenetrable code is cool in programming circles, but it does tend to lead to the degradation of the code base. Very occasionally there was a guy who just plain worked better on his own. Everybody is different. But in my experience, the ones who ran away to code by themselves every day were the guys that weren't worth having.

      Maybe your shop is different. Maybe...

    3. Re:Paired programming might get you cut! by rob_osx · · Score: 1

      I wholeheartedly agree! I tend to find new college grads want to pair up and code together. What's that about?!? It's not like they produce more code sitting hip to hip. When one of them sat down to "help" me, my production went down, because my thoughts kept getting interrupted by, "you need to do this..." "place a brace over there..." etc. I enjoy teaching newbies, but there is a time for training, and a time for me to get my work done. I don't like someone else looking at my screen, thinking and TALKING about the small piece of code, while I'm busy thinking about the big picture design and API.

    4. Re:Paired programming might get you cut! by Anonymous Coward · · Score: 0

      I love pair programming when she's cute.

    5. Re:Paired programming might get you cut! by matfud · · Score: 1

      Taking the first item on the list is not always a good idea as some issues require specialised knowledge, not of code as such, but of theory. That should be assigned to a person who knows the domain. Unless you are willing to allow the time for an arbitrary dev to learn it.

      And you will have specialists. However others can work on the code when there is some there to work on. But the specialist should own the code. Note the small 'o' on own there it should not be their private domain.

    6. Re:Paired programming might get you cut! by Anonymous Coward · · Score: 0

      Pair programming is not about someone watching you type and disturbing you while you try to think about the big picture design. It's about thinking the big picture out loudly together, discussing it, agreeing on the solution, and an extra pair of eyes while the implementation is being typed. "Place a brace over there" isn't helpful, but "shouldn't we use a set rather than a vector?" is. Likewise is "Hey! That algorithm is quadratic - can't we do better?" Slightly helpful is also comments about following the code standard (if it exists), checking error codes, etc., although that can be sorted out quickly during the code review (if there is one). During my years as a programmer I've caught many bugs while during pair programming (not just coding bugs, but design bugs too) and I've had plenty of my own bugs squashed too.

    7. Re:Paired programming might get you cut! by Anonymous Coward · · Score: 0

      So people that don't like pair programming are either intimidated, ignorant and prejudiced, or nasty, and they aren't worth having? Way to paint with the broad brush...

    8. Re:Paired programming might get you cut! by donscarletti · · Score: 1

      Well, I have to say, I had some great experience pair programming with the lead programmer at my second job after university. He's a very good programmer, but he has this major conservative bent whereby he enjoys calling problems "fixed" once he has made a single improvement and waiting for it to pop up three weeks later. He also takes exception to some of my programming style (which you would have to ask him about) and has a very concrete idea about certain things like which parts of STL can and cannot be used. I do not think either of us enjoyed working together as a general rule, in a sense we were too different, but mostly we were too similar in that we both possessed talent and arrogance in equal amounts. Anyway, there came a time where we had to majorly re-structure a critical system to make it threadsafe and to fix some glaring interface and behavioral issues that would have been almost impossible to do in the old structure, neither of us trusted the other to do the job, so we agreed to do it in a pair. It is amazing the quality of code you can write when you have to justify every line to the jerk sitting behind you. It is amazing how fast you can think when you know you need to propose a better solution than the other guy or you will have the keyboard stolen from you. We did a job we thought would never be done and it took us two days. In the end, we had major performance improvements, inadvertently fixed a devastating bug that showed up later on the old branch and turned a 7000 line unmaintainable mess into a well built, clean and modular system that could be used easily for many other tasks while introducing only a single new (detected) bug, which was fixed just a few days later. I would advise it to be used whenever a situation justifies it or if you have two people who work well as a team, often a good relationship mixes respect and contempt. One benefit is review and accountability, another benefit is that the person at the keyboard can think about this line, this loop, this function and the guy behind can think of the larger scope.

      --
      When Argumentum ad Hominem falls short, try Argumentum ad Matrem
  23. Agile can work ... by tgd · · Score: 2, Insightful

    In my experience, Agile works for two things:

    1) Maintennance and support development
    2) Extremely strong engineering teams

    Formal processes with more up-front planning and review like waterfall allow you to turn out high quality product with average teams. You can't use the typical Agile processes with average teams and do substantial new development, but I've seen it work well enough for incremental development or support engineering/bug fixing.

    A good manager will know his or her team and use the methods appropriate for success with that team, and not chase buzzwords.

    In my experience, though, these days there are a LOT of bad managers.

    1. Re:Agile can work ... by wrook · · Score: 1

      I've run XP projects with average teams with great success. And my best successes were with new code. In fact I wouldn't run XP on a maintenance project initially because you usually don't have good test coverage. It takes forever to build up an environment where XP's advantages are visible. If you are trying to do it with an untrained team it's a recipe for disaster.

      Now, I don't really think XP is "agile" in the way most people view "agile". XP is a highly structured discipline which requires an understanding of the practices and a commitment to following them. Usually people think "We'll use common sense and keep the process lightweight" when they think "agile". They are often thinking that they have the freedom to pick and choose what they will do at any given time. They also rely heavily on individual contributions to make success. In that way it's pretty dissimilar from XP.

      On the other hand, after having run several XP projects I am struck by the idea that the ability of XP projects to get good productivity comes from what isn't done more than what is. For instance allowing (demanding?) requirements to change midstream means that we don't build functionality that isn't needed at the end. Keeping the code base as simple as possible (especially reducing code duplication) means that we don't have to build the same thing over and over again. By enforcing continuous communication through pair programming, continuous integration, acceptance testing, etc we don't build things that we don't need by accident. I could go on forever.

      I once estimated that my XP team could deliver functionality 6 times as fast as the other teams in the company. And we had a completely ordinary team of 6 programmers (including 2 coops). In fact we weren't programming 6 times as fast. In many cases we were writing code slower because we had to write tests and we were doing a lot of refactoring. But we were delivering functionality that the customer wanted much, much faster. It really helps when you don't have "emergencies" that cancel your project, or cause you to completely revamp a subsystem, or whatever. We were "agile" because we could deliver quickly and we could change what we were doing quickly. But we were bloody strict about how we did it.

    2. Re:Agile can work ... by Anonymous Coward · · Score: 0

      Waterfall hasn't ever worked for anyone anywhere, and was proposed by a guy explaining how obviously it won't work.

  24. hrmmm by Charliemopps · · Score: 1

    What model is it when people tell you they want something, you say "I can sorta do that" a while later you give them something, they say "I guess that'll work" and you're done? Cause that's the environment I'm in. Occasionally people come to my desk to say stuff and I just yell "SCOPE CREEP" really loudly and they walk away.

    1. Re:hrmmm by Anonymous Coward · · Score: 0

      You sound like a terrible co-worker.

    2. Re:hrmmm by iceaxe · · Score: 1

      I think next year I'll dress as a scope creep for Halloween.

      In other news, the model you describe is known as either "hell" or "paradise" depending on your own preferences and the people you work with and for.

      I've worked on many projects for several employers using several variations on the software development process models in question, from waterfall to scrum/agile to the free-form hell/paradise you describe. I can say that in my experience, the most fun for me, and the most productive for the employer, by far, was a team where we began with something like your situation, and gradually implemented agile processes until we were very "agile" in all the ways that worked well for us, over the course of about two years.

      We were a well oiled code cranking machine by the end of that time, at which point another company bought us out and wrecked everything. I was fortunate to leave on day 1 of the new regime, so my memories are golden. :)

      I will say that that team was a small one made up of motivated people who looked out for each other. I highly recommend the experience.

      --
      WALSTIB!
  25. Works for us by Charles+Dodgeson · · Score: 2, Informative

    I work in customer support for Agile Web Solutions, the makers of 1Password (a password management system) for Mac, Windows, iOS and Android. Agile development seems to work well for us.

    I think that there are two reasons why this has worked well for us while not for others.

    • Our managers and our coders are the same people. So this isn't some management fad that is used to place unwanted demands on our coders.
    • We are not rigid in our adherence to agile principles. We plan ahead where it makes sense to.

    There are drawbacks, of course. What we like to think of as "surprising and delighting" and delighting our customers usually works, but sometimes we have to take steps back from something visible which we've tried. I think that over all this still is a "win" for us and our customers, but it can sometimes be disappointing.

    A perceived (but imaginary) drawback is "wasted effort". We put a great deal of effort into getting data syncing among machines and devices to work via webDAV (and in particular, MobileMe). For a variety of reasons we had to abandon that approach and go with Dropbox (with which we are very very happy). To some this might seem like wasted effort, switching to a different approach after a great deal of effort has gone into the first one. But in fact, agile principles in this case simply mean that we don't fall victim to the sunk cost bias.

    --
    Prime numbers are exactly what Alan Greenspan says they are -S. Minsky
    1. Re:Works for us by e4g4 · · Score: 1

      This is completely off-topic (or perhaps slightly on-topic, regarding the effectiveness of your development methodology), but your software is fantastically useful (and perfectly functional, I've never had an issue) - I don't know how I ever lived without it.

      --
      The secret to creativity is knowing how to hide your sources. - Albert Einstein
    2. Re:Works for us by Charles+Dodgeson · · Score: 1

      Thank you very much, e4ge!

      --
      Prime numbers are exactly what Alan Greenspan says they are -S. Minsky
  26. long live documentation by Anonymous Coward · · Score: 0

    i find that agile is used alot as an excuse to just go ahead and code. real agile, and test driven development is hard so most agile teams i have worked with have just used the word agile to skip the stuff they dont like (documentation) and go strait to coding. this leaves you with out important pieces that you are going to need later a year down the road when you want to add features, but everyone forgot were they left off. real requirements and documentation are important, but time consuming. there is reason why they have survived for this long and people still use them today.

  27. As compared to other programming techniques? by khchung · · Score: 1

    How much did Object Oriented Programming deliver on its first decade? How pervasive it is now?

    If nothing else, just considering the promotion of good practices like unit tests and refactoring - look at JUnit and all the refactoring functions in Eclipse, I would say Agile Programming has already delivered a lot of value to programming.

    It probably won't be replacing waterfall for a long long while, but considering that almost no development house really follows waterfall (anyone really has a complete set of requirements before they start development?), that's not really a meaningful metric.

    --
    Oliver.
  28. Yes by nurbles · · Score: 1

    Agile programming works when performed by agile minds. Not all programmers are able to adapt to constantly changing requirements, but some are and they are the ones who succeed with agile programming.

    1. Re:Yes by mrjb · · Score: 1

      Not all programmers are able to adapt to constantly changing requirements, but some are and they are the ones who succeed with agile programming.

      I bet those programmers would typically be the ones that get their Information Analysis right from the start. This allows systems to be flexible enough to change. As a result, these same programmers would be successful regardless of the presence of agile.

      Likewise, there are developers that don't know how to design data structures/databases that are flexible to changes. No amount of so-called agile practices will save them, as bad data structure design *will* have a SEVERE impact on maintenance. And this maintenance will only increase as the system evolves from a quick hack into legacy software.

      --
      Visit http://ringbreak.dnd.utwente.nl/~mrjb/growingbettersoftware to download your free copy of the book
  29. Worked for my previous project by khr · · Score: 1

    Agile / XP worked great for the last project I was on for a few years. Before that I was on a few different ones using something approximating waterfall (small company, no named processes) but then I quit there and got on an XP project, with half the team in the U.K. and half in India (I was in India).

    Overall, we developed software better and faster than anything I'd done before. I think the key to the agility was the whole team bought into it, with the business analysts doing their part to break requirements down into small enough chunks that the developers could develop them top to bottom in a single iteration. That gave them a good idea how the project was progressing and whether we, as a team, were creating software that would be usable by the end users. It was quick to change things if something was developed that ended up not being very usable (i.e. looked good with static screen designs, but sucked when actually used).

    In general it worked best when the team was weighted with more senior developers than junior developers, as the senior ones had a lot more "let's get it done" attitude instead of "tell me how to do it" and "tell me what to do next".

    Pair programming? Unit testing? Stand-ups? They all helped contribute, but I didn't see them as the core parts of what made the team function well. That was basically breaking down requirements into small chunks for easy changes.

    Sure, it wasn't perfect, but it was a hell of a lot better than any other project I worked on before that.

  30. If you speak overmuch of the Way by jellyfrog · · Score: 1

    you will not attain it?

    The primary thing when you take a sword in your hands is your intention to cut the enemy, whatever the means. Whenever you parry, hit, spring, strike or touch the enemy's cutting sword, you must cut the enemy in the same movement. It is essential to attain this. If you think only of hitting, springing, striking or touching the enemy, you will not be able actually to cut him.

    — Miyamoto Musashi (The Book of Five Rings)

  31. Indeed, THERE IS NO SILVER BULLET by SmallFurryCreature · · Score: 4, Insightful

    IT, or at least some people in IT suffer from what I call the "Oprah" syndrome. No, not the weight issue. The idea that a problem is just one problem and that it can be solved with a single solution. Or the silver bullet that will solve all your problems at once.

    Software development is bloody hard, partly because it doesn't deal with a real product and testing a software product is extremely abstract.

    If I design a better brake pad, I can test this fairly simply AND thorougly. We know exactly what it is supposed to do, how it does it and how we can compare performance. There is no magic, if the brakepad reaches 198 degrees on a sunday, the trunk will pop open. Also nobody will ask a brake pad engineer to add a christmas special to it, on the 25th of december, at 8 in the evening.

    Web development especially suffers from the idea that if only we implement magic method number #45324521, all the hassle of web development will go away. Writing specs is long boring and not very sexy. So lets do agile and not write them anymore. Problem solved... eh no because spec writing is long boring and not very sexy because getting the requirements out of a user is like sucking cock. The user might enjoy it but you are just left with a bad taste in your mouth and a desire to throw up over the user. Or maybe that is just my dates.

    "But if you do agile right", but if you do documentation driven development right! Any method, done right will most likely work. That is the definition of doing it right. Why is it so hard to do agile right? Why are there so many variants already?

    I see a lot of "magic" solutions in web development.

    Database abstraction, so we can magically switch database!!!

    Question: When have you EVER switched database on a web application and HOW easy was it? Is there ANYONE out there who only use pure SQL that is 100% understood by all databases the same? Then go stand in the corner, because your code lacks any optimization. Real developers optimize their code for the specific environment they are using. This includes making use of database specific features. Don't use Mysql auto-increment and PDO and think you are database independent.

    Frameworks take all the hardship out of writing code!!!

    Question: How smart do you think it is to hire a coder who hates to code? It is like hating a singer who hates to sing, a spokeperson who doesn't like talking.

    This is where a lot of the silver bullets come from, from people that don't actually want to be a developer but just cash the paycheck. You don't hire a cook who only knows how to nuke frozen meals do you? If you go to the supermarket and buy a microwave meal thinking wow, this makes cooking easy, then here is a hint: IT AIN'T COOKING. It is heating up food.

    I see time after time some framework or tool promosing a complete working website without writing a line of code... EEK! That is my JOB! Luckily they are all wrong because what at most they do is create a straight CMS for your database, which is rarely what the customer wants. After all, there are already plenty of tools to graphically maintain your database content.

    No, Agile hasn't delivered... for those looking for a silver bullet to the problems of development. For others, it is a valid method with its own problems that puts it along side more traditional models, not ahead of them.

    --

    MMO Quests are like orgasms:

    You may solo them, I prefer them in a group.

    1. Re:Indeed, THERE IS NO SILVER BULLET by HungryHobo · · Score: 1

      Just to make the point that while there is no silver bullet you can get slight improvements.
      Higher level languages help with complex tasks but in practice the complexity of the tasks just gets scaled up to the maximum possible, picking the right language for the job can mean the difference between development hell and a merely hard project.
      Good planning and good organisation with some expereienced project managers probably has even more effect.

      The thing is that no matter the improvements development will remain exactly as hard forever.
      Which is because the more you can do easily the more will be demanded.#

      If a launguage was developed or a development style adopted which allowed what would take the same team months to write now mere days then all that would happen is that the scale, complexity and demands would be scaled up until even with those fantastic tools it would take just as many months.

      Programs do get easier to write (just for kicks try writing the same trivial app in assembly or a really low level language and in a high level language) but that just means that the customers can get more of their demands met and the competition will be making even more complex software.

    2. Re:Indeed, THERE IS NO SILVER BULLET by Anonymous Coward · · Score: 0

      I agree, although you should get more peped up about your cock sucking. Us guys really like it. It pays in spades for chicks. IT DELIVERS.

    3. Re:Indeed, THERE IS NO SILVER BULLET by dkleinsc · · Score: 1

      You don't hire a cook who only knows how to nuke frozen meals do you?

      Sure you do. At McDonalds and other places where the instructions are so thorough a complete moron could do job. And of course you get mediocre but consistent results when you do that.

      Of course, software development isn't an environment where that remotely works, since writing the instruction manual is exactly what developers are doing, but management would really like development to work that way, so they often try to shoehorn it.

      --
      I am officially gone from /. Long live http://www.soylentnews.com/
    4. Re:Indeed, THERE IS NO SILVER BULLET by hondo77 · · Score: 1

      IT managers suffer from what I call the "Oprah" syndrome.

      Fixed that for you.

      --
      I live ze unknown. I love ze unknown. I am ze unknown.
    5. Re:Indeed, THERE IS NO SILVER BULLET by CarpetShark · · Score: 2, Funny

      "getting the requirements out of a user is like sucking cock"

      Your users must be a lot more fun than ours.

    6. Re:Indeed, THERE IS NO SILVER BULLET by Xest · · Score: 4, Interesting

      "Question: When have you EVER switched database on a web application"

      Earlier this year, because expenditure needed to be kept to a minimum during the recession starting in 2008 so the initial build used MySQL with the goal of moving to MS SQL Server when profit forecasts were a lot safer and more stable, which they were (and still are!) earlier this year.

      "HOW easy was it?"

      Effortless, precisely because I'd used database abstraction. It was done and tested in around 20 minutes thanks to the well written unit tests accompanying our abstraction layer demonstrating that the switch worked as required.

      "Is there ANYONE out there who only use pure SQL that is 100% understood by all databases the same?"

      Yes, I did, for this particular project, for precisely this reason.

      "Then go stand in the corner, because your code lacks any optimization."

      That's a rather broad statement, there's plenty of optimisation you can do even with just standard SQL, whilst you may lose some additional DBMS specific optimisation features, you may still be able to reach suitable levels of optimisation with ease-

      "Real developers optimize their code for the specific environment they are using."

      What was that about magic solutions? Optimisation is something you prioritise like everything else. If your application runs at no more than 10% CPU usage and the load isn't going to increase because the userbase is fairly static and this provides plenty of room for increases your application would be expected to see then it's far better to ensure your code is maintainble, than it is to sacrifice maintainability for unnecessary and time consuming optimisation and save the company money by focussing on the priority that best suits the task at hand. "Real developers" should recognise that they simply don't need to optimise at all if in the specific case they are considering it is an unnecesary task.

      To use a typical Slashdot car analogy, even the car industry gets this, this is why not every car is in a fight to be the fastest in the world, car manufacturers understand that when a lot of people are limited to a set speed limit anyway, there's no point optimising the car beyond that point and ensuring other things, like having enough room for children to sit in the back, are a priority. The speed of the car just has to be good enough to fulfil the end user's needs not be able to reach speeds which the vehicle will never ever be pushed to in practice at an unnecessary and possibly unaffordable level of cost to the end user.

      I actually agree with pretty much everything else you said, but your viewpoint seems a bit contradictory- on one hand you seem to be arguing the basic principle that it's all about using the right tool for the job, but on the other you then seem to be arguing against ways of doing things that are perfectly valid in some scenarios. If you hadn't taken a pop at database abstraction and insisted that all "real programmers" optimise their code then I find little fault with everything else you said. As it stands it sounds like you're saying "You should use the best tool for the job, except in a few cases where I don't like that tool". Sometimes database abstraction has value, sometimes optimisation doesn't.

    7. Re:Indeed, THERE IS NO SILVER BULLET by Anonymous Coward · · Score: 0

      How is this even remotely insightful? Sounds like a rant to me.

    8. Re:Indeed, THERE IS NO SILVER BULLET by ducomputergeek · · Score: 1

      Actually we did design one of our apps with database abstraction and used as much generic SQL as possible as I had past experience of what happens with MySQL if your app suddenly becomes popular and you need a real database like DB2. And moving from version 1.0 to 2.0 we did change databases from MySQL to PostgreSQL mainly because SUN bought MySQL and didn't really seem to know what to do with it. Still it took about two weeks of 15 hour days to fully port everything over, test, and move the production systems over. We've done tests with DB2 Express-C and moving from PostgreSQL to DB2 was fairly painless. We had it up and running on a development system within a week of spending an afternoon on development.

      --
      "The problem with socialism is eventually you run out of other people's money" - Thatcher.
    9. Re:Indeed, THERE IS NO SILVER BULLET by e4g4 · · Score: 2, Insightful

      Frameworks take all the hardship out of writing code!!! Question: How smart do you think it is to hire a coder who hates to code? It is like hating a singer who hates to sing, a spokeperson who doesn't like talking.

      There are no silver bullets, but there are lots of wheels out there - they don't need to be reinvented for every project. Question: How smart do you think it is to hire a coder who hates to use frameworks, and loves to roll his own for every new project?

      --
      The secret to creativity is knowing how to hide your sources. - Albert Einstein
    10. Re:Indeed, THERE IS NO SILVER BULLET by Anonymous Coward · · Score: 0

      Question: When have you EVER switched database on a web application and HOW easy was it? Is there ANYONE out there who only use pure SQL that is 100% understood by all databases the same? Then go stand in the corner, because your code lacks any optimization. Real developers optimize their code for the specific environment they are using. This includes making use of database specific features. Don't use Mysql auto-increment and PDO and think you are database independent.

      If you want optimized database access, you should be using stored procedures. A generic database framework (e.g. ADO.NET, JDBC, etc.) allows for easy, abstracted execution of the procedures. You write generic code to call the procedure with an expected and identified result set schema and then make sure that your stored procedures on each database follow that interface. The actual SQL code involved in the procedures themselves can be optimized for whatever database they are installed on, and it is totally inconsequential to your application.

      If you have actual SQL-code stored somewhere within your application code, then you have already failed in portability, performance, or both.

    11. Re:Indeed, THERE IS NO SILVER BULLET by Anonymous Coward · · Score: 0

      "Question: When have you EVER switched database on a web application"

      Earlier this year, because expenditure needed to be kept to a minimum during the recession starting in 2008 so the initial build used MySQL with the goal of moving to MS SQL Server when profit forecasts were a lot safer and more stable, which they were (and still are!) earlier this year.

      "HOW easy was it?"

      Effortless, precisely because I'd used database abstraction. It was done and tested in around 20 minutes thanks to the well written unit tests accompanying our abstraction layer demonstrating that the switch worked as required.

      So, in other words, you moved to SQL Server, but you do not use stored procedures for optimal RDBMS performance? In other, other words, you wasted money in SQL Server licensing and 20 minutes, because you didn't gain anything. No, try optimizing the code using Stored Procedures and other T-SQL and your 20 minutes becomes 20 weeks.

    12. Re:Indeed, THERE IS NO SILVER BULLET by Black-Man · · Score: 1

      I've worked w/ 2 or 3 apps written w/ database abstraction in mind. They use BLOB's in all the table columns and the middleware handles the referential integrity.

      1. Performs like CRAP
      2. Good luck debugging when you have an issue, especially when your primary key, aka acct number is hidden in a BLOB column causing issues at the db level.

      Oh... and these folks were self-proclaimed geniuses.

    13. Re:Indeed, THERE IS NO SILVER BULLET by AuMatar · · Score: 1

      THe problem with frameworks is they make easy things trivial and medium to hard things impossible. If you want to do something that the framework users had in mind, you can do so easily. If you want to do something they didn't, you frequently end up fighting the framework more than you do writing your own code, and spend more time than the framework would ever have saved you. FRameworks are great if they do 99% of what you want and you just want to change the graphics and fonts. If you want to add functionality, run in any other direction.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    14. Re:Indeed, THERE IS NO SILVER BULLET by SQLGuru · · Score: 1

      It's sad that you posted this as anonymous and I have mod points.

      I actually worked in a company once that said "business logic must be in procs in the DB in case we ever change the front end language". I also worked in places that said "business logic must be in the front end in case we change DBs". I've always been a big fan of put the right code in the right place. There are certain rule enforcements that are simple with the database (triggers, keys). There are cetain enforcements that are simple with front end code (input validation). But as you describe, using a database level layer of abstraction coupled with a framework layer level of abstraction, you get the power of both and the flexibility of swapping whichever piece needs to be swapped.

    15. Re:Indeed, THERE IS NO SILVER BULLET by Terrasque · · Score: 1

      and medium to hard things impossible.

      Then I think you're a pretty bad coder :)

      --
      It's The Golden Rule: "He who has the gold makes the rules."
    16. Re:Indeed, THERE IS NO SILVER BULLET by AuMatar · · Score: 1

      No, I think you have insufficient work with frameworks. Frameworks do a lot of the easy grunt work by hand, but in doing so they make a ton of assumptions. If those assumptions are the ones you want, all is good. If they aren't, getting what you want to happen will take orders of magnitude longer than it should. Frameworks are great for small projects with little to no customization. And they can make novice programmers feel like they're getting a lot done quickly. But if you have good developers and/or want to do something that wasn't imagined by the framework authors they just get in the way. You'll spend an order of magnitude more time than you should getting the framework to work.

      For example, I'm currently writing an android app. It needs to show a dialog box. Should be easy- dialog.show(), right? But my app is a service- Android doesn't think it should be able to show a dialog box. But I'm a special type of service (a keyboard) that's allowed to create a UI in some cases, I just want to create a popup window to tell the user something. Android won't let me do it. I either need to write an entire activity to show a dialog box, or I need to do some deep hacking with view tokens to get the framework to let me show it. Why is it that hard to show a dialog box? Because the framework imagines that only activities will want to show one, so I ended up spending a full day hacking around it. I wanted to do something the framework writers didn't imagine, and it cost me a ton of time. That's what frameworks do.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    17. Re:Indeed, THERE IS NO SILVER BULLET by e4g4 · · Score: 1

      THe problem with frameworks is they make easy things trivial and medium to hard things impossible.

      It would seem to me that that depends on the framework and how extensible the framework is (and how well the person using it knows how to extend the framework). Assuming the framework selected for a given task is basically appropriate for the task at hand, when a "hard" problem that requires you to violate assumptions of that framework pops up - write a plugin for the framework to encapsulate the chunk of differing assumptions and provide the necessary functionality, and continue to use the framework and its assumptions in areas where they are appropriate.

      --
      The secret to creativity is knowing how to hide your sources. - Albert Einstein
    18. Re:Indeed, THERE IS NO SILVER BULLET by mcrbids · · Score: 1

      If I design a better brake pad, I can test this fairly simply AND thorougly. We know exactly what it is supposed to do, how it does it and how we can compare performance. There is no magic, if the brakepad reaches 198 degrees on a sunday, the trunk will pop open. Also nobody will ask a brake pad engineer to add a christmas special to it, on the 25th of december, at 8 in the evening.

      I'm guessing you don't design brake pads - because I've known a few mechanical engineers and your understanding of the situation is just wrong. Designing *anything* is bloody hard. One specific engineer I knew worked on fuel tanks for Chevrolet. He was given a very detailed spec for the fuel tank, thickness, size, weight, distribution, position within the car, and his entire job was to find the safety flaws in the fuel tanks!

      He would spend months on a single design, simulating crashes, torsions, likely scenarios (what happens if this bolt is missing? What happens if that bolt is missing?) vibration fatigue, and do everything he could think of to break it, as well as come up with ways to mitigate failure scenarios that could potentially become a safety hazard. This guy would go thru perhaps 3-5 tanks in a year. He was one of a team of engineers who did the same.

      And this is for one part, the fuel tank, on cars under development. This sounds every bit as much hard work as anything I do as a software engineer!

      --
      I have no problem with your religion until you decide it's reason to deprive others of the truth.
    19. Re:Indeed, THERE IS NO SILVER BULLET by Darinbob · · Score: 1

      There are two things in software that people would love to be able to do and in the process of trying to do them, or do both at once, they often screw it up.

      The first is trying to treat software engineering like any other engineering discipline, or wishing that it was like other engineering disciplines. That is, interchangeable parts, formulas that never change, etc. Some of this is actually a myth by many managers, since other engineering disciplines have problems just like software. Building a bridge often ends up over budget for example despite all the prefab standardized parts and decades of experience and well known principles of building them. The big problem of software here is that it's malleable; thus it's easy to change the design and adapt it to new uses, change it in the middle of the design, reuse an inappropriate module for an unintended purpose, etc.

      The second thing is trying to treat software management like any other management. Throw more people at a problem to fix it, give orders and expect results to happen, carving schedules into stone, wanting interchangeable programmers.
      The problem with software here is that it isn't just a grunt factory-floor style of job. There's a lot of thinking involved, a lot of design, a lot of learning, a lot of experimenting. You can also manage a lot of things without being an expert - it's not hard to tell someone to read the training manual on how to flip burgers. But you can't manage software well without being a software expert.

    20. Re:Indeed, THERE IS NO SILVER BULLET by randyleepublic · · Score: 1, Funny

      >>  spec writing is long boring and not very sexy because getting the requirements out of a user is like sucking cock. The user might enjoy it but you are just left with a bad taste in your mouth and a desire to throw up over the user.

      You're doing it all wrong.  Getting requirements out of the user is supposed to be like dressing the sap up in an English Schoolboy outfit, strapping him to a chair in the center of a room with high amperage electrodes (!), and psychologically torturing him until he breaks down and admits that nothing he does makes any sense at all.  Then you slowly put him back together, all the while ensuring that by the end of the process, he knows that you and only you are the smartest person he has ever met, and how on earth has he ever gotten anything done without you.  Then he begs you to suck your cock, only you won't let him.

      Duh.

      --
      Social Credit would solve everything...
    21. Re:Indeed, THERE IS NO SILVER BULLET by chrismcb · · Score: 1

      Software development is bloody hard, ...

      And so few people truly understand this. And not only is it difficult, there are more programming jobs than good programmers.

    22. Re:Indeed, THERE IS NO SILVER BULLET by Anonymous Coward · · Score: 0

      The vast majority of frameworks make easy things incredibly trivial, and hard things almost impossible.

      Libraries are great: Pull them in when you need them, ignore them or leave them out when you don't. Frameworks however? Yegads, what a mess...

      Reality: Even if the framework does X for "free", it won't be quite the X the client wants, so you'll have to code it from scratch anyway...but this time you'll have to do it "in the framework" making it a thousand times more trouble then it would be from scratch.

      More reality: The framework authors are not gods and they will not think of everything. Whatever they don't think of is what the client will end up asking for. Once again, since you have to dreg through a now useless framework to do the customization, you're actually spending significantly more time then had you not had a framework to "help" you.

      Screw frameworks, seriously. They are a plague on software development, all of them.

    23. Re:Indeed, THERE IS NO SILVER BULLET by u38cg · · Score: 1

      I wouldn't call it fun, but at least it stops them whining for a while.

      --
      [FUCK BETA]
    24. Re:Indeed, THERE IS NO SILVER BULLET by Terrasque · · Score: 1

      Toast Notification

      A toast notification is a message that pops up on the surface of the window. It only fills the amount of space required for the message and the user's current activity remains visible and interactive. The notification automatically fades in and out, and does not accept interaction events. Because a toast can be created from a background Service, it appears even if the application isn't visible.

      A toast is best for short text messages, such as "File saved," when you're fairly certain the user is paying attention to the screen. A toast can not accept user interaction events; if you'd like the user to respond and take action, consider using a Status Bar Notification instead.

      For more information, refer to Creating Toast Notifications.

      Something like that? If you need feedback, then you'll need to do some hacking, but you specifically said you "just want to create a popup window to tell the user something" :)

      No, I don't develop android apps (hate java), but had a look at the API some time ago, and remembered that one.

      --
      It's The Golden Rule: "He who has the gold makes the rules."
    25. Re:Indeed, THERE IS NO SILVER BULLET by UnknownSoldier · · Score: 1

      Dam, the imagery / creative descriptions alone in this post deserves a +5. :-)

      Nice summary, btw.

    26. Re:Indeed, THERE IS NO SILVER BULLET by AuMatar · · Score: 1

      I need a large popup window with some persistence, it's to display an HTML file (it's a diagram showing them how to do something with a brief text description). A toast notification wouldn't be around long enough. I did manage to get it to work, I needed to find the IBinder window token for the view I was allowed to draw, and call the show function on the dialog that takes a token. Except for the one case in which I do draw from an activity in the preference screen, there I'm not allowed to call that version of the function and have to just call how. Which leads to a lot of convoluted spaghetti code. But it works good enough to ship, the only remaining bug is that the more help functionality draws the old help file for half a second before drawing the new help file, due to the order Android decides to draw views in. Invalidating the view first didn't work. But that bug isn't worth my time, I have other stuff to do.

      --
      I still have more fans than freaks. WTF is wrong with you people?
  32. We're ALWAYS doing it wrong by elrous0 · · Score: 2, Insightful

    Reminds me of an old poster from my CS department. It features legendary crotchety old fart John McCarthy angrily looking at the camera, with the caption "Programming: You're Doing It Completely Wrong."

    --
    SJW: Someone who has run out of real oppression, and has to fake it.
  33. Yes by PmanAce · · Score: 1

    I work for a very large video game company, and agile works for us. My team has a twin-team, one that uses 3 week iterations while ours has adapted to 1 week iterations and it works great. We release often and early thanks to various automated processes we employ, making life easier for everyone. Managers stay happy since they can actually see progress and measure team velocity which results in an actual accurate sprint/accurate planning. Planning for our iterations doesn't take that long also with smaller iteration cycles. I am happy with it.

    --
    Tired of my customary (Score:1)
  34. Re:First decade? Not likely by Rubinstien · · Score: 1

    I was a beta tester for Multi-Ad Services in 1988/89, when they were first developing Multi-Ad Creator. I had a telephone number that I could call that let me talk directly to one of the engineers. Our Ad department was running this on Mac II's, under MacOS 6.x. We'd find repeatable ways of crashing things, or think of a nifty feature that we wanted, make a phone call, and usually would have a disk in the mail within a few *days* with the changes available for testing. There were a ton of features put into that product based on the direct recommendation of our small group, and we could almost immediately try out the changes and give feedback. Years later, I was at another location where they were using Ad Creator (an ancient version by this time), and they were having an issue that would only be addressable by adding a feature in the software. I called the number on the back of the box, on a whim. The person on the phone could not answer my question about whether newer versions had the feature I needed. I eventually got transferred to an engineering manager, described the feature, and was told that it did not exist, but he thought it was a great idea. He asked for contact information, and in a couple of weeks we had a set of disks with a beta version of the newest software, complete with the new feature. They gave me a new license and everything (the existing software was like 8 years old). The feature worked great.

    Frame Technologies was very much the same sort of company, before Adobe consumed them, and I had similar experiences with them. I have two full versions of Frame that were sent to me in order to answer questions that their tech support didn't know how to answer, and their demo would not allow me to find out.

    This ability was always there, for teams willing to pursue it. I could never say enough good things about working with those guys. Looks like the Ad Creator guys are still at it, you can download betas and provide feedback right from their web page.

  35. Agile as a manifesto is a mistake. by pcraven · · Score: 1

    I like agile when people use it to learn the how and why of managing software projects. It can provide a great platform to debate, discuss, and learn.

    I hate agile when people use it as a manifesto or religion, assuming it works best in all aspects of all projects at all stages and with all people. And like religion, they use it as a means to gain power over those who would use reason and logic instead.

    And dude, this is wrong on so many levels:

    "One of my guys keeps telling me that he would like to have more specified requirements. I keep telling him we're going faster because we don't have specified requirements," Weston says. A hardcore requirements document is a "waste of time," he adds.

    1. Re:Agile as a manifesto is a mistake. by jaroslaw.fedewicz · · Score: 1

      Agile works best when you're a small team, the customers aren't really sure what they want, and you still want to earn some revenue. You see, big folks such as IBM can allow retarted processes and practices because they mostly have enough money to cover it up.

      However, I mean agile not Agile. This means: no cargo cult rituals, just enough communication to get work done in an acceptable way: tasks broken up into chunks easy to chew through in a foreseeable time, code well tested and workable at the end of each day, code written in a fashion that anyone on the team can pick it up and improve it without lots of "what the fuck is THAT?" questions, the code is reusable so that it can be easily sold multiple times.

      But you can easily see that this is plain common sense and survival techniques, and not any kind of a new religion (that is why I'm mostly pro-extreme and anti-Agile; extreme folks are more mature in their judgments by now).

      On a big team, cargo-cult Agile can easily lead to a disaster. Say you have a big, really big projects. You split your 100 programmers into 10 teams, the project is split into 10 subprojects, and then you want to sync the efforts after some iterations. Only then you see that 1) the integration is unthought of and thus a mess, 2) the splitting into smaller subprojects was wrong from the day one but no one knew, 3) Upper Management blames agile methodology and not the implementation, 4) an angry programmer writes a comment on /. about how Agile fails. ;-)

      I was on stand-up meetings of 30 or so people. By the time the meeting ended (it was unmoderated, and there were lots of irrelevant discussions), I was tired and unfit for any useful kind of work through the rest of the day.

  36. Re:Scrum is *not* a replacement for good managemen by jfanning · · Score: 1

    Still not quite SCRUM (and I have done a scrum-masters course).

    The goal of agile is to deliver the greatest benefit to the customer. Their representative in your team is the product owner. They don't just "throw the requirements at you". They should be making a backlog of implementable features (user stories) initially ranked by priority. You are then supposed to be estimating the complexity of those in order for the product owner to decide which is the most important given the resources and difficulty (this is a periodic backlog grooming session).

    At the start of each sprint you select some stories and once you have estimated the tasks and effort for those stories you, as a team, commit to delivering those features. The daily standup meetings are for you to share you progress with each other (and update the burn-down chart). Peer pressure among the team is what gives the guilt-trip if you miss a day. The burn-down chart is what gives the product owner the state of the current sprint.

    SCRUM has a very strict process. It is very light, but it still has rules and roles to follow. Anyone who tells you otherwise doesn't know what they are doing.

    And there is no such thing as a "fair scrum master". The scrum masters role is just to assist the team to organize itself and keep the wolves away. They are not your boss.

  37. Agile, scrum , extreme etc , its for managers... by Viol8 · · Score: 1

    ...not coders. Any coder who needs one of these silly methodology to help them work properly is probably in the wrong career.
    In the time I've spend in stand-ups and other waste of time situations like that - that only exist so project managers can look like
    they're doing something when the directors come calling - I could have fixed half a dozen bugs.

    And the idiotic names don't help as well. "Extreme" programming? Give a frigging break. Extreme programming would be trying
    to fix the code to a nuclear power station when you've got 2 minutes before it goes critical, not just making frequent code
    releases for customer review. Agile? Whats that, programming while holding onto a rope upside down and typing with one
    hand? Scrum? Are all the coders expected to line up and push against each other out in a field?

    FFS , talk about making the profession look like a load of wannabe's who don't actually do anything macho but like to
    pretend they do by giving bog standard office work names from the 101-kool-adjectives book.

  38. Agile - The fad by Aceticon · · Score: 2, Insightful

    In my experience plenty of teams "do Agile" without understanding what it's supposed to achieve. People just cherry-pick and adopt well known bits of some Agile methodology or other (for example the stand-up meeting) but then don't do it properly or miss the feed-in practices that are necessary to make it work.

    It's all about "Being Agile" (i.e. fashionable) instead of "Having a way of developing software that can consistently cope with fast-changing requirements minimizing wastage, chaos and cross-team overhead".

    Just as an example, in the last 7 or 8 years since Agile became fashionable, having been in and out of multiple teams/companies that use Agile to a smaller or greater degree (I'm a freelancer), I have yet to see a proper Use Case which describes in a consistent and well defined way a feature that the system being designed must provide, including handling of error conditions. In fact, 9 out of 10 times, people forget to account for errors (even user errors). Use Cases are the basis for each development cycle, the point of communications with those defining the requirements and the basis for prioritization of work and yet most teams can't even get those right.

    Then there's the flaws in analysing the requirements to do make sure the system has all the data that it needs (if for example one Use Case says "The user will select one value out of a list of options for field X" you need to have those options coming from somewhere, potentially ending up with a whole bunch of other Use Cases dealing with maintaining those options).

    Agile doesn't solve the essential problem in IT which is a lack of understanding of the software development process, lack of preparation and lack of method - it just provides cover for those developers which do everything in an ad-hoc, reactive way and will then excuse themselves as being "Agile".

    There are simply not enough people around that try to understand the process by which people create a software system or application from a "not so well defined set of needs from the users" but lots of people focusing on the quasi-aestetic details of some language or other - too many people asking "How?" not enough asking "Why?"

    1. Re:Agile - The fad by 99BottlesOfBeerInMyF · · Score: 1

      Agile doesn't solve the essential problem in IT which is a lack of understanding of the software development process, lack of preparation and lack of method - it just provides cover for those developers which do everything in an ad-hoc, reactive way and will then excuse themselves as being "Agile".

      I do some work in an Agile shop and usability is a huge concern. It is very often that we tell the customer "we don't know what this should do, schedule our usability experts to go conduct some interviews with users and find out". In some cases they do just that. In others they decide it is too expensive so they just declare what they just take a guess at what users need and we build it. But you can be sure the customer knows they're making a tradeoff and reducing quality for the reduced cost.

    2. Re:Agile - The fad by Agile.Zorro · · Score: 1

      A+

  39. I'm a tech writer and ... by Anonymous Coward · · Score: 0

    I actually refuse to work on Agile/Scrum projects.

    Why?

    In my experience, and hey, maybe it's just me, but I never would work harder at producing less at worse quality then when on an Agile/Scrum project.

  40. It's Documentation Silly by mattwrock · · Score: 1

    The problem is not Agile versus Waterfall, Its the lack of documentation early in the process and knowing the business needs during the project. It should be that management approves the project, business analysts get the business needs and create requirements, and IT reviews the requirements and builds the software. The reality is that management used to be IT, so they *KNOW* what the issue is and writes the requirements, system analysts are used in place of business analysts to write the requirements, and IT just has to "get er done!". By the way most companies aren't software houses, so why the hard deadlines? Oh yea bonuses are attached to the projects. As I deliver my project on time I get my bonus. It doesn't matter that is a feature starved,half-assed implementation that make everyones job just that more difficult.

    --
    "Ones and zeros were everywhere. I even think I saw a two!" - Bender
  41. Predictabel Comments by Alistair+Hutton · · Score: 1
    I haven't read the comments but I'm going to make a predicition about them:

    Someone will say agile methodologies are just a collection of best practices organised together in a cohesive whole and they don't see the value in that.
    Someone will say they did XP and didn't see what was so revolutionary about it, in response to questions it will turn out they didn't do the planning game, didn't do TDD and didn't pair program
    Someone will obsess about a detail of an agile methodology, say stand up meetings, and use it as a strawman to attack all agile process, they'll also completely miss the point of what that detail is trying to achieve.
    etc.

    --
    Puzzle Daze is now my job
    1. Re:Predictabel Comments by Anonymous Coward · · Score: 0

      Someone will make predictions of valid concerns that will be voiced and he will not address them at all.

  42. Agile is almost meaningless by Anonymous Coward · · Score: 1, Interesting

    Agile has had the misfortune of being a buzzword that anybody can write about and sell books for. Lots of places then use it as the buzzword process that they are following when in reality the only thing that has changed is what they are calling it.

    Other places genuinely try to implement it and find that by getting some things slightly wrong they cause themselves more problems than by sticking with what is familiar to them. This naturally sours everybody involved to agile.

    TDD and XP are hard to get right.

    However, TDD - Test Driven Development - is something that if your not doing then you probably should looking at implementing it. It raises the very valid question that if you don't know how your going to test something then how are you going to know when you've got it working. It encourages modular code, well factored code because otherwise writing the tests is going to be a pain the ass. Hint - if your finding writing your tests difficult then it probably has something to do with the design of your code, and that is why writing the test first works to improve design.

    XP is even harder because it's a superset of TDD. Not only do you need to be getting TDD right but now the process also covers project management and client interaction.

    In my mind, the most important part of agile, the part that makes it agile is not any of the above. XP and TDD may be good things but the essential part of Agile is the weekly retrospective where the team sits down and spends an hour on discussing what's going well, going badly or is just worrying and then comes up with ideas for how to improve what they are doing at that point in time.

    The idea that the process that your team is working by is not fixed but is evolving is the most important idea of agile.

  43. Testing by Nolf · · Score: 1

    The biggest difference I notice with agile projects is the improvements in testing. Testing works so much better when its happening continuously rather than only at the end. Its far easier to fix things that testers find in code you wrote yesterday then code you wrote months ago.

  44. You're getting close by lanyslinas · · Score: 1

    You almost got it right, though electronic delivery is not a requirement of Agile. The Agile manifesto was created by successful software developers that did not want to sit around creating reams of documents. The Rational, six sigma, and other process folks were getting out of hand, and companies were starting to impose heavyweight processes on people who didn't need training wheels. Solution? Call what you're doing a process, sell it to management, go home.

  45. Re:Agile, scrum , extreme etc , its for managers.. by jaroslaw.fedewicz · · Score: 2, Informative

    I think that you spent your time in a wrong kind of stand-ups.

    You see, if you have up to 10 people on your team, and each one gives precise answers to those three scrum questions, you are gonna spend no more than 15 minutes in that meeting. After that, you know what all other people are busy with, so should any issue pop up, you know who to ask. This is less time to spend than if each one were asking another one by one.

    Scrum done wrong: 1) a half an hour stand up; 2) scrum done in teams with more than 10 people; 3) off-topic discussions during the stand ups.

    If you are saying you can fix half a dozen bugs in 15 minutes, then what the heck were you doing yesterday? Pushing trivial to fix bugs so that you can overclock your bugfixing karma the next day? Doesn't look like competent, anyway.

  46. Reader friendly link to article by danilo.moret · · Score: 1

    http://infoworld.com/print/142761

    No "next page" needed.

    --
    ^[:wq!
  47. Could not say it better... by single_user_mode · · Score: 1
    --
    remove NOT from email.
    1. Re:Could not say it better... by Alistair+Hutton · · Score: 2
      That blog post was so stupid I felt my braincells shutting down.

      The two take away message I got from that was that working at Google is awesome and that the stupid blog poster can't understand why everyone doesn't work like they are at a cash rich company developing internal research projects without external clients setting the requirements.

      --
      Puzzle Daze is now my job
  48. All things turn to process in wide use by SuperKendall · · Score: 2, Insightful

    The original manifesto's key message was "people over processes" which I still agree with.

    This is I think, a totally key point.

    Agile is supposed to describe a way in which people can work together to improve productivity. If you think about it, what it's really doing is attempting to document how a successful team (or one kind of successful team) interacts, like Goodall studying mountain gorillas.

    So then other companies want to have successful teams too, and study what was done. But instead of saying, here's an approach, everyone read this and lets try something similar, instead of that companies all over have managers reading agile books and then using that as a template into which they cram all the developers they have, ignoring the differences in the way a given group interacts with each other.

    And that's because it's easy to do one thing, but very hard indeed to adapt something for the individuals doing it. The payoff is enormous if you can get individual tailoring right, but it's so hard to get right I don't know that you can even try except to try and recognize signs of success in groups and encourage them (which in turn leads to cliques if you are not careful).

    It's something that happens to any methodology, in short order it will ossify into rigid methodology because the communication of how something works spreads to most people in the form of text that looks to managers like a template for how to arrange "resources".

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  49. Agile Misinterpretations by hsoftdev17 · · Score: 3, Insightful

    Absolutely not. Never before have I experienced a method of programming that can be more aggressively mismanaged than agile. Many developers think agile is a means to produce better code, faster, and with better specs. Most management sees it as an excuse to provide no specs, to change their minds on what they want every 5 minutes, and call all of that "agile" development. These things ruin the name of agile development and provide such a bad experience for anyone stuck working with it, that it simply can't have managed to do anything but fail utterly to deliver. People have been fired over misinterpretations of what agile is. Others have left because of a misinterpretation that was shoved down their throats by management. And that's just all where I work... Perhaps it's better in other places, but I've never heard a story of it going well.

  50. OMG, Linux isn't agile! by Anonymous Coward · · Score: 0

    Big successful projects are not developed with any rigid methodology. The secret for a successful software project is having good developers.

    Who is a good developer you ask? The ones that are interested in both the big picture and the small details. The ones that are motivated and capable of tackling the core problems and are not afraid to get their hands dirty with solving also minor problems. They do what needs to be done. They live to serve and they enjoy developing stuff.

    Who is not a good developer? The ones who endlessly hunt for that silver bullet, who avoid getting their hands dirty with code and so they forget how to solve problems and they forget what it takes to deliver actual working solutions.

    Though in theory the agile model benefits good developers in practice agile development nowadays is pushed by the exactly same proponents who were responsible for the heavyweight development methods before. These consultants who preached waterfall, RUP etc. now preach agile and impose the same heavyweight structure that was the problem with the other methods.

  51. No... by Junta · · Score: 1

    Issues around software development are, in my experience, about the people, not about the process so much.

    Give a group any process and it will be contorted in whatever way required to make it act the way they want, but with new buzzword compliance. Frequently with misguided attempts to adopt one hard line rule or another without really appreciating the meaning of it and just ending up with arbitrary stupid things.

    The best projects I've seen are ones that didn't fret overmuch about being able to rubber-stamp their process with one of the 'big names' (the only big name in style currently being 'Agile'). However well intentioned the people writing these processes may be, they simply cannot significantly impact the nature of the people actually trying to implement them.

    I think Agile would've been less vomit-inducing with any other name. Naming your process Agile just invites every project manager to jump on it based on the name alone, even if they will do everything wrong and end up with a rigid process they will still declare 'Agile', which is always good.

    --
    XML is like violence. If it doesn't solve the problem, use more.
    1. Re:No... by matfud · · Score: 1

      I've worked in companies that use use some bits of some Agile methods (they always did)and it mostly worked very well, but the sure fire way to mess it up is for the company to pre anounce a release date with a full feature list on it. It means those features must be in and tested by that date. So much for prioritisation.

      matfud

  52. Re:Agile, scrum , extreme etc , its for managers.. by Viol8 · · Score: 1

    Anyone who works in a team of less than about 20 people already knows what the other team members are doing generally , and they'll know specifically if they work with them on a day to day basis. You don't need a meeting every day to find this information out.

    "This is less time to spend than if each one were asking another one by one."

    Or you could just ask the team in one go. I don't know where you work but where I work I sit within 20 foot of my entire team.

  53. Re:Scrum is *not* a replacement for good managemen by revlayle · · Score: 1

    Interesting, I did SCRUM in a previous job and thought it was the worst thing ever invented. Current job does it too (in fact, my interview for the job mentioned this, and made me worried). However SCRUM in the new job seems almost natural and the right way to it here. That being said, I like my management here (fairly competent and good to work with) compared with the last job with SCRUM (bunch of morons).

  54. Agile-speak by DaveAtFraud · · Score: 1

    My experience is that quite a few software development organizations cover up a what is essentially a "death march" by using agile terminology. They don't follow any recognized agile development methodology nor is the effort a proper waterfall development. There is just enough agile terminology to make it sound like an agile development. The effort usually fails and of course management would rather blame the methodology or the developers rather than admit they couldn't do what they said they would.

    Beware of agile-speak when job hunting.

    Cheers,
    Dave

    --
    They that can give up essential liberty to obtain a little temporary safety deserve neither safety nor liberty.
    Ben
  55. Gimmee a break... by Anonymous Coward · · Score: 0

    Is it me or is Agile just another way of formalizing being informal?

    I reckon if you can establish a good working relationship with your client then you're probably doing some form of Agile Development without knowing it.
    If you can't establish a good working relationship, then no methodology will ever help.

  56. You took the word from my mouth. by Anonymous Coward · · Score: 2, Insightful

    Having worked under the Agile whip for the past year, I have to say the methodology is horrible. The planning is ridiculously costly, and the constant pressure makes people manic about their work. Ultimately, people stop caring about the sprint deadline and just resort to letting tasks go undone.

    1. Re:You took the word from my mouth. by AVee · · Score: 2, Insightful

      Yeah, but that's just because you boss thinks Agile exists just to make people work harder.

    2. Re:You took the word from my mouth. by sapgau · · Score: 1

      Agreed, agile in the sense of managing change. It doesn't focus in the speed of how you work.

      I think is keeping your mind open and expecting expecting change (i.e. lots of refactoring), the methodology should account for the amount of time it takes to do each task and is up to you or the team to decided what is more important to work on next.

      Be prepared to throw away lots of code and refactor it into smaller or more modular units. If you don't you will quickly slow down trying to deal with patching an earlier model.

      And... take what is useful from Agile and ignore those things that get in the way.

    3. Re:You took the word from my mouth. by leenks · · Score: 1

      Then you have "implemented" agile incorrectly. FWIW, Agile isn't a methodology - it's just an ethos. You need sensible processes in place to manage it - ie something like Scrum and a framework to support it. Sadly, most people really don't grok scrum or the point of agile and therefore their projects aren't agile and don't deliver.

      If you are constantly under pressure to the point you feel you can't work and wont complete tasks, you have far too much in your sprint backlog, or each entry is just far too huge.

      You most likely don't have any proper management tools in place either, let alone a rapid continuous integration build process (if it takes more than a few minutes to build the entire product, you are screwed - I know of one "agile" environment where CI builds take over an hour for a relatively small codebase that could be built in less than 10 minutes if done properly, and up to three hours for a full nightly build with test coverage reports etc).

    4. Re:You took the word from my mouth. by Thuktun · · Score: 1

      The planning is ridiculously costly, and the constant pressure makes people manic about their work.

      That doesn't sound like any Agile methodology I've seen. One typically works on smaller, self-contained pieces of functionality over a smaller amount of time, which has very little to do with planning and very much to do with doing. Certainly nothing near as much planning involved with a massive waterfall software project.

      Calling something Agile doesn't make it so.

  57. Total failure from my experience by Agile.Zorro · · Score: 2, Insightful

    No; I do - let's say try to do Agile and I'm a CSM, since its inception and on different locations and cultures; in the last 5 years, when I did it mostly in North America I never seen it succeeding; mostly the reason was hijacking the Agile and masquerading waterfall or chaotic processes under the Agile terminology/dictionary. As always, human greed and immorality overtook the basics of the Agile manifesto and lead to disastrous mini-waterfalling with dire consequences as accumulation of huge technical debt, broken estimations missed deliveries and developers psychological burn out and collapse. Of course, the poor slaves pushed to work crazy overtime and crunching tasks where always at fault. The core problem I always pointed at in the Agile communities I had the chance to talk about, is that there are no *Agile Certified Organization* certification criteria and accreditation auditing processes and trained, certified and experienced auditors. This leads to a gazillion of organization declaring themselves as Agile by saying that they do or try to do Agile but without *being Agile* in reality. Until we will have this accreditation mostly we will see failures and this will lead also to Agile going to the garbage bin of the various trials in doing better software development and having a decent profession - not one well known and renowned for all possible worker abuse and wrong doings. At the end, maybe there is no method to do better software development because of the nature of the people and the context of being a no regulated profession - this opens the door to everything and in this libertarian approach always the winner will be the one owning more power - in this case the positioning in the monetary interest stack of the project. This is nothing else than feudalistic primitivism which in time will destroy the whole industry as the older ones will pursue different career options - and I know lots of them who already did it, and the young ones will not step into this industry anymore. Wherever I have the chance to participate at interviews I see mostly immature kids and not only, some are close to their 30s, but their professional and social skills are so low that many years ago these people wouldn't have gone even over the phone screening phase.

  58. Frameworks = bad practice? by bradley13 · · Score: 1

    In a training document I'm writing, I have a footnote along the lines of: "using any sort of automatically generated code is bad practice". You get mediocre results - maybe better than what a poor programmer would create on his/her own. However, the good programmers write all their own code. In the end, the bit of time they would save using a framework would be more than lost fighting with and fixing the results. And most likely they use abstraction, so that they can easily re-use large portions of their code in later projects.

    --
    Enjoy life! This is not a dress rehearsal.
    1. Re:Frameworks = bad practice? by Blakey+Rat · · Score: 2, Insightful

      Frameworks aren't "automatically generated code" (typically), they're libraries of code written and tested by other teams in the past, along with a skeleton code structure to fill-in.

      I agree with your sentiment, but it doesn't apply to frameworks.

    2. Re:Frameworks = bad practice? by sapgau · · Score: 1

      What he said... I'm reading up on Spring and so far nowhere does it says that code will be auto-generated.

      A good framework will allow you to implement manually as well as using the library and packages.

    3. Re:Frameworks = bad practice? by mjwalshe · · Score: 1

      but it is inefficient - I am mulling suggesting that we (a major player in the publishing world) dump using jquery and these prebuilt java-script librarys as loading huge amount of js code when only 10% of it is used slows down page load times.

      If custom js is faster than jquery and can get another tenth off the load time id seriously consider this for our websites.

  59. Re:Scrum is *not* a replacement for good managemen by bradley13 · · Score: 1

    "SCRUM has sort of become a device for a manager to avoid managing."

    Bingo. Yet another buzzword system to allow marginally competent middle managers to report something to marginally competent upper-middle managers. For good teams, with good managers, you will succeed with - or without - SCRUM. For poor teams and/or poor managers, it doesn't keep your project from sinking, but does give you the good of moving the deck chairs around.

    --
    Enjoy life! This is not a dress rehearsal.
  60. It is never strict Waterfall vs. strict Agile by cdrguru · · Score: 2, Insightful

    Yes, anyone adhereing to a strict waterfall model today is probably being silly.

    If you are doing internal-only development you can get away with constant change. When there are real outside users there is real, external documentation and marketing materials. There is a real date for a product launch, and things have to be stable for it.

    Marketing materials need to be prepared and printed. If they take a bunch of screen shots and sent stuff to the printer Marketing will not be happy with the announcement that those are the "old" screens and the "new" ones are much better now.

    An really funny scenario is some marketing type is going to give a demo of the product to some big customers (prospects, really) and no longer understands how the "new" product works after the latest round of changes.

    Yes, I have seen that happen. The result is there are some new developers working on the product and the launch is delayed. Sometimes for a year. Sometimes the original developers have a hard time finding a new job.

    Change is good, stability is good. The intersection of these two is really great. Anything that is too far away from the intersection tends to be bad, especially at the outer edges of either.

  61. Agile is cargo cult science by melted · · Score: 1

    Steve Yegge laid it down very well years ago. It's a long read, it's worth the time, but if you don't have the time to read it all, here's a quote:

    "When I was a teenager, my dad and my brother Mike decided to make homemade chili. I'd never seen it made before, and I watched with keen interest as they added beef, beans, some veggies and spices, and other ingredients. Dad would taste it, add some more ingredients, wait a bit, taste it again. My dad has some pretty good recipes. So you can imagine my puzzlement when he opened the cupboard, pulled out 2 cans of Hormel chili, opened them and dumped them in.

    I waited a respectful moment or two before asking him why he was adding canned chili to his chili. They both said it tasted terrible, but, as my dad now-famously observed: "You can start with dog shit, and if you add enough chili, you get chili.

    Similarly, if you start with an Agile Methodology, and you add enough hard work, you get a bunch of work done. Go figure."

    End of quote.

    Name one world class product (in terms of features and commercial success) that was created with Agile.

    1. Re:Agile is cargo cult science by melted · · Score: 1
    2. Re:Agile is cargo cult science by Agile.Zorro · · Score: 1

      Too simplistic - software development is far more than enough hard work, bigger hammers, stronger/more tractors or more plantation slaves. Software development is just much more than it can comprehend the head under the hat covering only a mercantile thinking paradigm. Software is a commodity, but if you look at it from the same perspective you look at a bin of eggs before leaving early morning for the Farmer's Market that's what you going to get - a bin of eggs, mostly rotten or cracked.

    3. Re:Agile is cargo cult science by Alistair+Hutton · · Score: 1

      Once again Steve proves himself unable to work out why working for a cash rich company without an external client (Blizzard this time rather than Google) might result in differences.

      --
      Puzzle Daze is now my job
    4. Re:Agile is cargo cult science by melted · · Score: 1

      Wow so many words and you've said absolutely nothing. You must be an Agile fan.

    5. Re:Agile is cargo cult science by Agile.Zorro · · Score: 1

      Ok, personal. Well, you sound like the ones who can't comprehend long sentences containing details and logic - these are or sales guys or mediocre programmers or managers who have been previously into one of the enumerated categories :-) Peace,

    6. Re:Agile is cargo cult science by sapgau · · Score: 1

      Ummm... you lost me why cracked, rotten eggs.

      Software development IS HARD... writing code requires your brain to be working, abstracting and problem solving at 100%. Thinking of doing that everyday for months takes determination, discipline, passion, insanity or a mix of all those.

      For some reason the software profession has lost the recognition and respect it deserves, part of the fault comes from the same developers that agree to anything without regard to timelines or effort required. If they could have some self respect and say "no" a couple of times I bet software will stop becoming a commodity anymore.

    7. Re:Agile is cargo cult science by Agile.Zorro · · Score: 1

      Absolute agreement - *For some reason the software profession has lost the recognition and respect it deserves, part of the fault comes from the same developers that agree to anything without regard to timelines or effort required. If they could have some self respect and say "no" a couple of times I bet software will stop becoming a commodity anymore.* It is all human nature at the end,

  62. Of course, there is always the exception by SmallFurryCreature · · Score: 3, Insightful
    But you knew during all your development that you had to switch databases. AND you didn't have to worry about speed. Often you don't have that luxury.

    While you have a valid example of why database abstraction CAN be useful, you have not actually proven that it must be done every time just in case you might switch sometime in the future.

    Seen to many developments throw speed out of the door for a migration that will never happen.

    --

    MMO Quests are like orgasms:

    You may solo them, I prefer them in a group.

    1. Re:Of course, there is always the exception by Xest · · Score: 1

      Well exactly, that's the point isn't it? It's about using the right tool for the job. If you absolutely know you'll never need to switch databases for the lifetime of the application then don't do it. If you know there's a slim chance, but you're willing to suffer the extra development time in switching by not abstracting away your database layer (or any layer for that matter- e.g. audio in a computer game) then don't bother.

      As I say, it's something that may or may not happen, in some cases database abstraction is something you can just do with no extra effort anyway- in a .NET app for example, using the Db* classes and interfaces in System.Data.Common might well just be suitable for many projects such that you're abstracting away with really no more code than it takes to write some database specific code with say, the MySQL connector anyway. If performance isn't a problem, then why not go down this route and ensure abstraction for no extra cost, but with the extra peace of mind? It's just as trivial on many other platforms. Take an example though, no one knew for sure Oracle was going to take over MySQL a year or two back yet it's widely used, how many people now, knowing future development of it is far from certain, and far from guaranteed to be a worthwhile standard are glad they abstracted away their database layer, so that they can switch with no hassle at all? How many are left with the choice of risking their data on a platform that may be obsolete some time down the road and did base their code on MySQL specific libraries and SQL features and have a lot of work ahead of them to fix it? To some people peace of mind is worth it, it's one of those choices you have to make when you're planning and designing a system.

      Again I totally agree with you on your core point - that it's about the best tool for the job, but as I say why single out database abstraction when there are equally many other things you can argue too and fro about the relative benefits of, but where the answer about whether to use that thing still comes back to your core point - is it relevant, is it a priority, and is it right to use it in solving the problem at hand? If it's something that offers benefit and can be implemented with no disadvantages in the context of solving the problem at hand, then surely it makes sense to just do it anyway?

      I think I made it quite clear that database abstraction isn't always needed, and can in some cases even be an issue, so I'm not sure why you point out that I haven't proven it's something that must be done every time- I never intended to prove such a thing, I think it's unproveable because like you, I think it's wrong.

    2. Re:Of course, there is always the exception by Sean+Hederman · · Score: 1

      Absolutely. A company I work for has an "enterprise system" (i.e. bloated piece of crap) written for them by Accidenture. If we wanted to move databases it would be fantastic, it's all set up to make that transition as painless as possible. Wonderful stuff indeed.

      Except, um, we've never wanted to switch databases and likely never will, certainly not in the software's lifespan.

      And the cost of this "design" we will never use? Slow, difficult to maintain code.

      I'm not saying that you should tightly couple your DB code, far from it, but you don't have to go as overboard as some do. If it's decoupled enough to mock out, then it's decoupled enough for me.

    3. Re:Of course, there is always the exception by Anonymous Coward · · Score: 0

      no true scotsman!

  63. Just like any tool... by forkfail · · Score: 1

    ... if used properly and in the right environment, it works great.

    It still amazes me how often folks in this field still try to make a one-size-fits-all tool, be it a programming language, OS or development methodology...

    --
    Check your premises.
  64. PMS Programming is better by danparker276 · · Score: 1

    Agile got ruined by people who wrote books and taught classes on it. I like the PMS Programming model based on Agile better.

  65. Lack of documentation by FerociousFerret · · Score: 1

    Both my current employer and my previous employer claim to use the Agile process. What this means to both development teams is that the developers didn't have to document ANYTHING so they could just pump out code. I work in the testing group, so we never had any requirements or other documents describing the functionality that we were supposed to test. At best we got a handful of very basic use cases. Agile is just a word to throw around to mean whatever they want it to mean.

  66. First decade? - Spiral Model 1986 by careysub · · Score: 1

    I have practiced, and been an advocate of the "spiral model" since its first publication by the very famous Barry Boehm in 1986. See: Boehm B, "A Spiral Model of Software Development and Enhancement", ACM SIGSOFT Software Engineering Notes", "ACM", 11(4):14-24, August 1986.

    He advocated a model of short iterative cycles of refinement - the very essence of Agile (with less of the dogma). So we should really proclaim: almost 25 years of Agile (but ten years after the re-branding).

    --
    Starships were meant to fly, Hands up and touch the sky - Nicky Minaj
  67. "Agile" is a complete mind fuck. by FlyingGuy · · Score: 1

    YADW - Pronounced , Yad-Wha or, "Yet Another Buzz Word"

    This is perceived by a great many people to simply give the marketing idiots an excuse to simply just keep changing everything continuously while spewing forth to the customer "We Are Agile we can get those changes in no problem, have em for ya next week."

    It has lead to unsound programming practices, unsound design methods and has given the term "Code Bloat" a whole new meaning.

    The marketing idiot walks in and wants feature X added like yesterday since he will be doing a demo day after tomorrow and it simply has to be there because he saw it on a competitors product. Programming Manager fearing for his job desperately Googles like a madman looking for feature X and finds it in a 100,000 line framework and tells the troops to "Put it in" since even if they dropped EVERYTHING and ALL the programmers immediately started trying to implements feature X it would take a month to do it right. In doing so, they implement feature X and introduce 30 more critical bugs which now have to be tracked down in code that no one in the shop is familiar with and have bloated their code base by 50% because they are "Agile".

    The ability to rapidly change the code is not something to take lightly or use in a reckless manner but sales & marketing idiots never have and never will understand this and that includes former coders that are now sales & marketing idiots because once the sales & marketing mind set removes from your brain any semblance of intelligence it is just over.

    I was once in a meeting in Silicon Valley of a startup with the Sales & marketing idiot, the CEO and the VP of Development. The S & M idiot starting spouting about how they needed to add that feature and this feature and do this and do that and the other. The CEO listened patiently then when he had a belly full of this idiot he stopped the meeting and said these simple words" "You are here to sell the product we build, so sell it or I will find someone who can.".

    --
    Hey KID! Yeah you, get the fuck off my lawn!
    1. Re:"Agile" is a complete mind fuck. by Agile.Zorro · · Score: 1

      LOL, looks like my most recent project just with the CEO missing the closing the way you put it and even worse empowering the idiot to win over the development LOL

    2. Re:"Agile" is a complete mind fuck. by frank_adrian314159 · · Score: 1

      The marketing idiot walks in and wants feature X added like yesterday since he will be doing a demo day after tomorrow and it simply has to be there because he saw it on a competitors product. Programming Manager fearing for his job desperately Googles like a madman looking for feature X and finds it in a 100,000 line framework and tells the troops to "Put it in" since even if they dropped EVERYTHING and ALL the programmers immediately started trying to implements feature X it would take a month to do it right. In doing so, they implement feature X and introduce 30 more critical bugs which now have to be tracked down in code that no one in the shop is familiar with and have bloated their code base by 50% because they are "Agile".

      And this is not "agile" - this is uncontrolled chaos. But go ahead - tell me how a strict requirements document would protect you from this. Either the marketing idiot has enough power over your development manager to make him dance like a monkey or he doesn't. A magic set of requirements or design documents won't change this. But then programmers usually are a superstitious lot, anyway, assuming that their paper talismans will protect them. And anyway, it gives them more justification for their ineffective whining.

      And, in case you were wondering (which you aren't because you've already made up your mind about lightweight processes), the proper response of the development manager would be to tell the marketing idiot that this would go into the next sprint/iteration/whatever. It's a win-win where the marketing idiot doesn't have to wait for an entire release for his latest brain fart and your development plan isn't borked because the changes come at well-defined points in the set of design-build-test-release cycles that make up the release. But then, I don't think you will ever be happy in any software development shop because change happens. You can manage it in a controlled or in an uncontrolled manner. You can deal with it using a lower or higher cost processes. But making the cost of change artificially high and waving around a stack of paper yelling that "We can't change it because it's not in scope!" leads to failed projects just as surely as trying to absorb any change immediately. It does have one (dubiously) positive effect, though, it does let developers and their managers have a happy CYA moment together before they make the changes anyway.

      --
      That is all.
    3. Re:"Agile" is a complete mind fuck. by FlyingGuy · · Score: 1

      Where to start....

      I have worked in and managed shops where change was THE constant. Now having said that even those changes that had to be put in "Like Yesterday" were reviewed by the VP of development and then s/he would decide on going to war with the S&M Idiot or just simply going over his head.

      Call it a sprint, call it whatever you want but the ONLY change that needs to go in "Like Yesterday" is the dreaded TSSB aka "The Show Stopping Bug".

      Lightweight processes are fine, nothing wrong with them, the problem stems from those very processes being abused to the point of absurdity and ending up with a very "Agile" pile of crap.

      The other problem is management and mostly it has to do with avarice. Good software is a process, it is design, it is thought out and well planed before a single line of code is even typed into whatever language you care to imagine.

      A good CEO does not allow the S&M idiots drive development. A good CEO sits in on meetings whenever the development lead and the S&M lead are in the same room and moderates the whole thing, because in the end if the S&M idiot has her or his way being Agile wont save your job, but what will save your job is a well defined spec that has realistic time lines that set delivery for a given date and ANY change changes the delivery date and the Development lead has to stick to their guns and fight for the dev team because if they don;t the S&M idiot will drive you into 20 hour days which will lead to developers leaving the second a better job comes to pass and there won't be a product, just a lot of wasted dev time and money.

      --
      Hey KID! Yeah you, get the fuck off my lawn!
    4. Re:"Agile" is a complete mind fuck. by donscarletti · · Score: 1

      Sales and Marketing are important, the only problem is that the quality of some idiots drawn to the field. If you have a guy who is _not_ an idiot telling you what the customers need, then maybe it is a good time to listen and do some of those things. If your Sales and Marketing department cannot differentiate between what your customers need and what they don't and are finding out what they really need at the last minute and filling your in-tray with bullshit, then that is their problem. I am a programmer and I have a great relationship with some sales guys and have some sales guys amongst the list of my most loathed enemies. The difference is, one set is good at their job, keep customers happy, make sales and help you work out what needs doing for your users, the others are disgusting idiots who fail in doing their job because their lack of inter personal skills and pile bullshit on the other departments to cover their own arses. It sounds like your sales and marketing head was just shit at his job, if you don't like him, it is doubtful that customers like him either.

      I think your CEO was a geek who was conditioned by places like Slashdot and Dilbert into thinking that you are "supposed" to not like the S&M team, rather than them being supposed to be the most instantly likable guy in the company. That is a stupid attitude and I would be surprised if it hasn't harmed him immensely.

      --
      When Argumentum ad Hominem falls short, try Argumentum ad Matrem
    5. Re:"Agile" is a complete mind fuck. by FlyingGuy · · Score: 1

      I agree GOOD S&M people are a dream, they know how to sell, they know how to translate the concept of whatever you are building into words and phrases that get potential customers to pay attention, and they know how to close a sale and get the check.

      The problem inevitably comes when sales are going great and then they start thinking "if it wasn't for me..." and then they start thinking they know better then the person who came up with the product / service. Now at times, and those are very few and far between they sometimes do but more likely then not it is simply ego and greed rearing its ugly head.

      The guy I referenced was not a /.'r not a fan of Dilbert, he was/is a very reasonable guy who came up with a great product that filled a need and is still going strong today; however, I wish I could say the same for the S&M idiot since he was let go as he supremely demonstrated the worst qualities of S&M people.

      --
      Hey KID! Yeah you, get the fuck off my lawn!
  68. Where is the empirical evidence? by Anonymous Coward · · Score: 0

    I love how the article asks "has agile succeeded", and the agile folks answer "yes it has changed the industry". My response to that is, so what? The industry has changed sure, but is it for the better? Where are the observable facts, the empirical studies, etc, that agile has improved software development? This is just like the OO fiasco -- no measurements to say whether it works or not, just a load of hot air and waffle advocating the benefits of the approach. The software industry never changes ....

    1. Re:Where is the empirical evidence? by sapgau · · Score: 1

      OO fiasco? So go back to procedural code?

  69. CCP adopted Agile in EVE Online development. by citizenr · · Score: 1

    Results from last Expansion:

    -Major feature of the patch (basically the only new one) got castrated from all but the bare minimum functionality because they couldnt meet time limits.
    -they introduced ~5 new, and reintroduced another ~5 old bugs
    -instead of fixing new/reintroduced bugs they decide to release PATCH version 1.1 with MORE new functionality/code rewrite cos that was in the schedule, and schedule is more important than quality ...
    -1.1 broke so much people couldnt play at all
    -after 1.1 they released SIX hotfixes that didnt fix anything or broke even more
    -after that they decide to stop embarrassing themselves and released 1.2 instead of hotfix number seven, AGAIN instead of fixing bugs 1.2 introduces even more invisible to the player code rewrites

    New expansion was on a test server before release, bugs were reported but AGILE forced timelimits meant NO ONE read bug reports :-)
    From that experience what Agile means for me is TOTAL lack of Q&A.

    --
    Who logs in to gdm? Not I, said the duck.
    1. Re:CCP adopted Agile in EVE Online development. by frank_adrian314159 · · Score: 0, Offtopic

      From that experience what Agile means for me is TOTAL lack of Q&A.

      Given your own lack of QA (Quality Assurance) in your post, I would see where this would be a tragedy, as you obviously need an external source monitoring your work.

      For your information:

      QA = Quality Assurance (sometimes, Quality Assessment) - a process by which quality of a product is assessed (so it can be remediated) or assured before a product is shipped.

      Q&A = Question and Answer - a period during or after a talk and/or interview where questions can be asked and, hopefully, answered.

      I hope this helps end your debasement of the English language.

      --
      That is all.
  70. This is compulsory... by chaboud · · Score: 1

    Any discussion of Agile and its value calls for a mention of Orson Scott Card's How Software Companies Die. Card makes the very valid point that good software developers abhor deep and thorough control of the "process" by which they make software. Typically, the developers I've known to like Agile are the mediocre ones.

    Agile won't make a bad team good, and it will make a good team a bit slower, with sprint synchronization, a meeting-heavy culture, and commoditization of development resources. The only big win that I see for Agile is the ability to more quickly call the failure shot. There's value to this, but every single Agile group that I've encountered, worked in, and heard of has eventually moved to valuing the process over the practice of developing software.

    Believe that being able to measure the process is critical to producing good software? You're a manager who has read too many crappy management books and spent too little time in software development. Believe that being able to measure the process is more important than what comes out of it? You should take a look at Agile.

    1. Re:This is compulsory... by Agile.Zorro · · Score: 1

      Agree, it just that what you describe in fact is wrong Agile :-); once the process takes over the development it is called mini-waterfalling :-) no Agile anymore. And that's why mediocre developers like it - because they can hide behind the processes instead of being exposed frontally :-). Real Agile should help good developers and help remove bad ones - if it is opposite than it is not Agile. The most efficient combination is XP programming with Agile and into a real environment of this type there is no place for bad or mediocre professionals.

    2. Re:This is compulsory... by chaboud · · Score: 1

      Possibly, but real Agile has, in my experience, been a bit of a unicorn. It's what Agile people always trot out to try to rescue Agile from a flogging that it's deserved for a few years now.

      I'd also be wary of using the phrase "the most efficient" with regards to anything that isn't a provable truth unless you add "that I've seen" or "currently known."

      The problem with more deeply controlling approaches is their motivation for imposition. Things like Six Sigma and Agile exist precisely because managers want deeper control and inspection. They naturally don't want responsibility for things outside of their control, and the solution they see to that disparity is deeper control. That deeper control and inspection, combined with codification of process and approach, creates an environment that essentially inhibits innovation and motivates the skilled to leave. Good coding can be like good painting, gestating thoughts over weeks exploding furiously into nights of brilliant slinging. There is no place for truly inspired code in post-it notes with point counters on them.

      Maybe it fits with everybody's favorite commoditized-code whipping-boy, bank software, but it certainly hasn't done my corner of the industry any favors.

      Agile has over-promised and under-delivered. I have yet to encounter any evidence to the contrary.

    3. Re:This is compulsory... by Agile.Zorro · · Score: 1

      See, this is exactly my point :-) LOL! You got sold the maked-up Agile not what Agile paradigm is by its content. *Being Agile* is not *Doing Agile*. At its simplistic form, this is what Agile is *be agile for real* if you fail that means you haven't been Agile as Agile says very clearly that reality MUST be prevailing over the processes and help improve delivery. The people you refer to are the ones I'm pointing the finger at them as being an extremely dangerous specie for the Agile movement - *The False Agile(r)* and *The False CSM*; these people use their paper prints for helping obscure management processes look like Agile and this is the problem you encountered. Agile is a mindset - if this mindset is not shared by the majority of the co-participants in the project, not Agile fails but the project. The change has to come reversed - people first and then you will see the results. Otherwise, as I mentioned you can't do Agile Software Development having the same attitude and perspective of someone selling eggs at the Farmer's Market or landing money at a Pawn Shop. Peace,

    4. Re:This is compulsory... by chaboud · · Score: 1

      Sorry man, but Agile is a methodology (look here). I get what you're saying, but Agile attempts to codify quickness and minimal planning into a process.

      That process includes measurable goals and the breaking of work into understandable small tasks (often at the expense of the whole). That reeks of managerial BS.

      That said, yes, take the tools and use them lightly to give managers a window into how things are going and it doesn't need to be too much of a boat anchor (especially compared to other processes). It can also be a big plus for detecting when brillant moments are coming. If it sounds like I'm advocating a form of cowboy coding, it may be because I can't for the life of me understand why software devs would want to give up creative and directional control of the software that they craft.

      To throw in a manager-friendly sports analogy, the people who don't want the ball are the ones who shouldn't have it in the first place. If your developers are comfortable surrendering control, they're either too mediocre or too worn down to bother fighting with you.

      But, yeah, I get it. I think that we have encountered, and dislike, the same people with regards to Agile. I'm just not confident that any such process can be imposed without these unpleasant "mistakes" surfacing. If there's power to be grabbed and misused, it will be.

    5. Re:This is compulsory... by sapgau · · Score: 1

      For management to surrender control (specially in big projects) means a huge deal of trust.

      That seldom happens in big projects where huge amounts of money are involved. When this happens the issues are more political than technical, so Agile helps management take a peek at how things are going. It forces developers to communicate which takes time and effort away from coding.

      Unless there is some other way of letting developers hide for months and making management feel good about spending money with nothing to see for months and months.

    6. Re:This is compulsory... by Agile.Zorro · · Score: 1

      Agile is not about hiding in holes for months and delivering accordingly to the time when the exit from the hole happens. That's why we try to do estimation, sprints and reviews - which in my experience always ended in mini waterfalls, tech debt and developer burn-out because of mediocre developers and tech leaders without spinal cord and pressured by mutant CSM's and mutan CPO's.

    7. Re:This is compulsory... by chaboud · · Score: 1

      Refer to my original link, to Orson Scott Card's "How Software Companies Die."

      The way to get good coders to do their thing is to let their haphazard misanthropy produce beautiful code, somewhat probabilistically. It's why new software companies regularly tromp on old ones. Old ones start looking at the bottom line and the economy of each dollar, of each hour, of the parts that they can understand. Eventually, this desire to look at the parts that they can understand manifests itself as discarding the parts that they don't. They lose sight of the whole, and the good people leave.

      Sure, it takes a huge deal of trust, but, if you've hired someone to dev software for you, you either need to trust them to some extent or go back to the drawing board. Success for technical people lies in knowing how to tell the difference between good and mediocre business people. Success for business people lies in being able to do the same with technical people. That's much more easily said than done, but, if you fail, the truly innovative people will be somewhere else.

      What most business people don't get about good coders is that good coders will code because they want to, because they have to. It's just in their blood, like needing to solve a puzzle, compulsively clean, or (for the managers here) get good at golf. It's not nearly as adversarial a position as people make it out to be. Give good coders a playground and the goodness of what they make is the reward.

    8. Re:This is compulsory... by DragonWriter · · Score: 1

      That process includes measurable goals and the breaking of work into understandable small tasks (often at the expense of the whole).

      No, its not "understandable small tasks".

      Its indivisible units of value.

      Essentially, a proper unit of work in agile is a project in its own right. Its just a project of the narrowest possible scope to deliver positive value without depending on any prospective future work.

      Its a mechanism for reducing the backlog of work for which costs have been paid but which isn't yet producing value for the organization. It also manages the risk of change, because requirements changes that affect the work that hasn't been done yet on a product don't delay the release of the work that has been done. (There are ways that it mitigates the cost of change even when it affects the work that has been done, but that's different aspects of agile than how you scope iterations.)

      That reeks of managerial BS.

      In that that bit of Agile is mostly about accelerating return on investment and managing organizational risk its clearly "managerial" in some sense. (Software development is generally not art for arts own sake, it serves a business purpose, and much of agile is about better aligning what is done in software development with the business interests of the organization it is being done for.)

      Whether its BS or not, well, you certainly haven't put forward an argument for why it is bad.

    9. Re:This is compulsory... by sapgau · · Score: 1

      Agreed... programing is a tough mental activity that is hard to define how it works.

      On a side note (after reading your link), I hate idolizing good programmers (maybe I'm not one of them) because sometimes it gets to their heads.

      Actually good programmers should NOT last long working in the same company. They should mentor, educate, leave clean self (not obfuscated) documenting and modular (elegant?) code behind.

      At one point he will know it will be time to move on to bigger things but leaving behind a great legacy of work. How many times teams have to redo code because they can't make head or tails of the blob of code that some idolized programmer left without a hint of what he was thinking.

  71. Agile Pregnancy. by 140Mandak262Jamuna · · Score: 1

    A team of nine women will deliver a baby in one month. Through four iterations per week. In each iterator one body part will be produced and delivered.

    --
    sed -e 's/Chuck Norris/Rajnikant/g' joke > fact
    1. Re:Agile Pregnancy. by sapgau · · Score: 1

      Is more like:

      A team of nine women will deliver a baby. ONE woman is the critical path and she will not stop with her one job of making the baby until she is done.
      The other eight women will:
      - take care of feeding her,
      - taking her to the doctor,
      - making sure she is healthy and eating a good diet,
      - paying her bills,
      - buying everything for the new baby,
      - making sure she is keeping up with family and friends,
      - helping her prepare for the birth with respiration and pushing exercises,
      - making sure she is recording everything in pictures and video.

  72. It did. by unity100 · · Score: 1

    pretty much basically any software development under the megacorporation level is now being done through agile methods, or close relatives. noone is preparing huge docs, and then going over those docs through a cumbersome development process over years.

    medium to small businesses are practically having their everything built as such. minus the vendor locked ones, of course. you can gleam a lot from examining the ebb and flow of such small to medium scale contracting work in sites like elance.com

    and, on the megacorporation level, things have turned more agile with passing days. companies like google started to turn out software fast, and then add up increasing functionality over time, and this undid a lot of other, traditional companies, like microsoft. they had to adopt similar policies to cope up too. it was inevitable - while you are loitering over the project of an idea for 2-3 years, some others pop up a minimum but increasing functionality version and get ahead in the market. it was 'join them if you cant beat them'.

  73. 2001? What? by Lalo+Martins · · Score: 1

    I learned Extreme Programming in 1999. The article that started Scrum was published in the 80s. So... what? Insanely wrong articles aren't anything new in /., but in this case I don't even know what it's supposed to mean. Maybe it was submitted from an alternate reality.

  74. Is agile failing or is it just bad software design by Anonymous Coward · · Score: 0

    Developers that blame changing requirements are fools. The requirements document is alway the most volatile document of any project.

    Do your developers understand abstraction, the principles of design patterns and separation of concerns? Do they have any understanding of commonality and variability analysis? Do they deliver packages that can be tested in isolation?

    Or do they write concrete implementations with tons of dependencies that are impossible to test unless whole system is integrated?

    If you know that requirements change and you create designs that are intolerant to change no PM model can save you from yourself.

    Leveraging agile principles only helps when the software team knows how design.

     

  75. Where was your pair? by Gorimek · · Score: 1

    You couldn't ask for help??

    Team work is to me the most important part of agile.

    In a real agile project, you would at the very least have been working in a pair and figuring this out together with your partner.

  76. Daring to disagree by Anonymous Coward · · Score: 0

    I think for working on small custom projects as some sort of custom software house these kinds of processes where you are more or less mindlessly churning out code to a specification blissfully lacking in any domain knowledge then these methods work fine.

    However for everyone else the iterative (release often) approach seems to assert people are not smart enough to work complex problems over larger time scales and that they should not even try. Agile seems to assume the hit to even trying to arrive at a globally optimal solution is not worth taking. I disagree with this premise even in a general sense.

    The problem for me is that features and quality exist in what might as well be an infinite well where it is impossible to ever get anything approaching everything that needs to get done done.

    If you are not willing to invest the time and effort to design intelligent infustructure to deal with reality that you are fucked no matter what decision you make -- you are then left in an infinite reaction mode with crappy infustructure which at the end of the day is not globally optimal, boaring and likely to lead to crappy outcomes including code sprawl.

    1. Re:Daring to disagree by sapgau · · Score: 1

      Agreed but... you should be able to:

      - Plan for fairly frequent milestones where you can build a release (that runs with bugs but it has something to show of how the system will work when completed).
      - Be able to test new and old functionality by being consistent in building useful unit tests.
      - Be able to say what you will be doing in the next couple weeks (or months even) and somehow you are able to deliver on that.

      In essence having a loop where you at least touch with some new code most of the functional areas of the system.

      Otherwise you might say "the database layer is complete but I can't show you until the business layer is done and that will be probably done in six months..."
      Management will go nuts trying to figure out what to tell their bosses while still justifying the expenditure with nothing to show for in months and months!

  77. Re:Scrum is *not* a replacement for good managemen by Blakey+Rat · · Score: 1

    At my company, in my group, Agile is completely screwing us. The developers use the Sprint method, and each spring they invariably de-prioritize our small, simple feature so that they can work on bigger things. End result: our changes which require maybe 2-4 hours in actual work* get postponed for 8, 10, 12, or even more weeks. We miss deadlines for our clients, basically we get royally screwed.

    Their "solution" to this problem was to split their team into multiple smaller teams, so now they have 3 Sprints instead of one. The reality is that our pending task is looked at by one single sprint, and they still de-prioritize it every two weeks like clockwork. (I mean, obviously-- it's the same people as before.) It didn't fix anything.

    *) Before you gripe, I used to work in the exact dev group I'm talking about, and I *know* the tasks take 2-4 hours. I'm not pulling numbers out of my ass.

  78. "Being" Agile vs. "Doing" Agile by Agile.Zorro · · Score: 1

    Just right - and it will work "Being" Agile vs. "Doing" Agile We need to get rid of *The False Agile(r)* and *The False CSM(r)* mutant species. Otherwise, Agile will go to the trash bin together with other IT massive failures. Peace,

  79. Just as simpleas that by Agile.Zorro · · Score: 1

    "Being" Agile vs. "Doing" Agile All we need is a organization certification strategy so that Agile can't be missued anymore. Otherwise - will die.

  80. Re:Scrum is *not* a replacement for good managemen by Anonymous Coward · · Score: 0

    Then you're not doing Scrum.

    The developers don't get to de-prioritise backlog items; they implement in the priority order defined by the product owner. That's the person they're creating the software for, so that's who decides what gets implemented. Of course, the developers can feed back that a particular item won't fit in a given sprint, but then it should only be delayed at most one sprint (assuming the user story is ready to implement (i.e. requirement-complete)).

    Tell your product owner to do their job.

  81. C++ meta-template and template programming by NuShrike · · Score: 1

    Then you should be programming in inline C++ templates. It gives you all the advantages of a near-metal-C-like programming with the harness/automation/coverage of an object-oriented language.

    This is why WTL is superior over MFC in speed and size for the same API, as well as Boost, and why I write everything I can in meta-template programming and optimize the syntax to generate optimal assembly.

    I've done a fixed class as so (and OpenGL/ES wrappers) and it runs optimally across x86, ARM, MIPS; exactly as I would have hand-coded it; and I get all the automatic optimization from being at the level where an optimizer also exists.

  82. Brilliant! Wait!!!! by tlambert · · Score: 1

    Then you aren't breaking the tasks down into small enough parts.

    How do you incrementally rewrite a VM system?

    -- Terry

  83. Re:Scrum is *not* a replacement for good managemen by Anonymous Coward · · Score: 0

    The reason I imagine Agile is such a hit at the moment is that the managers are avocating its use, not the developers (at least at my work) purely because it is in the manager's interests to apply Agile methodology, and they are the ones who make the rules.

    The idea is that managers get to satisfy the customer's whim with requirement changes throughout the process, and they get daily feedback with respect to progress in development. If things go bad, they blame the development team. Purely about managers looking good.

    I think Agile only works within a team of crack developers that have the ability and discipline to design and write production ready code on the fly. For the average developer, the time pressures and changing requirements of each sprint tend to produce a piece of software that is cumbersome, messy, and difficult to maintain, as quick fixes and workarounds take precedence to redesign in order to satisfy the sprint deadline.

    I believe this is typical of the short-sighted goal oriented corporations of today where they think it is good they will save 400 man-hours in this quarter by employing Agile to meet a delivery deadline, but don't realise they will end up paying significantly more over the longer term maintenance of the software due to the software's lack of a coherent design and implementation.

  84. uhm isnt that how microsoft actually started? by hildi · · Score: 0

    bill gates sold MSDOS to IBM before he even knew what MSDOS would be? or something like that. then he kept churning out all sorts of shit, windows 2.0, as long as it was 'good enough' , and fixing the problems later? im leaving out the parts about unethical business practices, which can be argued also helped a lot. but can one deny microsofts heritage, as a 'quick and dirty' company?

    1. Re:uhm isnt that how microsoft actually started? by unity100 · · Score: 1

      well the agile development seeks to drop the dirty part and keep on with the quick one.

  85. dBASE/xBase was on to something by Tablizer · · Score: 1

    Older languages, like the mainframe DBMS NOMAD and the PC DBMS dBase were IMO brilliant.

    Yay! A fellow dBASE/xBase fan. Sure, the language had some ugly constructs, but there was something magical between the app language and table language integration: it was close and tight; the Batman and Robin of small-to-medium custom business apps and batch processing. SQL and app languages tend to have a wall between them in many "in" languages that makes them fairly verbose and cluttered.

    Microsoft's LINQ and similar sub-languages have half-captured some of that magic, but in the rush to make everything OOP in the early 90's, the good lessons of native table-orientation got lost.

    Microsoft Access makes a lot of things easy, at least up front, but meta programming and code re-use are difficult to do with mouse-centric techniques; and VBA + SQL has the same "wall" problem mentioned above.

  86. dBASE/xBase was on to something by Tablizer · · Score: 1

    Older languages, like the mainframe DBMS NOMAD and the PC DBMS dBase were IMO brilliant.

    Yay! A fellow dBASE/xBase fan. Sure, the language had some ugly constructs, but there was something magical between the app language and table language integration: it was close and tight; the Batman and Robin of small-to-medium custom business apps and batch processing. SQL and app languages tend to have a wall between them in many "in" languages that makes them fairly verbose and cluttered.

    Microsoft's LINQ and similar sub-languages have half-captured some of that magic, but in the rush to make everything OOP in the early 90's, the good lessons of native table-orientation got lost.

    Microsoft Access makes a lot of things easy, at least up front, but meta programming and code re-use are difficult to do with mouse-centric techniques; and VBA + SQL has the same "wall" problem mentioned above.

    (I apologize if this shows up twice. Slashdot is acting up on me of late.)

  87. Re:Brilliant! Wait!!!! by cerberusss · · Score: 1

    How do you incrementally rewrite a VM system?

    Start writing the virtual machine for the processor's predecessor, which will probably have a more limited set of instructions. Granted, the VM system its value per incremental release will probably not be that big. But it's still possible to go from working system to working system.

    --
    8 of 13 people found this answer helpful. Did you?
  88. Why agile seems to suck by Anonymous Coward · · Score: 0

    Having been involved in software from specification to coding to commissioning for 25 years, I can safely say that from the code quality perspective I've seen more crap code from self-styled agile developers than from any other source. It's not that agile is an inherently bad idea for certain areas of development - it's great for user interfaces where the client is unsure of their detailed requirements up front. But there are two major issues with it.

    First, due to the lack of integrated up-front documentation, it's very hard to fulfil overarching requirements such as application security - one has to fall back on the expertise of individuals.

    Second, and probably most importantly, the adoption of "agile" has been a way for thousands of deeply disorganised low-grade code monkeys to graduate into a development marketplace they could never have touched were systems analysis and documented requirements still an expected part of the package. So standards have gone down, not because the agile concept is fundamentally flawed, but because we use it where it's not the best approach and to do agile well you have to be a much better developer - and there aren't enough much better developers to go round.

  89. Responding to change over following a plan? by TheKingLouie · · Score: 1

    If you want to create a maintainable design, you need to think of the likely changes the software will under go and the also the aspects that don't change.
    Example: a car will a have brake, but the type of the brake is likely to change as technology evolves.
    If you plan for the likely changes , you could hide every likely change behind an interface as implementation detail. The interface will only expose those details that are unlikely to change. So when the change does come along, this will results in one module implementation change.
    By not planning for changes, Agile results in fragile architecture (a small change can have ripple effects ). And hence costly. We end up tweaking the architecture for every iteration?

  90. Re:First decade? Not likely by mjwalshe · · Score: 1

    yes I have also worked on hybrids where there was a traditional design phase and we did a rad style development phase in 8-10 weeks - with 2 developers new to the platform (oracle forms) and a good Oracle consultant who was the tech lead and mentor to me and the other developer.

  91. Agile: the buzzword du jour by Xylene2301 · · Score: 1

    Agile is just a buzzword made up by the business end to try to convince the programming end that hitting a moving target is efficient and better. That's the way the business end works; promise to satisfy whatever the client wants in whatever time frame nets the contract. There is no substitute for knowing exactly what you're trying to do before you start and no substitute for knowledgeable IT personnel in the contract process so that expectations and timeframes are reasonable.

  92. What Agile meant to my employer... by Anonymous Coward · · Score: 0

    Our move to agile development methodologies included firing all Business Analysts. We are now essentially defect-driven development. Thanks guys!