5 ms·
Asshole driven development
- RyanMcGreal 17y agoIs there any business domain for which this isn't true?
- pierrefar 17y agoAn oldie but for some reason seems ever more relevant today.
- sandrogerbini 17y agoother things may change, but there will always be an asshole to contend with.
- catfish 17y agoThat font was hard to read
- vmmenon 17y agoThere's also BDD [Billing Driven Development].
- clistctrl 17y agoMy personal favorite not mentioned in the article is HDD (Hate Driven Development) When the only force accelerating progress on a project is your pure hate for everything the project represents.
- brianto2010 17y agoThen what is the incentive for working? Maybe wanting to get the project over? More importantly, what is the incentive for staying in the project (besides pay)?
- stilist 17y agoNot having to seek new employment might be a motivation.
- clistctrl 17y agoYour guess is exactly right, to get the project over with. Though I had thought about leaving several times, the other projects I've worked on are not so bad. Plus the company is fantastic.
- brianto2010 17y agoIn that case, it's not exactly 'hate'. You seem to want to stick with your company because the value of the company as a whole is greater than greater than the opportunity cost of leaving it. You hate a given project, but you want to get it over with because there is a better project (possibly?) waiting for you after you're done. In that case, it might be called 'Hope Driven Development' as your hope of getting good/not-bad projects exceeds the opportunity cost of leaving the company, and thus accelerates your development. ...or DDD -- 'Dream Driven Development' ;*)
- edw519 17y agoGreat post. A few more, off the top of my head: Garbage Perpetuation Development (GPD) - You can't believe how bad the existing code base is, but you're afraid to open a can of worms, so everything you add to it is written in the same style. For the rest of your life, you can say, "It was like that when I got here." Mansion in the Quicksand Development (MQD) - The opposite of Garbage Perpetuation Development, you are so shocked by the poor quality of the existing code that you vow that you'd rather swallow razor blades that code the same way. So you write a tight beautiful refactored masterpiece that will crash as soon as the underlying database loses its integrity (later tonight). Defer to the Framework Development (DFD) - You're not sure how to tackle quite a few critical design/architecture issues, so you convince your boss to adopt the framework du jour and decide to "let it handle it". As soon as someone needs something that the framework doesn't handle, you blame management for making such a myoptic technology decision and say that it can't be done. You keep your job and get a new boss every two years. Not Invented Here Development (NIHD) - The opposite of Defer to the Framework Development, as soon as you discover something the the current framework can't handle, you abandon it and write all you own routines. Everything now works exactly as you want it, but with all the additional code to maintain, your backlog has just grown from 6 months to 2 years. Whoever Screams Loudest Development (WSLD) - Just as the name implies, you work for the customer who screams the loudest. If anyone screams louder, you drop everything and work on their project. F-Bomb Development (FBD) - Whenever everyone is screaming so loud you can't hear anything, you work on the project of the customer who drops the most F Bombs. Start Over Development (SOD) - A critical requirement cannot be supported by the current architecture, so you decide to rewrite it. You spend 3 months designing the new architecture and then 6 months writing the new code. You never finish because you're out of business. Now you know what "critical" means. Workaround Development (WAD) - The opposite of Start Over Development, you can make the current system do anything. You are so clever with your extra algorithms, functions, and data bases. Even with all your great variable naming and comments, six months later, you have no idea how anything works. Code Generation Development (CGD) - You're so tired of writing the same code over and over, that you write a code generator to do it for you. What used to take a week only takes a few hours with the new tool. But you're no further ahead because 80% of your time is needed to enhance and maintain the code generator. Infinite Prototyping Development (IPD) - Your customers and users are unable to describe or document their requirements. So you spend lots of time with them understanding their business and when you're ready, you throw together a prototype. They love it, but it needs just a few changes. You keep making changes, but it always needs more. It stays a prototype forever. When the app crashes because of security or scaling issues, you're off the hook because, "It's only a prototype." Infinite Analysis Development (IAD) - You never have to do anything because you never have specs. Woo hoo!
- geebee 17y agoBASD: Bait and Switch Development: You get buy-in from a co-worker for a cutting-edge, poorly documented, sexy but controversial technical approach by promising to do the programming yourself. Co-worker doesn't raise the kind of objections he'd normally raise if it were his project and his problem, because he doesn't want to tell you how to do your own job ("bait"). Then, when it becomes impossible to meet the deadline, you convince management that you're badly needed in a different area, so they assign your coworker to "finish" off the project, except now he has to work within the straightjacket he always suspected you were creating for yourself ("switch"). You move on to a new and interesting technology. Some call them "Bait and Switch Developers", but in the industry, they're usually just called "Enterprise Architects."
- Hates_ 17y agoIt's December and no mention of Christmas Driven Design (CDD)? Write your system how you wished it worked and fitted together, regardless of whether your wish of it somehow working comes true or not when you run it.
- F_J_H 17y agore: "Asshole Driven Development" If you're in a design meeting throwing out a bunch of great ideas while helping others understand why their ideas won't work, and you can't spot the Asshole, then chances are...
- hga 17y agoIndeed, especially in the long run when the others find out the hard way that you were right. The most interesting thing I read in the Antipatterns book was the author's claim that only 1/5 of programmers "get" abstraction and therefore "democratic" project management processes tend to result in very poor architectures.
- DanielBMarkham 17y agoI do agile coaching, and this is awesome! Thanks! It's about time we got honest about how these things really work.
- tamersalama 17y agoReminds me of my own - back in 2006 - http://tamersalama.com/2006/08/16/the-dd-way/ http://tamersalama.com/2006/08/16/the-dd-way/
- j_baker 17y agoNobody's pointed out the most obvious one: Fireman Development (FD) - You are constantly in crisis mode and thus are only motivated to do something when someone sends you an email containing the words "CRITICAL". And yes, it has to be in all caps.
- gcheong 17y agoHmm I wonder if there is a "Backdraft Development" that occurs where someone purposely starts a fire so they can then come in and save the day.
- bmj 17y agoFD also has an effect on other projects. We just released not one, but two new device platforms for our software. There are other, interesting projects on the docket, but it's rare to get more than one day of interrupted work on them before getting another "ZOMG it's broken!" emails about the other projects.
- Deestan 17y agoQuite a lot more here: http://weblogs.java.net/blog/2008/01/17/crystal-methodology http://weblogs.java.net/blog/2008/01/17/crystal-methodology
- Calamitous 17y agoDon't forget Shininess Driven Development (SDD) - Driven by the need to use the newest, shiniest language/framework/library available, leading to a disastrous mishmash of inappropriate technologies and half-implemented pipe dreams.
- billswift 17y agoCYAEngineering is just good sense in some places, though I'd rather say, "When the shit hits the fan, make sure you're not standing in front of it." Strategic Helplessness Development - where someone can't do what they don't want to.
- igorgue 17y agoADD at day job for sure!