Semantic Werks

Thoughts on people, machines and systems.

Are we missing something?

with 4 comments

As part of my research, I try to keep up with the trends and tools in software development (it has nothing to do with procrastination, either).

I’m beginning to wonder if maybe I’m missing a large chunk of people in my reading. According to the blogs and sites I follow, agile is far superior to other methodologies, Ruby and Python are orders of magnitude more productive, REST architectures are preferred, and, importantly for me in particular, requirements are best understood as user stories, and not as lists of MUST and SHOULD items. Let’s call this the agile world.

But I feel like there’s this other world, the world I hear about when I read academic papers, or read IBM/Oracle/MSFT blogs, or hear about work at large companies. This is the world of J2EE, of COBOL, of UML models, of reams of paper documentation, of Rational Rose, of ESB, of SOA, of WS-*. This, for lack of a better term, is the waterfall world.

Is it just me, or is this waterfall world not getting the message that people like David Anderson and Martin Fowler are spreading? Is there a reason for this? Frequently argued is the point that these systems are orders of magnitude more complex, older, and larger, and therefore ‘agile’ methodologies just won’t work. And true, some of the agile proponents are tiresome ideologues who talk but don’t listen.

So while it is appealing to self-identify as the little boy pointing out the emperor’s lack of apparel, maybe I’m out of touch. Maybe there really is a need for complex modeling initiatives, for up-front requirements documentation. I’m not talking about safety-critical software either — that’s a whole different kettle of fish, and a straw-man for the purposes of this discussion. No, I’m specifically referring to large corporate IT departments, process control software, line automation, etc.

I guess I just don’t know how to experience the waterfall world without being involved in it first-hand. In the agile world, there is hype aplenty — hype sells books and seminars and certifications — but , at the risk of sounding repetitive, experience reports and anecdote just won’t cut it (for either side). It’s extraordinarily difficult in the software community to get at any objective source of information — except surveys, typically.

So who’s up for a PhD establishing the benefits of agile and its ecosystem over waterfall and its suite of tools? Can such a thing even be established?

Written by Neil

2009 July 1 at 16:10

Posted in Uncategorized

Tagged with , ,

4 Responses

Subscribe to comments with RSS.

  1. Search for tool adoption.

    Process adoption has the same problems.

    anonymous

    2009 July 1 at 22:14

  2. I don’t think this can be established without a detailed analysis of the context of the organization. It is easy to argue that either agile or sturdy (as I prefer to call it) approaches are better for some situation or other; I don’t think we even need more empirical evidence of this by now. The question becomes what should my organization do, given its particular context, and this is still a very open research question.

    Also note: we shouldn’t confuse the sturdy, large enterprise projects that often use J2EE, SOA, and so on, with the stodgy version of waterfall that is still widespread in academia, but nowhere in industry.

    Jorge

    2009 July 2 at 07:54

  3. I don’t think it is a fair comparison. Your examples of large enterprisey things are designed in a certain way for good reasons. J2EE is big because it needs to satisfy every use case. They ask, “What technologies do we need to solve all these problems?” The agile world comes from the opposite direction. They ask, “What problems can we solve with these elegant, simple technologies?” Then they develop new simple technologies that fit nicely on that curve.

    As for processes, I think that canned processes have limited utility when applied to large projects. Agile needs you to have a “customer”who runs acceptance tests. A large project has dozens of different customer types. All the iterative processes fundamentally rely on short iterations. This becomes nonsensical when individual “features” are way larger than any reasonable iteration speed.

    As for a PhD to establish the benefits of the agile world, I think a better question would be to ask, “How do all these (smart) people NOT using these modern fancy tools manage to succeed nonetheless?”

    Aran Donohue

    2009 July 6 at 21:01

  4. Aran, I guess my question boils down to whether one needs Big Design Up-Front (and if so, when). My bias is to say that it is almost never necessary.

    Neil

    2009 July 7 at 13:07


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 384 other followers