(SOA) Service Oriented Architecture, (MDA) Model Driven Architecture,
(MDE) Model Driven Engineering, (MDD) Model Driven Development,
(DDD) Domain Driven Design, (EDA) Event Driven Architecture,
(TDD) Test Driven Development. (FDD) Feature Driven Development,
(EDP) Event Driven Programming, (BDD) Behavior Driven Development,
(AOP) Aspect Oriented Programming, (COP) Concept-oriented programming,
(AOP) Attribute Oriented Programming, (OOP) Object Oriented Programming,
(COP) Component Oriented Programming, (SOP) Subject Oriented Programming,
(POP) Process Oriented Programming, (FDP) Flow Driven Programming,
(CDD) Contract Driven Development, (RDD) Resume Driven Development,
and (ADD) Asshole Driven Development.
Seriously, people! We are being driven and oriented to within inches of our lives.
Using the terms Oriented and Driven is starting to just be irritating. The simple truth is these things do not drive us. For the most part, these terms describe tools, patterns, and techniques we wield to solve the puzzles of our profession. None of them stand alone as their names imply, but are instead independently valuable techniques of understanding software development.
Try this; when you find yourself about to use one of these terms to describe a path you will be taking on a project, find another way to express your intent. For example, instead of saying to your team, “Let’s use TDD in this library,” try rolling your logic up one level. Try “As we develop this new library, lets write tests before we write code and see what happens.”
See the difference? The spirit is there and remains true but the implication that you will be using a particular technique or tool is not a forgone conclusion.
There is value in learning what each of these TLAs actually means and in understanding the reason each is valuable. Each has value and is a dimension along which you may measure your latest professional endeavor, but strict adherence to one at the cost of others will bite you in the buhonkus.
Lastly, a word of caution. Before accepting any sort of *DA, *DP, or *DD is real, take a hard look at it’s origin and inspect it for marketing smell. Yes, I mean you, Search Driven Development.
Sir, are you suggesting that the honorable Phillip Haack was suggesting more that just cut & paste from some random code listing as a development methodology?
The nerve of some people…..