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 typicalexample 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 formal concepts, i.e. by deriving the concept (lattice) from the (context). Imho, being able to ‘navigate’ the concept lattice – that of course looks much more complex for real world subject areas – is what separates the thinking of Engineer and Craftsman.

So long|=

PS
For example, from my personal experience in business analysis I may say, that typically there are lots of people on the expert side with type (a) knowledge, so what they need an analyst (on engineer-level) for, is help them to create type (b) understanding from it.

4 Responses to Craftsman or Engineer?

Yeah, I hadn’t thought if it quite this way, but it fits! Engineering uses a foundational understanding of the relationships between concepts in order to allow a practitioner to provide a better solution.

Modelling theory is about the mapping from real world to models with main focus on software engineering and related areas like Business Process Modelling. Abstraction is seen as the core of modelling, thus Abstraction Awareness is closely related to Modelling Theory. Also Complexity Aware Modelling is close to Abstraction Awareness and Modelling Theory, since it it about applying results of complexity theory and finite model theory to software modelling, business modelling, systems engineering and software engineering.