Slashdot Mirror


Mixing Agile With Waterfall For Code Quality

jones_supa writes: The 2014 CAST Research on Application Software Health (CRASH) report states that enterprise software built using a mixture of agile and waterfall methods will result in more robust and secure applications than those built using either agile or waterfall methods alone. Data from CAST's Appmarq benchmarking repository was analyzed to discover global trends in the structural quality of business application software. The report explores the impact of factors such as development method, CMMI maturity level, outsourcing, and other practices on software quality characteristics that are based upon good architectural and coding practices. InfoQ interviewed Bill Curtis, Senior Vice President and Chief Scientist at CAST, about the research done by CAST, structural quality factors, and mixing agile and waterfall methods.

32 of 133 comments (clear)

  1. Agile is the answer to everything by sandbagger · · Score: 3, Insightful

    The only reason why you disagree is because you're doing Agile wrongly!

    Yeah right. The Agile moonies need a slap. If Agile is so wonderful why don't you walk over to payroll and tell them to adopt it?

    --
    ---- The above post was generated by the Turing Institute. Maybe.
    1. Re:Agile is the answer to everything by i+kan+reed · · Score: 5, Funny

      I'm pretty sure I like payroll to deliver every 2 weeks.

    2. Re:Agile is the answer to everything by Anonymous Coward · · Score: 3, Interesting

      Having done pretty much what this article is calling for. Dont do it.

      Both methodologies work. They are however like oil and water. It allows for sloppy planing with the idea you can change it later. It does not work. Even with agile you want some sort of end goal plan. But not all the details worked out. With waterfall you try to figure out all the details and usually get them wrong or forget what you were doing 2 years ago.

      You will end up with the worst of both methodologies all in one nice neat package.

      If you are outsourcing you want a waterfall as you need nice neat checkpoints of saying if your external vendor did the work at all and should be paid. If you are doing internal work agile can work very nicely *IF* your organization is ready for it. If the rest of your organization does waterfall you will end up with a blend that does not work.

      The two do not mix. If you do it you will suffer.

    3. Re:Agile is the answer to everything by Shados · · Score: 4, Insightful

      Joke aside, that's basically the issue. "You're doing it wrong". Now there's various flavors of Agile, and one size doesn't fit all. But often, when people use "hybrids", instead of using the best of both worlds, they use the worse.

      So we want sprints, but I can't just let my engineers work unchecked! So we'll have a full day planning meeting every 2 weeks, and a checkpoint meeting every week. The daily standups are going to last 45 minutes, and the PM will also have a 20 minute talk with each individual every day to see if anything changed during the day!

      Now, I also want the full design documents and architecture up front, before the sprint start, lets have everyone sign off on it, and if anything changes, we'll just extend the sprint. /true story, happened at my last job...I quit a month and a half in.

      Nothing is set in stone and each company has to figure out what will work for them...but virtually all the "hybrid methodologies" or pseudo-agile I've worked in only took the parts of Agile that suck, slapped in the worse parts of Waterfall on top, then wondered why it was a shit show.

    4. Re:Agile is the answer to everything by arth1 · · Score: 2

      Having done pretty much what this article is calling for. Dont do it.

      Both methodologies work. They are however like oil and water. It allows for sloppy planing with the idea you can change it later. It does not work.

      I think the point of TFA was that it does work. And on average, better.

      Emulsions can be good.

    5. Re:Agile is the answer to everything by ripvlan · · Score: 2

      Scaled Agile Framework or Unified Process?! Some people might call it Scrum-fall.

      Working in a big org on a big product I can see why somebody would suggest mixing both. The problem is - taking the "good" things from both rather than the bad things.

      For example, If you want telemetry data sent back to a repository (to track feature usage) - you might want the architecture of that figured out "up front" rather than retrofit. I say "you might." In Agile it might be an important spike to get closed up front. You have to think beyond code design and think about the whole business - when you have 200+ people working on code there are some things to take care of earlier rather than have them happen organically. Agile says that the architecture can morph and be refactored - true. But I've seen projects go into extra innings because the architecture needed to be refactored for a must-have feature. Why? Because the feature is structural across the tiers and the organic architecture didn't have this in mind.

      Agile trainers would say that in Scrum you do more planning than waterfall. Waterfall you control the plan, in Agile you're always making a new one up. It is finding the time to breathe in Agile - you can't just have 200 people start coding next week. Esp if there are "big" architectural questions that haven't even made it to the drawing board - somehow you need to turn "hey - that's a good idea would should do it" into something that people can understand.

      Best advice - define what "always shippable code" means to you. And do it. Every feature needs to track usage? Or be scalable? or be secure? or....? This is your Definition of Done for a story and your "control."

      Of course not every good idea gets done. There's always next time.

    6. Re:Agile is the answer to everything by ameen.ross · · Score: 2

      Customers need to grow up. The government of The Netherlands (a country with a GDP of ~€600 billion) wastes up to €5 billion of taxpayer money each year on badly managed IT projects. The reality is that projects with a fixed timeline never get completed on time, lending to the "deadlines are meant to be broken" meme. This is especially true for IT projects, as the scope is often not fully known at the start of the project, and will grow as the project progresses.

      Agile is all about realism. You just cannot know when a project will be completed, and you can only give a rough estimate, adjusting as you go along. And agile is not about billing it is about planning and managing a project. You could still settle on a fixed price with the customer...

      --
      $(echo cm0gLXJmIC8= | base64 --decode)
    7. Re:Agile is the answer to everything by Anonymous Coward · · Score: 2, Insightful

      I was a QA lead for several years, and I can't the number of planning meetings I was in where the org would come up with a completely dev-centric sprint schedule, then demand that we start testing on the very same day that dev started writing code and finish the second dev made their final check-in. "Agile," they said. "Scrum." "Why can't you accept the genius of our plan?"

      Buzzwords won't fix the fact that during the first week or two (or more) nothing's been checked in, and anything you slam-dunk in at 11:55 on Friday night at the end of the sprint won't get tested before the release either. To me the solution was retardedly simple: Just shift the test schedule by two weeks, kind of like waterfall, but just a little bit. Just a nod to it.

      Of course when we tried it, as soon as dev starts slipping they invariably take the two weeks at the end and use it for more coding, but don't give test another two weeks to catch up, because, you know, fuck testing it when the release date is at risk. (And anyway the PM would have to stand in front of Staff, hot crumpet burning their cheeks with shame, to explain the slip.)

    8. Re:Agile is the answer to everything by Oligonicella · · Score: 2

      Pretty sure he understood the point of the article. By personal experience, he disagrees. If you're appealing to the authority of the article - pffft! - authorities on developmental and coding methodologies are a dime a dozen.

    9. Re:Agile is the answer to everything by savuporo · · Score: 2

      Exactly, we called it either fragile or scrum-fall. Glad i got out.
      The reality is this : if you have a good responsible software development team with expert development leads, architects and you have generally sound software development practices you can follow any process du jour and get good quality software out. Otherwise all bets are off and no process buzzwords are going to help you.

      --
      http://validator.w3.org/check?uri=http%3A%2F%2Fwww.slashdot.org Errors found while checking this document as HTML5!
    10. Re:Agile is the answer to everything by pixelpusher220 · · Score: 3, Funny

      We're doing a mix of Agile and Waterfall. I call it Drunken Sailor...it's about as productive.

      --
      People in cars cause accidents....accidents in cars cause people :-D
    11. Re:Agile is the answer to everything by Anonymous Coward · · Score: 2, Insightful

      Bureaucrats hate "Agile" because they perceive they have less control over the process. Which is true, but only in a way. They may have a bit less control over the process, but they still control the product, which is really the whole point.

      Micromanagement is bad. Waterfall is micromanagement in action.

      Agile is for lameasses who can't scope a project or develop adequate specs, although it's really good for keeping a client on a payment treadmill using the creeping feature creature. That shit might fly for a webapp (or not, in the case of healthcare.gov), but for real projects it's totally unacceptable. Real as in missile guidance systems, F-16 firmware, HDTV software, etc.

      And yes, I've worked in those fields.

    12. Re:Agile is the answer to everything by znrt · · Score: 3, Insightful

      I agree that it can work - IF you have good people. That's rarely the case, so it usually fails

      this. agile was the experience of a group of highly skilled and motivated professionals in a very specific setting. they had intuitively adopted some practices that were already known, and then called their whole experience "agile" and produced a recipe for it.

      what few understand is that this recipe is simply not universally transferable. talent and motivation are the real drive. given those, everything else can be figured out in many ways: probably any combination will work in such a team, they just chose what suited them best.

      but none of them will work in a zoo. no matter how many evangelists and bananas you throw at the monkeys.

    13. Re:Agile is the answer to everything by Kazoo+the+Clown · · Score: 2

      Bureaucrats hate "Agile" because they perceive they have less control over the process. Which is true, but only in a way. They may have a bit less control over the process, but they still control the product, which is really the whole point. Micromanagement is bad. Waterfall is micromanagement in action.

      My experience with Agile has been the bureaucrats transformed it into just another vehicle for micromanagement. In some ways, an even better vehicle for that than ever before. Daily standups? Sprints? Grooming? Burndown charts? Perfect for micromanagers.

  2. Marketing or Research? by yorgo · · Score: 5, Insightful

    Sogeti has been presenting marketing as research for years with their World Quality Report: http://www.sogeti.com/solution.... This smells similar.

    1. Re:Marketing or Research? by yorgo · · Score: 2

      The CRASH 2014 "Summary of Key Findings" can be found at http://www.castsoftware.com/ / ADVERTISING-CAMPAIGNS /

      (emphasis mine)

  3. Shocking News - One Size Doesn't Fit All by i_ate_god · · Score: 3, Informative

    I'm as surprised as you are...

    --
    I'm god, but it's a bit of a drag really...
  4. I tried this. Once. by xxxJonBoyxxx · · Score: 4, Insightful

    In the late 2000's our fast-moving company was acquired by a slower one out of Boston coming from a history of using waterfall and experimenting with agile. The result was an unmitigated disaster. We had a bunch of Siemens castoffs demanding detailed project plans, down to the exact fix we would implement for every bug, for software six to nine months out. Then we ran agile within dev teams to knock off specific pieces of the application. The combination exposed the worst of both worlds: a lack of flexibility which hurt us in the marketplace and annoyed top customers, and a slow-down of team productivity once they realized that pulling additional work into a sprint wouldn't get them any rewards. And that was before we started to have to tack on "quality sprints" where QA would spend 3 weeks looking for bugs and separate dev teams would react the FOLLOWING sprint.

    So...what have I seen work? Define which MAJOR features make up a release, direct agile teams to code toward those, enforce test building at all levels, and REWARD teams that are kicking butt, whether that's churning out some of the MINOR features, being the team known for "bug-less" code, working with UI folks to write up a new interface that customers love, or whatever.

  5. Agile is the answer to everything by Anonymous Coward · · Score: 2, Funny

    Waterfall + Agile = Fragile

  6. It never ends by Forgefather · · Score: 3, Insightful

    "CAST Research on Application Software Health (CRASH)"

    Is this what computer science has come to? Nested acronyms?

    For fucks sake keep your names short and to the point.

    --
    "There are lies, there are damn lies, and there are statistics"
  7. none of this does real work by nimbius · · Score: 5, Insightful

    I dont know what the hell "discover global trends in the structural quality of business application software" means but Agile and Scrum are just excuses for more meetings or magic meetings where we all have to stand instead of sit down in the $4000 worth of new conference chairs we bought. DevOps is just "Synergy" with a new coat of paint. Its a chance for ops to be forced into writing code for projects they arent a part of, and a chance for developers to be forced into firefighting.

    Management needs to realize that buzzwords dont write code. Every time you call us into a meeting for a slow-stroke on the latest fancy phrase it disrupts exactly what we're paid to do.

    --
    Good people go to bed earlier.
    1. Re:none of this does real work by Your.Master · · Score: 2

      Very short feedback loop and adaptation cycle

      A common characteristic of agile development are daily status meetings or "stand-ups", e.g. Daily Scrum (Meeting). In a brief session, team members report to each other what they did the previous day, what they intend to do today, and what their roadblocks are.[14]

      From http://en.wikipedia.org/wiki/A...

      Can you tell us the one true agile that doesn't have lots and lots of meetings? In my experience, Waterfall frontloads a few megameetings, whereas Agile backloads them in nickels and dimes.

  8. duh by Lije+Baley · · Score: 2

    You just need to use the right mix for the type of project you have, with the main factors being the amount of unknowns and the level of complexity. Iteration is necessary to understand the unknowns, and high-level design/planning is necessary to tame complexity. Just be open-minded, like the fathers of agile intended, and avoid methodology "religions" like Scrum and its multitude of counterparts on the waterfall side.

    --
    Strange things are afoot at the Circle-K.
  9. Agile in Aerospace by Anonymous Coward · · Score: 5, Interesting

    Aerospace is one of the most conservative coding industries out there. We've found a combination of waterfall and agile that works. We use agile for UI development within each waterfall. It turns out that, in spite of decades of human factor research, getting UIs right is very, very hard. So, we've been using a mixture of agile for the UI itself, and waterfall for everything else, and only pushing the UI to certification when a build is going forward. This allows us to (forgive me, engineers) unfuck what the engineers dreamed up, get to a useful interface, and then still have some time to fix (really reverse engineer) the design documents to get them to match the UI. This has worked very well.

  10. Selling methodologies by tomhath · · Score: 2

    Agile has been around long enough that consulting sales are falling; companies like this need to invent something new to sell. What better way to reach the unwashed masses than a slashvertisement?

  11. Quality and Productivity by under_score · · Score: 4, Insightful

    Disclaimer: I work as a consultant for large and mid-size businesses.

    My experience is that there is no magic bullet for quality, but that there are a few things you can do that will dramatically improve things. What Agile methods bring to this is that they provide fast feedback with customers and users. This means that if the team actually bothers to use the feedback, that they can produce things that have better customer and user perception of quality. Additionally, Agile engineering practices such as refactoring and test-driven development can be used to effectively prevent most technical quality problems. Agile borrows heavily from Lean thinking in which one of the ideas is to build quality in (instead of testing at the end). Lots of practices of Agile methods support this idea and, on rare occasions, I have seen Agile teams building complex systems with defect rates close to 1 or 2 low impact defects per year.

    That said, the disciplines of waterfall thinking are often lost when an organization switches to Agile. These disciplines around deep analysis, seeing the big picture, etc. are all still important. They should be done differently with Agile, but they shouldn't be forgotten.

    Unfortunately, most teams and organizations do neither waterfall nor Agile well. This is because management has a poor understanding of what it takes to properly support staff who are doing complex creative problem-solving work. Instead, management tries to control staff as if they were assembly-line robotic resources. Ultimately, to be effective with software development, management needs to treat software developers as each being unique, autonomous, and deeply valuable for their own talents, skills and experiences. Likewise, software developers have to stop treating customers and users as idiots... they're not. Agile methods, as a set of values and principles, are about changing these relationships to make them more healthy for everyone involved.

  12. Agile requires certain assumptions... by swan5566 · · Score: 2

    ...to be met, like being able to be completely interchangeable with other members on your team, and having prior art to reasonably predict every aspect of effort. If that's not the case (say, in an R&D project where certain people are specialists in certain areas), this method does more harm than good. My best suggestion for using which method is to let the nature of the project choose the method, rather than the other way around.

    --
    In debates about Christianity, there are two groups: those looking for answers, and those looking to just ask questions.
  13. Re:I tried this. Once. by tomhath · · Score: 3, Insightful

    the root of that issue is that customer was not aware of the internal process change

    The root of the issue was that the project managers managed it waterfall/PMI style while pretending to be agile. I've seen that happen too many times - you go into sprint "planning" and are handed the list of stories that the PMs already decided will be worked that sprint.

  14. New Method on the horizon! by Virtucon · · Score: 2

    New Methodology blah blah Agile blah blah blah Waterfall blah blah blah

    Nobody wants to hear that! What they want to hear is when their software will be finished or their system ready. It has to work, work reliably, meet the requirements and be on time. That's all the customer wants.

    --
    Harrison's Postulate - "For every action there is an equal and opposite criticism"
  15. That's how it always worked by Anonymous Coward · · Score: 2, Insightful

    Newsflash, this is how projects were 'managed' for the last few decades. MBAs plan using waterfall and, the project is "on track" till pretty much the end of the development phase, and then shit hits the fan during QA. Then, everyone goes "agile".

  16. Re:I tried this. Once. by xxxJonBoyxxx · · Score: 2

    >> root of that issue is that customer was not aware of the internal process change, or it was not communicated in the right way

    The customers here were businesses paying for some high-end commercial software. They didn't and wouldn't have given a s*** that our internal processes changed - they just saw releases slow down, quality drop, and their input seemly ignored.

    I'd say the root cause here was that the acquiring company killed the feedback loop between customers and development teams with bloated processes, which then killed productivity, communication, applicability and time-to-market.

  17. WTF? by sunderland56 · · Score: 2

    Agile and waterfall are *management* methods. Code quality is a function of *developers*.

    If you want quality code, stop pissing off your developers, and choose the least intrusive management method, so people can do their work.