I had a bit of an epiphany when putting my slides together for my presentation in Madrid. It had to do with definition of things like OOD, LCOD and AOD with respect to OOP and LVOOP. It also began to make me think about the purpose of design.
I've given away that P=Programming and D=Design and I always call myself a designer (not a programmer).
But why is this distinction important? Well programming is for computers and design is for humans.
To clarify, you could program in a hideous fashion and as long as it is functionally correct the computer will not care one little bit.
The design parts is for when you want to help the human in the process. This help comes in many forms and what you want from your design is what should drive your design.
At SSDC we've always held the Block Diagram as our favourite place to be and correspondingly our designs are Block Diagram-centric. We want to navigate our design via the block diagram and this means we tend to wrap our code in searchable/navigable structures.
The lesson here will be horrible for the people who want me to dictate a solution to their problem. This is because before you evaluate your design approach you'll need to ask the question.