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?
Update: There are 200+ more in the comments and there is additional commentary here.
405 thoughts on “Asshole driven development”
Pingback: Contractor or Consultant? « Technical Intuition
BRILLIANT! Most of these are easy to understand although they are an unpleasant reality.
ADD is cause by by an under-qualified individual in power and in fear of competition for their job and so this is the only way to be the hero.
CDD happens when an ADD hires someone only to find out that the other person is smarter, faster, more well read, however, ADD-man is still ADD-man.
CYAE is also an ADD. In this case ADD’s boss usually make a hiring decision that ADD does not approve of. Then ADD goes into CYA mode and will sometimes go into get the other guy fired mode.
DBD is also attributed to ADD-man. See ADD-man has read a few articles and magazines but he has no real experience. So he uses the words but does not really know what it’s supposed to do.
GMPM, yikes, another ADD-man. This guy just wants to be the hero. He takes 2 months to fill a position that has been vacant for 6 months. The candidate is usually a slug and will eventually be fired or asked to clean the bathrooms.
ADD-man is everywhere.
Pingback: Asshole driven development – eine zynische Betrachtung neuer Managementsysteme « Unlocking Potential
Oh and WDD ( Wifi Driven Development) where the project must have wifi doing something, regardless of the requirements or goals of the project?
Pingback: How to deal with jerk programmers « Scott Berkun
iLOVE it (ADD) Great article and funny as hell
There might also be a DBD variation when there’s a prominent object to point fingers at and tell “they’re SOOO wrong” implying one is perfectly ok… when one is actually even worse. Probably a DDD (Development by Distributed Denial) eh?
Pingback: How to know if you’re a bad web developer | Ross Tanner
Pingback: “Deadline Über Alles!” Software Engineering | jasonkratz.com
Pingback: In which everything old is new again « Ry's Blog
BJD: Bon Jovi Development….Standards? Puh. Communication with your team? Puh. What the business wants?! Puh. “I’m a Cowboy! On a steel horse I ride! I’m wanted (wanted) DEAD or Alive…..”
Pingback: A$$hole Driven Development and Other Anti-Patterns | Thoughts on the World
Pingback: My starred Google Reader items about PL research and other things | A Programmers Blog with Extra Bit of Creativity
Pingback: My starred Google Reader items about PL research and other things | A Programmers Blog with Extra Bit of Creativity
Already Late Development (ALD) – the project is already overdue, everybody is working twice as fast and twice as faulty, bugs get piled up, new deadline is not met again, the Customer wants new functionality for free because you have not deelivered in time, new deadline is not met again…and so on, it becomes Leave That Do That, Operation Death Star and Never Ending Story Development altogether.
My current situation – Demo Driven Development (DDD or D3). When a feature is designed with the prime use case being “It’ll look good in a demo!”
Thanks. Always nice when someone points out the emperor’s lack of clothes. In the 80′s I worked at a company where the “head programmer” had stickers on stuff saying “In God We Trust, Everything Else We Code Review”. The funny thing was, we never did Code Reviews or anything close, at that company or any others I’ve worked at.
A corallary to the ADD is the SSDD: Stockholm Syndrome Driven Development. This is where the A in ADD gets everyone so scared that they are really hostages and eventually just goes along with whatever the A is saying.
Love it! Great stuff! ADD and CYAE are my favorites lol
Maybe you should edit the webpage name Asshole driven development Scott Berkun to something more generic for your content you create. I enjoyed the blog post yet.
The tech industry is full of dead pigs who haven’t realised they’re dead yet.
Can’t believe I’m reading a blog from 3 years ago but I can’t stop reading it! I don’t even work in this field yet relate to 95% of the acronyms. Amazing
great post
could you say what is the right development method which you follow.It would be helpful for all readers.
Pingback: How to Avoid Being the Asshole Architect | Lessons of Failure
Pingback: 3 Top Ways to Lose Your Best Security People « Impacta Blog
Pingback: TapaGeuR » ITGIF – “IT-God” It’s Friday #16
Pingback: Weekend Reading: The Heat Wave Edition | Invest It Wisely
What about YJDUMGD (You Just Don’t Understand My Genius Development)