Live data from Hacker News

Scrum is the new waterfall

adambourg.com

161–170 of 183 posts

Re: Scrum is the new waterfall

#161

Earlier quoted context omitted.

I think we can resolve this debate through a map. I think our problem is a disagreement on what is actually industrialized and predictable vs. What is more exploratory and uncertain. Most software - but not all - deals with uncertain requirements. These are suited to agile methods. Other software is in a well understood industrialized domain. Here, I would not recommend waterfall per se, but an approach like Six Sigm…

Well, whatever Agile means in theory, in practice, it almost always leads to situations like the Android Update situation. Of the Google Chrome Update situation, which is only better because everyone is forced to update. A situation like the Android update situation, though, is completely unacceptable for smoke detectors or other household devices. No matter how good predictability is, the demand is that these device…

I think that the products you're complaining about are in the state they are in because of vendor choices independent of the software development process. If total stability and backwards compatibility are not design requirements, neither Agile nor Waterfall will automatically implement them for you.

I think your class or professors are assigning behaviors and outcomes to development processes that should instead be assigned to the companies or people implementing them.

Re: Scrum is the new waterfall

#162

Earlier quoted context omitted.

"You keep using that word. I do not think it means what you think it means." - Inigo Montoya, The Princess Bride

I am using the definition from agilemanifesto.org, which argues that "change" is more important than planning what you actually want to do. Or that "it works" is more important than documenting it.

I think you're taking Agile as defined in the manifesto out of context a bit too much and making it sound more like a religion (which, if you did, you would probably not be alone in doing).

Agile only makes complete sense when you take it in its historical context as a reaction to other methods, not as a standalone methodology with no history that sprang wholesale from the ground. It's not "this sounds good, let's try this", it's "we tried the other way and it did not work, we need to do something different".

Saying that you have something that works (an MVP, for instance) is _more important than_ documentation. That doesn't mean you shouldn't have documentation. Documentation will always lag behind actual code unless someone is full time updating documentation, which I have yet to see happen anywhere.

And even if you have documentation - it is an agreed communication of intent. The problem is, not everyone is necessarily reading it in the same way, or communicating their intent very well, or realizing inconsistencies and hurdles in what they've communicated. So when you actually have to write the software - you find you can't do it the way it was proposed, the way it was proposed is less efficient or fault tolerant, conflicts with other parts of the design, or is just ambiguous in a way that causes the developer to code up something other than was intended.

In a waterfall design, you wouldn't find out about the ambiguous bits until you present it to the client - at the end of the cycle when it's quite possibly already too late. In an iterative development cycle you can get constant feedback and more easily react to change. That's what agile is really all about.

Change is inevitable - agile attempts to recognize this fact and work as quickly as possible to create a product and immediately and incrementally improve upon it, keeping things moving forward, rather than spending huge amounts of time fussing over details that maybe won't make it into the final product while missing huge discrepancies or 'unknown unknowns' that aren't well understood until something is actually written.

Re: Scrum is the new waterfall

#163

Earlier quoted context omitted.

I am using the definition from agilemanifesto.org, which argues that "change" is more important than planning what you actually want to do. Or that "it works" is more important than documenting it.

I think you're taking Agile as defined in the manifesto out of context a bit too much and making it sound more like a religion (which, if you did, you would probably not be alone in doing). Agile only makes complete sense when you take it in its historical context as a reaction to other methods, not as a standalone methodology with no history that sprang wholesale from the ground. It's not "this sounds good, let's tr…

http://www.computerworld.co.nz/article/457007/agile_great_do...

http://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/2012001...

Re: Scrum is the new waterfall

#164

Earlier quoted context omitted.

> The lifetime for a washing machine is 30 years. Your software on that will last 30 years. Using a development method designed to make quickly changing requirements easy is stupid when your code will be "write once, never change". If the requirements change, you must update your software. How does waterfall handle changing requirements? It doesnt. To repeat: agile _handles_ changing requirements. It doesnt _provoke_…

> If the requirements change, you must update your software. How does waterfall handle changing requirements? It doesnt. How does agile handle change? By assuming everyone will update and has no issue with all third-party accessories constantly breaking. If you can’t ever change your code after you’ve written it once, then Agile isn’t useful to you.

You seem really hung up on this idea of clients having to update code that is already out in the wild when requirements change.

Maybe I've had a twisted experience of Agile, but it seems like its most useful when you are working on a greenfield project, with a customer that maybe doesn't even know what they want, but they know they want something. So you get some requirements, and build a prototype. Then you show it off, and they make some comments, (generally like: "Can it run in the Cloud? Is it Social?", "Could that icon be more of a cornflower-blue?"). Sometimes you get useful feedback also... Then you go back and refine the prototype. Rinse and repeat, and eventually it does enough that they are happy.

Even when you do know "exactly" what you are building, I would still prefer starting from a bare-bones version, and building out from there. Unless you've built this exact thing before, planning it all out beforehand will invariably miss some Rumsfeldian unknown-unknown technical detail, which might tip up the whole apple-cart of the carefully, laboriously, expensively, laid-out plan.

It's not like its 1995, and releasing a software version involved burning thousands of CDs, printing manuals, boxing it up, and distributing the boxes to retail stores. And most of us are not launching the software we write out beyond low-earth orbit.

Re: Scrum is the new waterfall

#165

Earlier quoted context omitted.

you mean firmware updates? What is the problem you are talking about? Plus its a regular problem ensuring that an API is stable. People do it all the time - aren't you wondering why you are the only person arguing this point? Many people in this thread deal with these problems on a daily basis...

The problem is that no one is going to do firmware updates on their smart washing machine. Your software can’t be updated. You have one try to do it right. It’s what next to all of the modern startups don’t get right. They build fancy software, but then in a few years your smart house doesn’t work anymore because the services it connected to have changed APIs and the house itself encountered a few bugs? The lifetime…

You are buying much higher quality washing machines than I am, apparently. If you get 8-10 years out of most brands now, you're doing quite well. Planned obsolescence is just the best...

Re: Scrum is the new waterfall

#166

Earlier quoted context omitted.

The banks do, but the people don’t. No one wants to have to buy a new Smart Fridge every year because the manufacturer stopped updating the old one. Hell, people won’t even update at all. We can’t even get updating software on Android correctly. And instead of releasing bugfixes for all releases, Google instantly abandons a version of Android. There are 0 maintenance branches of it. Applying the Android "Agile" situa…

I feel you, if the world is moving towards Android updates, it won't be a great world. One can design systems for usable and even pleasant continuous operations AND updatability though - even in an agile manner - eg. erlang and Ericsson.

Sure, one can.

but almost always Agile leads to this issue. Even the previously linked NASA document says their spaceflight software should have a release and update schedule with feature updates similar to Google Chrome (aka, no support for old versions at all, always the newest, shiniest)

Re: Scrum is the new waterfall

#167

Earlier quoted context omitted.

"And now imagine Healthcare.gov was Agile and its API would change every month completely." This is not required by any Agile method that I have experienced. You can create a stable API and stick with it forever. If you know what you want/need. "Every time you interact with third parties you have to provide stable interfaces." Yes. Case in point, the Cloud Foundry APIs at http://apidocs.cloudfoundry.org are backwards…

It's not required, but the average Agile project ends up with update support like Android, and with a complexity like the Facebook Android App (which had to rewrite dalvik at runtime because they didn't plan about the limits of the VM they were working on). Having a plan is the first step to perfection, they say.

Agile has never said you don't plan, you just don't fully trust plans made without all the information. You make your plan, and its great as far as up front plans go, but it WILL be wrong in some ways, and you will update it.

Who ever said you don't plan in agile and scrum? Where does the magical backlog you start the project with come from?

The point is not to pretend you know things that you don't. You have a severly flawed interpretation of what agile means.

Re: Scrum is the new waterfall

#168

Earlier quoted context omitted.

That is not Documentation that is Specification. How do you Document something that isn't built yet unless you have perfect foresight? Last I checked humans could not yet perfectly predict the future. Thus, the value of Working Software that can be interrogated and probed vs "Comprehensive Documentation" that may or may not be based on wishful prospection. The Manifesto values Collaboration over "Contract Negotiation…

Usually, you can decide on structure of code before implementing it. You can even have tests up and running before implementing it. And in many cases this actually works.

You can do agile test first too.

"hey here's a feature we're pretty sure we need:

As a foo, I need to bar, So that baz

okay, write the test, make the test pass, refactor"

What about that isn't possible in agile?

Re: Scrum is the new waterfall

#169
post #61

Earlier quoted context omitted.

Agile works for web services, for small apps, but that’s it. That's plainly not true. Many large applications are written by agile teams. Anything larger, or more complex, needs planning, thought, and design. And often needs refactoring. Yes – none of these things are banned by agile development. Refactoring is positively encouraged! It’s rare that you can build a system where you don’t have issues with concurrency (…

> Absolutely. This has no relation to the development process used to build those systems. Yes, it has. Agile encourages people adding features without previously planning every single interaction of the feature with every other piece of software. Which means, Agile encourages writing code without being sure it will interact safely with other parts.

No, it doesn't, you are making things up.

There are plenty of agile/scrum teams who run continuous integration that won't allow code that breaks a build to even be in production. They write integration tests and acceptance tests and all of it is done with sprints and iteration.

Agile does no encouraging of adding features. It simply gives you the freedom to choose which ones get implemented based on the current knowledge rather than be forced to make those decisions based on 18 months ago knowledge.

Re: Scrum is the new waterfall

#170
post #89

Earlier quoted context omitted.

My experience with taking such classes at multiple schools was always that any CS class talking about Real World Software Development turned out to not be all that accurate. Which perhaps makes sense since computer science isn't really about software development, real or otherwise. My favorite was being chided by a phd student teaching assistant that I needed to understand how things worked in industry if I wanted to…

The issue here are systems like Internet-of-Things devices. 90% of the people buying your smart washing machine will never ever update it. Never. So change is non-existent in the code you are delivering. And we’re going to have more and more IoT devices. Already today we’re seeing Smart TVs with preinstalled apps for online streaming sites that don’t even exist anymore. We have to be able to separate those pieces of…

Absolutely none of this matters to agile vs. waterfall.

You can accomplish this with agile development:

1. People meet at the beginning of the project and say "heres what we think our washing machine needs"

2. They create a backlog based on those features

3. They start working and implement some features.

4. They find out they don't actually need the washing machine to wink and smile and say its done in a fancy british accent. It was a silly idea marketing came up with that adds no value. They drop that feature from the backlog.

5. They find out making the machine text you when your laundry is done is a desirable feature, they add it to the backlog.

6. Management says the competitor is launching a month earlier than us so we need to accelerate the time table. Engineering gives them the hard news that they need to sacrifice some features. They look at what they have left to do and prioritize the important items and drop the feature for the washer tie-dying your clothes if you want from the backlog.

6. Project enters qa, all tests are passing but testers found a bug. They write a test to confirm and reproduce the bug, they squash it and update the build.

7. Software is working, launch happens, everyone celebrates.

Nothing here says the software has to change anymore; its done, its shipped, its good to go, and done using scrum/agile.

Post reply on HN