Joke Driven Development

We have TDD (Test Driven Development), BDD (Behavior Driven Development), as well as a whole slew of other methodologies designated as belonging to the Driven Development ™ family. Heck, there’s even Fear Driven Development! I now propose a few new, and completely, irreverent methodologies that may or may not already exist (so advance apologies to anyone who actually has a serious methodology out there). Here goes, in no particular order:

  1. Abuse Driven Development – the developers are verbally abused until they produce the system that the users want, or management wants, whichever yells the loudest. Alternately, the developer or development team abuses the users or management, whichever they hate the most, until they produce the system they think everyone should want.
  2. Pizza Driven Development – management keeps the development team going 24/7 and simply throws a few pizzas in their general direction as an incentive to keep going.
  3. Beer Driven Development – explains a lot of development, actually. Often done in conjunction with Pizza Driven Development.
  4. Fantasy Driven Development – the developers dream of rewriting the system, but like most fantasies, it’s never going to happen.
  5. Wish Driven Development – the developers wish the users would state exactly what they want. The users wish the developers would just build exactly what they want.
  6. Clock Driven Development – the developer will do anything to get the system ready by quitting time.
  7. Anarchist Driven Development – the coder has no sense of order whatsoever.
  8. Rear Driven Development – the developer gets his or her rear kicked repeatedly until the software is done.
  9. Analyst Driven Development – the project is so hopeless the developers need therapy to get through it.
  10. Rage Driven Development – the developers are so angry about what the previous developers did, they rewrite the system.
  11. Fault Driven Development – whoever gets blamed for a problem has to develop the solution.
  12. Fight Driven Development – whoever loses the fight has to develop the system.
  13. Trump Driven Development – whoever has the more important boss wins.
  14. Hype Driven development – any project that is being pushed by the marketing department.
  15. Litigation Driven Development – any project initiated by the legal department, whether there’s an active lawsuit involved, or not.
  16. Aspirin Driven Development – the project is bad enough that you start off each day swallowing a couple of aspirin (after swallowing your pride, of course).
  17. Epiphany Driven Development – just after checking your code in, you have an epiphany and realize you need to do it over.
  18. Acronym Driven Development – features keep piling on as management and developers alike start arguing for all the latest technologies, even when they’re incompatible or overlap each other.
  19. Whine Driven Development – you code furiously just so you don’t have to listen to your boss or the users whine one more time about the system.
  20. Tantrum Driven Development – similar to the above, but actual crying and stamping of feet may be part of the daily routine.
  21. Bully Driven Development – similar to the last two, except yelling and baseball bats may be involved.
  22. Secrecy Driven Development – the side project that you really spend most of your time on.
  23. Feline Driven Development – while your head is turned, your cat walks all over your keyboard and turns out to be a better coder than you.
  24. Bloat Driven Development – every time a user has a brain twitch, a new feature is added to the project.
  25. Golf Driven Development – the boss got an idea from one of his/her golf buddies. He/she thinks it’s cute to yell “Fore” before giving you the bad news.
  26. Funeral Driven Development – fear of your impending doom at the hands of the users drives you forward.
  27. Shame Driven Development – you gripe and moan about some piece of code you’re looking at, then realize you wrote it three days ago. You rewrite it and hope no one notices. Later that day, you find a printout of the original code on the bulletin board, annotated with all kinds of rude comments.
  28. Easter Driven Development – you spend more time on the Easter eggs than on actual functionality.
  29. Failure Driven Development – it can’t possibly fail again, right?
  30. Buzzword Driven Development – similar to Acronym Driven Development, but this involves words you boss can actually pronounce, and sometimes even spell.
  31. Bogie Man Driven Development – more effort is spent on appeasing some vague and mysterious bogie man’s practices and procedures (real or imagined) than actual useful software.
  32. Sci-Fi Driven Development – your code reflects your taste in movies, books, and comics all too well.
  33. Permission Driven Development – the organization requires permission to do almost everything. Eventually, someone gets the idea to require permission just to turn on your computer. They decide to implement it as an internally accessible web form, complete with management approval workflow and email notifications. Nobody sees the inherent problem in this, and the company goes under.
  34. Caffeine Driven Development – coffee, tea, soft drinks, etc., and all your coding is basically done between pee breaks.
  35. Vaporware Driven Development – this is a project initiated by the marketing department. It’s always 3 months from deployment.
  36. Demo Driven Development – your manager insists on having you do one demo after another of the wonderful features in your system. Unfortunately, you never have time to actually implement any of the features.
  37. Heisenberg Driven Development – you can either get all of the features implemented, or all of the bugs fixed, but not both.
  38. Framework Driven Development – your team never saw a framework they didn’t love. New developers need at least two years just to get up to speed on all the frameworks. By that time, the frameworks have all turned over two new versions, and the developers have to keep starting over. Actual feature development on the project comes to a standstill.
  39. Frankenstein Driven Development – the entire system is component based, but most of the components don’t work very well together.
  40. Manual Driven Development (a.k.a. Documentation Driven Development) – More time is spent documenting the system than actually developing the system. You end up with a bookcase full of documentation. Ironically, the system is no more complicated than a tic-tack-toe game.
  41. Administrivia Driven Development – your team spends more time filling out forms with all kinds of details that only one person in the entire company actually cares about, and that person isn’t even in management.
  42. Revenge Driven Development – you code furiously to build a better system than your arch enemy in the company, based on a snide remark he/she may or may not have made at your expense.
  43. Pig Slop Driven Development – your coding standards are non-existent. The maintenance programmers who inherit your code want to kill you.
  44. Pun Driven Development – your code is heavily laced with intricate puns. The maintenance programmers who inherit your code want to kill themselves.
  45. Riddler Driven Development – you inherit a code base that is full of code that resembles the plot line from the original Batman TV series.
  46. Music Driven Development – You better use C-Sharp, or B-Flat Smile