Asshole-driven development

[Since this was originally posted commenters have added 100+ addition methods – see the comments below. There’s more commentary on reddit]

The software industry might be the world’s greatest breeding ground for new systems of management. From Agile, to Extreme Programming , to Test Driven Development (TDD), the acronyms and frameworks keep piling up. Why?

Some say it’s immaturity: that software is still a young industry and all the change is the path to some true fundamentals. Others say it’s because software people like making things up and can’t help themselves. Well I say this: if we’re going to have dozens of models we may as well have some that are honest, however cynical, to what’s really going on much of the time. There is a happy list of these I’m sure, but this is the cynical one.

Asshole-Driven development (ADD) – Any team where the biggest jerk makes all the big decisions is asshole driven development. All wisdom, logic or process goes out the window when Mr. Asshole is in the room, doing whatever idiotic, selfish thing he thinks is best. There may rules and processes, but Mr. A breaks them and people follow anyway.

Cognitive Dissonance development (CDD)
– In any organization where there are two or more divergent beliefs on how software should be made. The tension between those beliefs, as it’s fought out in various meetings and individual decisions by players on both sides, defines the project more than any individual belief itself.

Cover Your Ass Engineering (CYAE) – The driving force behind most individual efforts is to make sure than when the shit hits the fan, they are not to blame.

Development By Denial (DBD) – Everybody pretends there is a method for what’s being done, and that things are going ok, when in reality, things are a mess and the process is on the floor. The worse things get, the more people depend on their denial of what’s really happening, or their isolation in their own small part of the project, to survive.

Get Me Promoted Methodology (GMPM) – People write code and design things to increase their visibility, satisfy their boss’s whims, and accelerate their path to a raise or the corner office no matter how far outside of stated goals their efforts go. This includes allowing disasters to happen so people can be heroes, writing hacks that look great in the short term but crumble after the individual has moved on, and focusing more on the surface of work than its value.

I’m sure you’ve seen other unspoken methods at work – what are they?

Please add to the over 200 reader suggested methods in the comments.

561 Responses to “Asshole-driven development”

  1. Zachary Kessin

    RDD – Resume driven development – When you choose tech because it will look good on your Resume

    SD – Salmon Development – Swim upstream for weeks just to get F*cked
    Mushroom Development – Keep them in the dark and feed them Sh*t

    1. Lex

      Gee, this reminds me of FOSS projects, like, oh; (Linux kernel development) [Salmon Development]

  2. Lex

    I had a good chuckle when I read this post, I’ve (unfortunately) been in almost every scenario of development teams listed up above. DBD is the only one I haven’t professionally been involved with, thankfully.

    Great article!

  3. Martin

    This is so spot on it deserves to be printed and nailed to the wall for everyone to be seen.

  4. Grant Rosenquist

    POTA : Pulled Out Of Thin Air – who knows where that idea came from, but its the one we ended up doing….

  5. Scott Berkun

    Budget Oriented Development by Turatti:

    Not “We want that, how much does it cost?”
    Instead “What can we realistically build with the available budget?”
    Set the right questions to avoid delusional thinking.

  6. harry

    I had a good chuckle when I read this post, I’ve (unfortunately) been in almost every scenario of development teams listed up above.

  7. john michael

    This entails specs loosely given by someone who doesn’t really know what they want. Typically such specs are given by middle management types who are often stubborn to admit they have no idea how you do what you do. Ambiguously phrased descriptions are used to describe a solution to a problem that their boss is pressuring them to solve.



Leave a Reply

* Required