The Model Driven Software Network

Raise your level of abstraction

A lot has been written on the differences between Craftsman and Engineer.  Recently I came across a simple example by Hofstadter & Sander, that nicely shows the basic difference in thinking. We start with a little exercise:

“Draw a square, a rectangle, a rhombus, and a parallelogram.”

Some people draw a solution as in (a), some draw solution (b).  Both are perfectly acceptable in their way:

  • With (a) you show your detail knowledge, of how the shapes are defined, s.t. you are able to give a typical example for each class.
  • With (b) you show your ability to abstract, of how the shapes are related to each other, s.t. you are able to give a special case valid for all conditions.

The latter is an abstraction by constructing the structure of concepts (formally: the concept lattice). Imho, being able to 'navigate' this structure of concepts - that of course looks much more complex for real world subject areas - is what separates the thinking of Engineer and Craftsman.

So long

Views: 639

Add a Comment

You need to be a member of The Model Driven Software Network to add comments!

Join The Model Driven Software Network

Comment by Model Practice on April 23, 2014 at 4:28

yes, think applying math principles plays a central role. Esp. relational maths and logic.

Comment by I Gibbs on April 22, 2014 at 21:11

Yes, this sums up much of my opinion as well. Craftsmen are much better at putting things together with what they have in their toolbox. However, many of them have difficulty in leaving the area of their toolbox. Engineers are much more comfortable with moving forward without a toolbox because they have deep conceptual understanding of the domain. I think this deep domain understanding is largely created using abstraction via mathematical principles.



© 2019   Created by Mark Dalgarno.   Powered by

Badges  |  Report an Issue  |  Terms of Service