DEV Community

Mik Seljamaa πŸ‡ͺπŸ‡ͺ
Mik Seljamaa πŸ‡ͺπŸ‡ͺ

Posted on

The Undiscovered Country

In Tom de Marco and Tim Lister's Peopleware, the authors suggest that gelled teams make great software, and propose that initiatives are taken to assist the social cohesion of teams. Looking at gelled teams, we can see the social ease which they exhibit and the effectiveness in their work. But add the concept of 'mapping' into the equation, and the picture changes. Gelled teams look much more like groups of mappers, communicating effectively with one another because they can refer to parts of their shared mental map of the situation with a few, perhaps odd-sounding words. (There was once a guaranteed delivery comms buffering subsystem that its creators called the `Spaghetti Factory'. It was to do with loops of stuff flying unsupported through the air.)

They can't just exchange information about their maps quickly - they can all grab hold of chunks of their maps and move them around. They can move chunks of each other's maps around. They can react, as a team, very quickly. They all know what is going on, and they've all thrashed it to death, in their own minds. They don't make cock-ups, and they don't waste time on the unsynchronised activity. They respect each other even though they may loathe each others' taste in music, politics, and food. The performance gains are breathtaking, as anyone who has had the pleasure of working on such a team knows.

What one has to do is take the time to ensure that everyone has a shared understanding of what is going on, and life can be a more rewarding experience, because one has a sense of success at five o'clock.

Getting into this situation is not an accident, it is repeatable.
Knowledge Packets, Daydreams, Maps and Understanding

As software engineers, we might describe learning as forming associations between referents. The sky is blue. The rain in Spain falls mainly on the plain. We might call these learned facts `knowledge packets': little bits of truth (or errors) that we possess.

One can go a long way on knowledge packets. Early learning (as directed by adults) for most children focuses almost entirely on the acquisition of knowledge packets. Things that one should or should not do. Methods for performing tasks. Data to be retained and later recovered on demand.

The trick with knowledge packets is to identify key features of the situation and determine what action to take. One can get A Levels and degrees, drive cars, even chat up members of the opposite sex by using knowledge packets. Very adept knowledge packet users can fill their heads with megabytes of procedural tax law and become accountants earning six-figure sums. Some politicians omit the pattern recognition stage and use a single all-purpose knowledge packet for everything.

Of course, we don't just stack up knowledge packets like dinner plates in our heads. From our earliest years, our natural response to gaining each new knowledge packet is to ask, `Why?'

We attempt to connect up knowledge packets to create a structure within our knowledge, a mental map that gives us an understanding of the causes and effects within a situation. This understanding allows us to derive a solution to any problem within the situation, instead of attempting to select a rote-learned response.

In later life, we must spend periods of reflection, or daydreaming, where we trace through the relationships between that which we know. This broadens our integrated map and allows us to identify structures in the map that apply in different areas. We can then get a deeper map, where what mathematicians call isomorphism' provides what software engineers call inheritance', allowing us to reapply knowledge.

We rearrange our mental maps to produce simpler expressions and allow more understanding to be held in the mind at once. When we find a simpler way of looking at things, we find it hard to remember what it was like when the topic seemed complicated, and we ourselves have grown. With understanding, where does the Self end and the data begin? With knowledge packets, the division is clear.

We become adept at using techniques through reflection that allows us to explore our maps, and the knowledge packets we have not yet connected. There are likely to be neurological underpinnings to what we do when we reflect, but some kind of abstract pattern recognition activity must be underway. We learn to use our brains.

Without understanding, there can be little intelligent action. Without mental maps, there can be no understanding. Without reflection, there can be no mental maps, only knowledge packets.

There are computer data structures, called `ontologies', that hold vast numbers of truths in networks associated by a form of predicate logic. The CYC database, for example, can use maps of the meanings of natural language well enough to interpret photograph captions and find examples for pictures needed by journalists.

Copyright (c) Alan G Carter and Colston Sanger 1997

Top comments (0)