Waterfall, Agile, Teen Sex and Category Errors

Cookie Monster

The first thing I laid eyes on this a.m. was a hilarious tweet from Jose Ramon Calzada, a Mexican software developer: "Agile is like teen sex: Everyone wants to do it, many say they're doing it, only some actually are, and very few are doing it right."

Seeing that Calzada had as yet only one follower on twitter (he now has at least two), I visited his blog and ended up reading all about what disappointed him about his Computer Science degree:  "Unfortunately, college ended up being, mostly, a dreadful experience.
It became clear to me that what I thought was a degree in Computer
Science was actually a mutant hybrid between Software Engineering and
Project Administration gone wrong." His college sought to turn out "People who will code for a while, out of need, but whose real purpose
in life is management. Our future wasn’t that of a software developer,
we were supposed to run consulting firms and manage multi-million
dollar contracts, writing code was below us."

What Calzada is getting at is, I think, a tremendous fallacy that lies at the root of the entire problem with software development models like Waterfall: the category error that treats the writing of code as a low-level mechanical process, rather than an ideational one, a matter of mere execution rather than creation.

A category error, as described by the philosopher Gilbert Ryle, occurs when you group something with the wrong class of phenomena. Ryle coined the concept of category error to refute Cartesian Dualism, whose error,
according to Ryle, lies in the presumption that mind and body are
"terms of the same logical type." The same idea is taught on Sesame Street to the tune of "one of these things is not like the other." In the set "cat, dog, bird, conclusion," the inclusion of "conclusion" is a category error.

Another common example of a category error is "library, dorm, commons, university." The inclusion of university on a par with the buildings in which the university is located on the physical plane is a category error. The university is more than a physical place, it is an institution, which includes both physical and ideational components. A university is founded and built on a physical plane, but it is embodied and inhabited on a notional plane.

The category error in software is to treat is to treat software like a building, and not like a university. The academic environment Calzada describes makes a category error when it perscribes the writing of code as a low-level manufacturing function belonging to the execution phase of an explicit process. This presupposes that code is rote, that design and process are separate, but even more critically, it presupposes that software is a building.

What would the process look like if we decided to treat software like a university instead of like a building? We'd need buildings, professors, students, a curriculum, something called school spirit, and of course a little bit of teen sex. Sounds a bit like an Agile project!

Share it!

4 thoughts on “Waterfall, Agile, Teen Sex and Category Errors

  1. Chris Sims

    “Agile is like teen sex: Everyone wants to do it, many say they’re doing it, only some actually are, and very few are doing it right.”
    This brings two thoughts to my mind:
    1. Our blog is going to disappoint a whole new group of readers who found us via Google.
    2. The point, of sex or agile development, isn’t to ‘do it right’, but rather to do it well. It’s a subtle difference, but it makes all the difference.
    At lunch yesterday, Gregory Balestrero (CEO of the Project Management Institute) and I talked about how PMPs that focus on ‘doing projects the right way’ have given PMI a bad reputation in some circles. Similarly, CSMs who see their role as getting teams to do Scrum ‘right’ can do more harm than good.
    I’m using ‘right’ to mean ‘The One True Way’, something that can be memorized and then repeated. I use ‘well’ to mean thoughtfully and appropriately applying values, principles, and practices to help a team achieve their goals.
    Cheers,
    Chris

    Reply
  2. Alice Bachini-Smith

    That’s very interesting. If coding is like architecture, designing a university is very different than designing a building- it goes beyond architecture into understanding learning- as big a field as exists.

    Reply
  3. Fiona Charles

    Interesting post on the whole, but it exhibits another kind of logical error. Even accepting the implicit assumption: “Everything Agile is good; everything waterfall is bad”, it really doesn’t make sense to turn that around and say “everything bad is waterfall”.
    The notion that programming is a low-level process may have coincided chronologically with waterfall’s heyday, but it was/is not fundamental to waterfall. That kind of factory thinking comes out of the software engineering movement, where repeatability is a primary value. The Agile movement didn’t originate the idea that developing software is a creative process. Lots of people were thinking and and developing that way decades before Agile was thought of.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *