To help fellow readers and to make a bit of humour on the number of methodologies which are growing, I made a research on all the techniques that shares the last part of the name.
Here is the list:
- TDD - Test-driven Development is a development technique based on prewritten test case and short coding iterations (5 minutes). The mantra of TDD is red-green-refactor, where red means that a test fails and green that it passes.
- BDD - Behavior Driven Development is a response to TDD which involves the definition of scenarios and tests involving different business contexts and units. The mantra of BDD is given-when-then.
- FDD - Feature Driven Development is the typical agile approach: develop some features at the time, in incremental steps. An iteration is the basic unit of time.
- PDD - Process Driven Development is a methodology for constructing non-trivial custom software applications by analyzing the business processes in which they will be used.
- DDD - Domain-Driven Design merits a mention although it is not a type of Development. The focus of this methodology is to not worry about the infrastructure layer which comprehends persistence, authenthication, etc. but to develop a powerful Domain Model which has no dependency on frameworks or libraries.
- ADD - Asshole Driven Development: a methodology where the biggest jerk makes all the big decisions.
- RDD - Resume Driven Development: a situation where programmers wanted to use tools, techniques, or technology to improve their resume instead of solving the customer’s problems.
- FDD - Fear Driven Development: there are different definitions of this anti-pattern, but I prefer when you have an amount of LegacyCode and maintaining the code is hard because you don't know what unintended effects your changes have.
CDD - Consultant/Contractor Driven Development. A temporary worker is whirled in, rapidly forces his personal solution-for-everything into the problem, and leaves a cloud of confusion in his wake as the organization begins to realize that now nobody knows how to manage or customize the work.
ReplyDeleteYou missed Responsibility Driven Design
ReplyDeleteThanks for the additions. :)
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteHDD - Hate Driven Development. When you come to hate working on something so much that it inspires a surge of productivity that leads to completion. Most projects that involve this methodology include a procrastination phase.
ReplyDeleteAs coined by Rafe Colburn: http://rc3.org/2009/07/14/hate-driven-development/
I had absolutely no idea that that was the meaning of ADD, lol! Good one!
ReplyDeleteHDD is also Hope Driven Development, which is where You write and hope Your software is working (somehow contrary to TDD).
ReplyDeleteand also
DDD - Delete Driven Development, where You delete parts of code and test if it still works ;)