top | item 3333827

We've invented waterfall

285 points| latch | 14 years ago |epicenterconsulting.com

168 comments

order
[+] giberson|14 years ago|reply
Here's what I would like to see from a consulting company for once. Don't interview the stake holders of the company, they don't use the software like their employees do. They have a high level overview based on feedback from their employees. When you interview them, you're getting second hand information that will likely be missing key points that they forgot to mention or just simply think is obvious and doesn't require mentioning.

So here's what you should do. Over the shoulder review of a representative employee of each department. HR, AP, AR etc. Actively watch and understand the processes they go through. FOR AN ENTIRE 8 HOUR SHIFT.

No, seriously.

Now, you've got a good idea of how its done current.

Then do the stake holder interview to find out what they want to do differently.

Then plan, develop and deploy your software.

I seriously don't get why despite there being a recognized need for understanding the problem scope which everyone one will invest hours in meetings and conference calls talking about, no one actually invests any (significant) time doing, or reviewing the actual process. It's the fastest most efficient way to understand the problem. It would totally diminish months of back and forth "here's what you asked for" "no, that's not what I asked for" development review process that almost _always_ occurs with consultant projects.

/rant

[+] roc|14 years ago|reply
Let me tell you why you don't see this happening more often.

I did this on a project a few years back. I replaced a paper workflow process that was taking up two people each in three departments with a web-based workflow that increased visibility, dropped turn-around time from days to minutes, increased accountability and accuracy and trimmed those 16 person hours of processing down to 1-2 per department.

Everyone who directly interacted with the new system loved it. Numerous edge cases that would have been lost in high-level review were caught and integrated from day 1 due to my actually watching people do the job for a day or two per department. The solution has been rock solid (minor maintenance only) for five years.

And I almost lost the job.

The people who sign the checks were furious. The balance of political power between departments were thrown for a loop. One head in particular treated the thing as a near-existential threat. His entire concept of his job revolved around being the authoritative interface for retrieving and maintaining pieces of data that were no longer exclusively under his control. Another flipped out because middle management saw the results as cause to reduce his headcount and budget, and thus importance.

These two departments fought for months, refusing to contribute their shares of budget that were pledged toward modernizing this system.

On a technical and practical level, it was the single best experience I've ever had as a consultant. On a personal and economic level, is was one of the worst. It was some of the hardest money I've ever tried to collect. It was some of the most time and energy I've put into the political and 'sales' side of a job (the part I treat as a necessary evil, but very much evil). The corporation has made out like a bandit in the long run. But I paid the price.

It's simply too easy and financially rewarding to allow a client's political nonsense to screw up every stage of a project. I have less stress, the people who pay me are happier and I bill far more hours.

As with most software, internally developed software included, you don't see better projects more often because the incentives are horribly perverted and stacked against it.

[+] gaius|14 years ago|reply
This is why corporate software like SAP is so bad. The guy who writes the cheques to the vendor doesn't do timesheets or whatever. His secretary does his expenses and his travel and his holidays. He never touches the software apart from to look at the dashboard and the final generated reports (which will be whizzy). He literally doesn't know it's miserable to use, and unless "subordinates satisfaction with corporate apps" is his bonus metric, literally couldn't give a flying fuck even if he did know.
[+] TheCapn|14 years ago|reply
Say what you will about large corporations but at the very least they can get this right. I'm working for a 4,000+ company now and we take these steps very seriously during our Engineering design. Also part of the job is working with vendors (Oracle, HP, others) who send people on sight from around the world to work with us (the client) and properly interview for the right knowledge.

Call me bias, but a lot of smaller companies overlook tried and tested standards. Proper requirement elicitation was documented in IEEE Computer Society SWEBOK prior to 2004 and even that is a summary of important knowledge to Software Engineering profession. Why is it that when a new company comes along with a truly innovative concept they feel they can innovate the rest of the process as well?

[+] SatvikBeri|14 years ago|reply
Part of why I love my current job is because we focus on the actual users of the software and get feedback from them, not the executives.

It made the initial sales much harder, but the results are much stronger and we've gained such a strong reputation that the software almost sells itself.

[+] incongruity|14 years ago|reply
You're exactly right – but you realize, there's a whole group of people -- a whole discipline, in fact, that does exactly what you're talking about, right?

We're designers.

And we do have & run consultancies. Places like IDEO, Frog Design, Adaptive Path, RED, Doblin (Part of the Monitor group now), Gravity Tank, Teague -- and many, many more.

User centered design processes should be backed up by rich user stories, that come from real user experiences. The only way to do that is to go out in the field and get exposure to the who, what, when, why and how of what the users are doing, want to do/need to do and how they use your product/service.

And if you do it right, you can make a much more successful product that sells a lot better while actually doing some good for the users.

Not a bad line of work, IMHO.

[+] grecy|14 years ago|reply
This is exactly how we did process review / analysis at my last company. It was always awesome to uncover the differences between what the stake holders thought the current process was, and what the people actually doing it did.

After that we tried to reconcile the differences and usually made the in-software process a mixture of the two (where possible)

[+] ctdonath|14 years ago|reply
Few seem to realize that source code is but the most thorough "blueprint" of the product. That compilation - to wit construction of the actual product from the blueprint - is nigh unto instant and free means everyone overlooks it as the actual construction process, akin to actually building a bridge from detailed plans (except you get one shot at building a bridge, while you can recompile every few minutes). Ergo, "analysis", at greatest detail, _is_ coding. That we iterate so much comes from the continued newness of the technology and the relative complexity of the products; bridges are well-understood and iterating the design of one is minimal.

To the site's point (or missing thereof), the notion of "don't start coding until the analysis is complete" is a gross misunderstanding that coding IS analysis.

The inanity of reinventing the waterfall model is obvious to HN readers.

[+] tpatke|14 years ago|reply
Meh. This is hardly the most ridiculous thing I have seen on the internet. I am sure this methodology will work sometimes for some clients. Heck, I bet a lot of startups here on HackerNews are using similar methodologies - but without the early usability testing. If nothing else, at least this company are differentiating themselves. Haven't seen a lot of other consultancies get posted up here on HackerNews.

Every project is different. We should try and not be too dogmatic about these things.

[+] haasted|14 years ago|reply
The ridiculous aspect of this page is the quote "We've invented a development process tbat's completely unique in the industry.", after which they describe a process that looks entirely like waterfall. It's an entertaining fallacy.
[+] goldmab|14 years ago|reply
This was posted on HN so that we can make fun of it, and I think we're right to do so. You can be as wishy washy as you like about different situations requiring different processes, but have you ever seen somebody successfully isolate software engineering from coding and put them in sequence?
[+] Zarathust|14 years ago|reply
I agree with you. After a few years in the field, I'm now convinced that it is how most software is made. Even in the "Agile" startups and such, processes are often implemented as waterfall, or large parts of projects comply with the waterfall model.

While it fails sometimes, there are plenty of success stories about the waterfall model, like it or not.

[+] zedshaw|14 years ago|reply
Actually, this is refreshingly honest compared to the "agile" methodologies. Having worked with plenty of supposedly agile consultants I can tell you they basically do waterfall it's just their cascading stupidity starts with code and then wanders around writing unit tests until the client is tapped out. At least this is doing some actual user interface design and usability testing.

Then again, I doubt these guys do this since it's all marketing.

[+] bh42222|14 years ago|reply
The difference between "agile" and "waterfall" isn't that easy to pin down.

Some people think of "agile" as just going through their full waterfall process every month or every two weeks.

Other people insist the core of "agile" is TDD, others claim nonsense, TDD is just as much part of "waterfall", and yet others don't see any point in TDD for their "agile" process.

tl;dr:

It's all bullshit, all the way down.

[+] jameskilton|14 years ago|reply
Really? Claiming to have invented the most well know and also the worst software development process is honest? It's a bold-faced lie written only to get clients.

One can only imagine what actually happens in communication once they have a client. If the marketing is a complete lie, then I can't imagine the company itself can be trusted.

[+] sleight42|14 years ago|reply
Most "agile" consultants you know start coding from day one? If so, I now understand much better why you dump so much on agile.

I had myself a nice little nerd slap fight on twitter earlier today about this post. "Agile" without up front planning and research is just dangerous.

[+] j45|14 years ago|reply
Am I in the minority who uses both agile and waterfall methods?

The long and the short of it for me is this: There's two ways to solve problems. Agile helps immensely when you are figuring out how the solution would work. When you're solving a problem that might be solved in manual processes largely, Waterfall can help a lot, but not alone.

For unknown solutions, agile gives you a lot of iterative benefits.

For known solutions, waterfall with some agile feedback loops gives you incremental benefits.

What's the difference?

Sometimes, in a business, they have a great process already. It's in paper, or multiple systems, but they have their way of doing things that works. I believe it's called their competitive advantage.

Othertimes, a business is facing a problem for the first time, and wonder "how do we solve this". In this case, doing a big upfront design is a waste of time, starting small and staying flexible is most important.

For me, this mindset of doing both is critical, not one or the other at all times. You simply miss out on too much if you don't use agile, and you run around too much if you ignore waterfall when a solution exists.

Waterfall works where it's a known process, like building a house. You can have agile loops in there when building a house and improve it as you go.

When you're trying to build a new building that's never been built before, an iterative, feedback-centric approach like Agile is a lot more beneficial.

If a company focuses on taking something like Waterfall and introducing feedback loops (agile) like this epicenter thing, is it not a bit clearer than the black-box voodoo out there? Maybe it's just me, but I applaud anyone trying to make software easier. It just shouldn't be a dogmatic, or religious dismissal.

0.02.

[+] brd|14 years ago|reply
Its really not quite as bad as it looks at first glance.

Step 2: "we design an interactive prototype" allows them to get the feedback that really makes more agile methods work. You don't need to constantly iterate during development if you iterate properly during prototyping. I certainly wouldn't advocate this method but its not a vanilla waterfall method.

[+] absconditus|14 years ago|reply
If one reads the paper most commonly cited as the source of the waterfall methodology he or she will discover that the author of the paper recommends doing something akin to prototyping before designing the real program. The paper is actually a critique of the process now commonly referred to as waterfall and the author does not recommend using the process as first presented in the critique.
[+] ctdonath|14 years ago|reply
That they insert what amounts to a single early design iteration hardly rescues the inanity of "hey! I sliced bread! this is awesome!"
[+] AndrewDucker|14 years ago|reply
Agreed - this isn't as poisonous as the usual waterfall techniques are.

And frankly, if you're working on a massive project that has strict requirements (either regulatory or functional) then up-front analysis has a lot going for it.

[+] bruinseve|14 years ago|reply
Sadly, I don't think this is a joke. Method as described: "Analysis We don't write a line of code until we know your business as well as the people who keep it running every day. " Method as implemented: "Analysis We never write any code"
[+] davidu|14 years ago|reply
This doesn't look like a joke. Dangerous. Anyone who has done this methodology runs screaming for an exit after a failed project or two.
[+] tintin|14 years ago|reply
Not so fast. This isn't something new or strange at all. We are doing this for years with great success.

But maybe you know this method as these steps (which are the same): Concept -> Functional design -> Graphic design -> Building -> Testing -> Deploy.

Nothing strange about that. Take a look at the IBM Rational Unified Process http://en.wikipedia.org/wiki/IBM_Rational_Unified_Process

I just think this is a hyped site trying to sell there book.

[+] Ronnie76er|14 years ago|reply
Waterfall isn't bad in all circumstances. Lockheed Martin isn't iterating a jet into the side of a mountain 100 times until they get it right.
[+] arctangent|14 years ago|reply
Perhaps not.

But they're probably running a computer model of the jet (and its systems) under various simulated scenarios.

They're also probably building some full-scale mock-ups to test in wind tunnels.

And they also have test pilots to fly things which sometimes never make it into wide scale production.

So, I'd argue that there is some iteration going on there.

[+] pnathan|14 years ago|reply
My understanding of early jet planes and test pilots suggests that they were iterating jets through ejections and near-crash experiences. :-)

In the 1950s, test pilots were being killed at the rate of about one a week[1]

[1]http://en.wikipedia.org/wiki/Test_pilot

[+] TeMPOraL|14 years ago|reply
tl; dr: I think Waterfall vs. Agile religious war is wrong; it's mostly about that you can't hit a moving target without a feedback loop.

That's why I don't think the discussion should really be Waterfall vs. Agile, it should be about feedback loops in the process. There are circumstances in e.g. military or medical projects where you absolutely, positively, need to work to an approved spec with time & budget analysis, etc.; it seems to be common outside of software (I don't see much of agile-built bridges or jetplanes). There are those parts of the process that can be predicted (and have their cost estimated) relatively well - those you plan in advance (aka. waterfall). There are others, where you only have a somewhat vague and changing final goal - there your only real solution is a process with a tight feedback loop (aka. agile).

Now you can look at software process on different levels - what might look like waterfall from the high level may be in fact a collection of very agile sub-processes. Which may contain waterfally sub-levels (like, isn't a single iteration of TDD red-green-refactor cycle a bit waterfally? ;). So I think instead of thinking about "agile vs. waterfall" we should consider what feedback loops we need where, and how tight they should be.

[+] johnx123-up|14 years ago|reply
Agreed. Waterfall is usually better when you do client projects. Agile would be better when you do your own product, at the same time Agile may lead to cost overrun.
[+] dylancm|14 years ago|reply
have you _seen_ the US's defense budget?
[+] shotgun|14 years ago|reply
I sent their Chief Architect a linkedin message to make him aware of this thread. Hopefully we'll hear from him.
[+] tpimental|14 years ago|reply
Maybe they aren't aware of Waterfall. Pete Campbell on Mad Men had a great quote; "You know what? I have good ideas. In fact, I used to carry around a notebook and a pen, just to keep track. Direct marketing? I thought of that. It turned out it already existed, but I arrived at it independently."
[+] joshsusser|14 years ago|reply
If they are such experts, how would they not be aware of waterfall? Either they are idiots who have no clue about software development methodology, or they are just lying (either to their customers or themselves). It's not like it's hard to find a reference to waterfall if you bother to look.
[+] bernardes|14 years ago|reply
"Unlike a traditional development process, ours establishes all the system's requirements before a line of code is written."

This is freakin' unbelievable. ROFL

[+] blueprint|14 years ago|reply
Might explain why the "Code" part of their process seems so lacking in substantial details!
[+] bmccormack|14 years ago|reply
The site looks nice. Whether or not their methods are the best, I've worked for quite a few folks who would find their presentation very appealing. Because they've been burned by companies who wrote code for them that didn't meet their expectations, they're excited about a company that will actually listen to their expectations thoroughly before the process begins.
[+] fypomg|14 years ago|reply
We've invented the mobile un-friendly site! We are industry pioneers!

How are we missing the -

Paperback + Consultation for $250 Complete 45 page book (45 pages?) Ships within 2 days 1 hour 1-on-1 consultation Expert implementation advice

They sound like experts to me. 37signals book Rework only has 288 pages $11. Page count doesn't mean everything, but clearly 37sig is stuffed with fluff. All you need is 45 to change to the game up.

I'm a non-profit and small business owner, I'm sold!

[+] buff-a|14 years ago|reply
In an ideal world, Waterfall will lead to a worse product than an iterative one. We don't live in the real world, and I expect these guys deal with clients who regularly fall into the -from-hell[1] category. I would bet that many people posting here aren't running consultancies and don't have experience with such clients (or any clients).

In such a situation, it is in fact entirely rational to develop a lightweight, low cost UI that a non-technical person can commit to, i.e. sign a contract. The developer can then go off and implement it with a very clear legal case if the client then chooses not to pay because "its not what we wanted".

Its not what I do, and I know that many here take a more involved approach to their clients, but its undeniable that it is a successful business model, and in some cases I believe it can produce some result where otherwise there might be none. Equally I'm sure it produces results that are ultimately not used, but where the company still gets paid.

[1] http://clientsfromhell.net/

[+] fijal|14 years ago|reply
Did you notice how men in suits are left and right but not in the middle?
[+] tryke|14 years ago|reply
I wondered who the man with the clipboard was, micro-managing every step of the process.
[+] reledi|14 years ago|reply
My favourite part was how the people appear to hate their jobs. Only in the last panel (Deployment) do you see anyone from the team smiling.
[+] wingo|14 years ago|reply
My favorite was the mud-robot dominated by a timepiece.
[+] manuscreationis|14 years ago|reply
Doesn't look as terrible as "true" waterfall, but I think this is just marketing fluff to win people over by telling them about your rock-solid practices.

If they have an arrow that looped from Beta Testing back into Interface Design/Usability/Engineering/Coding, you'd probably end up with what most shops do anyways, speaking in broad strokes.

[+] peteforde|14 years ago|reply
My founding business partner Ryan McMinn spoke at an open source conference in Toronto a few years ago. In the talk he explained how and why we built Unspace the way that we did.

http://www.youtube.com/watch?v=lIQIZ0NIkxk

He talks extensively about the need to work directly with the end users of the system, instead of the management. The realization that specifications are usually nothing more than mutually assured destruction.

Pretty much the only thing that's changed in five years is that the scale of our company has grown, and now we do indeed have contracts with our clients to protect us from bad things.

Anyhow, I highly recommend the video if you're looking for an in-the-trenches perspective.

[+] willurd|14 years ago|reply
I actually know Clark Valberg, the founder of Epicenter Consulting, and did some work with him a few years back; he's a great guy. You guys can criticize him all you want, but he actually cares.

We should direct our efforts towards the bloodsuckers, not the people giving blood.

[+] rickmb|14 years ago|reply
We you say "he cares" I presume you mean "cares about slick marketing to clueless clients". Because Epicenter obviously doesn't give a damn about either the truth or software engineering.

I'm sorry, but the people who claim the one true method is keeping the programmers locked in the basement without real world input or feedback are the bloodsuckers.