Tuesday, August 16, 2011

Is DRY a little wet? Part 1

DRY is a principle articulated by Agile practitioners (IIRC pragmatic programmers Dave Thomas and Andy Hunt are credited with coining and popularizing the term), which is supposedly often misapplied. Don't Repeat Yourself is the acronym, and the principle is stated as:

Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

The supposed fallacy that gives rise to the misapplication of DRY is being too narrowly focused upon one particular aspect of the system, commonly a project's source code base. Single-sourcing is the objective, not code reduction.

Now, kudos to the pragmatic programmers, but even more to all those technical writers who worked on single sourcing production processes, and the set-theoreticians who gave us relational normal form practices. If these other practitioners explored single sourcing and orthogonality for decades prior, the development community should be wary about just why it is they themselves as a profession are so late to the game, and what plays they might have missed along the way.

No comments: