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.