POEM: The Ultimate Evil

The divine inner spark
Hidden in the dark
Too easy to bury
Too easy to believe its unworth
It happens all the time

For how many years
Have I listened to my fears.
Crush It
Cover It
Bury It deep
Deep
Down in a subterranean hole

Don’t allow people to see
Suppress the childhood glee
Forget that its there
With the help of the external illusion
This buzzing confusion

The man chasing skirt
Covering up
Just how much it truly does hurt
This eternal search
Love
Out there
Somewhere?

When all along
The truth is inside
If only I can find
The inner faith
In myself
My Whole self
Push away the fear of
Alone

How can I love another
If I don’t even bother
To find me
I.
Then no intimacy there
Nothing inner to share

Its taken me years
To break the cast
And realize at last
Now is the time
To stop the crime
The ultimate evil.

Follow the Blue
The clear of the sky
The light over dark
And see
There – there in the centre
Something clean
Pristine
Inviolate
Inviolable
Formidable!

A vista before me
That’s really scary
Do I hold that much power?
What if I fail?
Make a fool of myself.
Can I wield such a knife?
In this real jihad – this inner strife.

The fear of getting it wrong
Not being strong
Enough
To bear this light
This fire
Is burning me anyway
Threatening to take me entire.

But I cannot sit here!
A shriveling
Ashen
Wreck
Its time to find the child
Who is not scared to play
Yes – and get it wrong
For truly
Truly
That is where I belong.

© Charles Tolman November 2014

My Thinking is NOT for Sale

Its 2 o’clock in the morning and I am finding I cannot sleep. A thought that is so off the wall has been gripping my mind for a while now and I am finding it more and more relevant to what I have seen happen during my career as a programmer.

The title is worth restating:

My Thinking is NOT for Sale

This is not so much a shouted response to all those times that good technical effort has been driven carelessly under the steamroller of prevailing economic needs – usually those of the money swallowing monsters that are most companies – than it is a statement of an underlying truth, if only I can express it well enough and in shorter sentences. So here goes…

If you pay for software you will not get what you need. In fact you CANNOT buy software because it is not a finished product. The current economic model we have just does not fit and I believe this is why there is so much trouble in this area.

What is important about good software development?

Over my 30 odd years of work the primary creative and energizing point has been the interaction between the developer and the actual user as a system has come into being. The best of it has been the conversation between the two as they navigate the area of the user’s needs. If the developer is skilled, both technically and personally, they help facilitate both parties in mapping an unknown area, probably only vaguely expressed in the “wants” that the user can currently identify.

This is a conversation of human discovery in thinking.

It is priceless.

It is a gift.

It is a Free process. Capital F.

It cannot be bought.
It cannot be sold.
It is NOT a product.

It only makes sense if the effort is freely given by the developer. The inner costs of doing this are so high that it requires a high level of motivation that can ONLY be internal. To try and shoehorn it into our current ways of thinking about money devalues the process and I think this is what is underlying the problems I have seen happen many times.

The kicker here is that it is likely that it can only be funded by gift money. That means that there can be NO LINK between the funding and the final “product”. I use quotes because that word is a misnomer of what is actually going on.

Unrealistic?

Just go and read a book called Turing’s Cathedral by George Dyson and you will see how the Princeton Institute for Advanced Study was funded by donation. This was where John von Neumann worked and developed the architecture that underlies modern computers.

The picture of how the whole current edifice of modern computing was birthed from gift money just blows me away. I find my thinking so bound up in the capitalist model that to separate the resource – i.e. the money to give time for people to think – from the product of that thinking in such a way shows up the illusion of the current funding models for such work.

Is that enough to allow you to see it? Truly?
If you can then maybe you might understand why I am having trouble sleeping because in my tossing and turning my feelings tell me it could change everything…

Or maybe this is all just a dream and I shall be sensible when I wake up.
Hmmmm.

BOUNDARY STORIES 7 : True Colours

“The look in a lover’s eyes
Mask dropped – no disguise
But is the soul truly awake?
Seeing the other as they really are – with the inevitable scar?

It had been one year since the last note.

Ages.

For Edwin it had been a time of Bliss – capital B – with the girl of the gentle blue eyes and the fondness for Earl Grey tea.

But it all came crashing down. She had now left him, informing him that he had been taking her for granted and she had met this new guy…Blah…Blah…Blah.

She was right. He had fallen into a comfort zone of normality – expecting her to be around.

As he read the note his emotions fell into a dead zone that left him sitting at the bottom of the stairs with tears leaking over his cheeks and falling to dampen his shirt. His mind tried to trace out the exact shape of his sadness and of course the left-brain voice admonished him for being ‘soppy’ as it embarked on the well-worn tirade of ‘Pull yourself together man’.

As if that would do any good.

It was only in a moment of calm reflection that he was able to make sense of the words in the second half of the note.

He realized that the relationship decisions he had made in his life had been just plain wrong for him. They were, in fact, just plain wrong for others too, despite the two-faced, self-mendacious blindingly idiotic stories told by his left-brain self to convince him of their validity.

As he inwardly surveyed the barren aftermath of the violence he had inflicted upon his soul, he realized now just how prolonged the activity of self-destruction had been.

The pit of despair was deep, and it had no ready handholds for climbing out, leaving him to wait for a chance ray of inner sunshine to illuminate his squalid conditions. Getting out was a hard won process, only done by digging steps with the bare figurative hands of his soul and crawling – inch by individual feeling inch – out of his sloth.

The War was still on – and it was still Inner.

He saw how it represented a battle between life and death, no less real for being frequently dismissed because it was Subjective – capital S. The Ultimate Insult.

He could now see that he must keep the ‘Inner Eyes’ of his soul wide open if he was going to survive and stop inflicting more self-harm.

But for now he was just going to have to Cope – capital C.

© Charles Tolman 2014.

Some new poems

For those who enjoy poetry – and possibly some of the ones I write – I have updated my Poetry page.

Looking back through them though many are from the darker side of life, I think the one I currently feel best about is A Woman in my Arms which I dedicate to the lovely ladies with whom I have had some wonderful tango dances. If you ever make it to this part of the internet, you will know who you are – Thank You.

Other posts are still in the pipeline – till later…

Tango Acceptance

I recently attended a weekend tango workshop given at Tango UK in Bramshaw by the wonderful husband and wife team, Daniela Pucci and Luis Bianchi. I do believe it was the best workshop I have attended in the 4 years of tango training I have been doing, concentrating as it did on the internal aspects of the dance – making explicit the actual muscles that were doing the work – thanks to Luis’ background as a massage therapist.

However the reason for this missive is that I am going to reblog a posting by Daniela that is so very much in line with my own feelings about dance. [Many thanks to Daniela for giving me permission to do so] I believe this alignment of feelings is no accident as Daniela also has a technical background and is one of those few perceptive enough to see its flaws.

Daniela’s story is very interesting and relevant to my interests in issues related to science and art. She was a Mechanical Engineering professor at MIT and gave it up to teach tango full-time! In this post she talks about technique and aesthetics and how such an improvisational dance as tango relates all these as well as including the acceptance of the flawed human beings that we are – something that our culture has tried to forget with its pursuit of certainty and the ‘perfect’.

But I shall let her own words speak for her:

“Connection is one of the wonders of Argentine tango, perhaps its reason for existence. Daily life often presents us with situations where the limitations of verbal language lead to misunderstandings and hurt feelings; where we are confronted with suffering that makes us feel completely lonely; where our individual paths at times seem so impossibly narrow that we are forced to go through certain stretches completely alone. In the midst of it all there comes Argentine tango, offering relief from the chasm that separates “me” from “you.” It’s intoxicating, really: unexpectedly, we happen upon an instance when the shared experience of dancing seems to take us as a whole, all problems and existential angst be dammed: all of a sudden the movement of one body seamlessly fits with the movement of another, the musical intuitions and emotions of both dancers so attuned that for the duration of at least that one tango, we seem to become a blissful single entity. I’d venture to say that, for a lot of us, the possibility of stepping into such perfect communion is what keeps bringing us back for another milonga, another festival, another trip to Buenos Aires.

Some seem to equate connection with a certain external form, or aesthetics. A few months ago a relatively new dancer told me he danced exclusively salon because of the connection he found there. In a class once, a student asked me how he could do a certain turn without breaking the connection — I soon realized that, for him, connection meant maintaining his partner’s and his stomachs in permanent contact. Most recently, someone else told me he had objected to the hiring of my partner and me to a certain festival because in past performances we often opened the embrace, and that he had thoroughly enjoyed the connection displayed in our close-embrace performance during that event.

I will not deny that, observed from the outside, different aesthetics definitely inspire different feelings in the spectator. However, my experience is that aesthetics have very little to do with the actual experience of the dancers.

I have danced with milongueros who dug his fingers into my ribs and twisted my right hand. I have danced with milongueros who led me with such gentleness that I could not pinpoint exactly where the lead was coming from other than that it was a pleasurable wave, sending me into tango bliss.

I have danced with salon dancers who had so little sense of timing that they often sent me bouncing against the edges of their stiff embrace. I have danced with salon dancers whose complete control of their body, subtle musicality and yielding, sensitive embrace filled me with awe, sending me into tango bliss.

And probably for the most maligned style of all, I have danced with nuevo dancers who fit all of the bad stereotypes, throwing me around into steps that seemed randomly selected with no relationship to the music and no regard to the constraints of the space, putting me in a permanent alert mode to avoid hitting other dancers. But I have also danced with nuevo dancers who adjusted the amplitude of their movements as dictated by the crowdedness of the milonga so that I never for a moment had to worry, and used the elasticity inherent to that style in open or close embrace to create delightful, dynamic musical interpretations… sending me into tango bliss.

The common point among these delightful dancers across all styles is that they had good technique: good control of their own movement and good understanding of their partner’s movement, so that the lead was gentle and yet clear and precise, consistent with the music and with the space available around us.

Aesthetics is not the same as technique. Good aesthetics will make a dance pleasant to watch. Good technique will make a dance pleasant to dance.

Technique is a wonderful thing: it frees us from concerns of how to do something so that we can fully immerse ourselves in the experience of doing, effortlessly.

And yet, technique is not the same as connection.

I want to elaborate on this but decided to give the sentence above its very own paragraph, hoping to drive this point home: technique is no substitute for connection. Technique is a servant to connection, a means to an end. Technique is a supporting actor, connection is the main actor. I could go on paraphrasing myself and I am sure in some way what I am saying is nothing new, we know this to some degree, but do we — myself included — really know it? And do we act consistently with this knowledge?

Where is our focus as we try to improve as dancers, as we think of a dancing ideal, as we select dancing partners in the milonga, as we go through each tanda?

Several years ago a well-known, top couple was visiting New York. To my surprise, at one of the milongas the leader invited me to dance. It was a fun tanda: he was obviously highly skilled and had a vibrant musicality. But what I remember the most is his dismissive attitude when the tanda ended: he did not even look at me as we thanked each other and parted ways.

Not too long ago I danced with a gentleman who was not as skilled or as musical. He held me with incredible gentleness and made me feel like a treasure. I was overcome by great emotion as we danced in the simplest of ways. That we were dancers dancing Argentine tango was completely irrelevant during those ten minutes: we were two human beings, reaching out from the isolation of our individual paths but for a brief moment, filled with appreciation for the privilege of holding one another.

What do you wish for in your path as a dancer, social or otherwise?

What I wish for is that in each dance — performances included — I may have the courage to present myself with complete authenticity, a flawed human being before another flawed human being, feeling safe in the certainty that I will be fully accepted for who I am. I wish that my partner will allow me to see him in his emotional nakedness, reassured that I will embrace him in his totality. In that moment of exquisite vulnerability when we take each other in the arms, we will make a pact to share our emotions for the next ten minutes. All sincere expression that arises from our encounter will be not only acceptable but, in fact, perfect. We may giggle lightheartedly, inspired by a silly melody and because we are feeling so good to be here right now, all problems left at the entrance of the milonga; we may join each other in a focused physical experience, delighting in the sensory feast of movement and music; we may just be still together, nursing a raw pain that feels too heavy to carry it alone and that doesn’t lend itself to expansive movement, but that feels a bit lighter in the sacred space of the embrace.

This is what I ask from each dance: that you come to me in a spirit of openness and acceptance, and I come to you in the same spirit, and we agree to make the most of our time together. As we share of ourselves generously, we will connect. I won’t require anything more, but won’t accept anything less.”

By Daniela Pucci Original date: 13-Sep-2012
Original found at the Tango Secrets website.

Thank you Daniela – I could not have said it better myself.

I would suggest looking at her interview on youtube:

Dancing Just For Fun

Keeping the promise I made in the last post to tell you about a dancing experience in Liverpool – here we go:

I recently attended a stag-night weekend of a nephew of mine in Liverpool. This consisted of a visit to a karting track on the Saturday, followed by a night out on the town in Liverpool. I along with my brother, brother-in-law and father of the bride were some of the old farts in the group and I confess to thinking – what am I doing here? Surely this should be an event for the younger members? I am not that great at holding my drink! In the end it was a great family time out and worked well.

The karting was a blast as ever with the Tolman family team fielding 10 drivers out of 40 and getting 1st and 2nd place along with having 4 out of the top 6 (and 6 out of the top 10) drivers from the family team! Hmmmm. There must be something in the genes?

But I digress.

In the early evening sunlight ‘da lads’ all congregated outside the hotel ready to hit the town, with eating being a first priority. Now, you may or may not know that I truly love dancing, especially Argentinian Tango.

I made it abundantly clear to the younger members of the group that I was NOT planning to go out and get rip roaring drunk, BUT I DID intend to go dancing and that they were under orders to accommodate the wishes of this particular old uncle. They happily agreed to this and so we set off. After having eaten we began to tour the pubs of Liverpool ending up in a road called Wood Street which seemed to be a centre of activity.

I have not been out to clubs for many a decade and found it a highly surreal experience. There were many young ladies skimpily dressed with dangerously high heels – presumably in order to be accepted into the clubs. [I suspect business will be booming for chiropractors in future]

As I was still intending to go dancing, I stayed with the group through the evening although the other older members had decided to return to the hotel. At around 1am we arrived at the Ruby Sky nightclub. By this time I was itching to get on the dance floor and duly started doing some dancing with my son and another nephew joining me. As my son said, he had not expected to be out clubbing with his Dad!

I am not a raver, preferring at least some modicum of melody to dance to, however I just wanted to get dancing because in order to stay with the family group, I had given up the possibility of going to a tango milonga further north in Preston and the feet were itching to move.

Sometimes any beat will do.

I was surprised when by 1.30am the younger members had also returned to base leaving me on my own – but I was enjoying myself too much dancing to leave so early!

When I free dance like this I tend to mix in bits of tango, tai-chi and anything else I can think off that might feel and look ok. I will also close my eyes when solo dancing as I try and concentrate on freeing up the body to move.

I am a fairly good dancer but nothing special – so imagine my surprise when I did eventually open my eyes. I had an audience of youngsters just watching the old guy, including taking vids on their phone cameras! No doubt I am out there somewhere in the social netsphere. Thankfully some others joined in to ease my embarassment and it was all very good natured and friendly.

In the end I decided to make my way back to the hotel at around 3pm, having enjoyed the social contact with the younger generation as well as having kept a clear head.

I couldn’t help notice that there is a very real demand for some good styles of social dancing, perhaps older ones brought up to date and not necessarily involving choreographed ‘Strictly’ routines.

You know: Dancing Just For Fun.

Post-ACCU2014 Thoughts

My thinking has been working overtime since I attended and presented at the ACCU2014 conference in Bristol.

[The delay in producing another post has been due to a lot of rather extensive personal development that has been occurring for me. Add to this some rather surreal experiences with dance – clubbing in Liverpool being one particular – and you might understand the delay. But that will be the subject of a separate post on dancing – I promise!]

But back to thoughts subsequent to my attendance at ACCU2014…

The Myth of Certification

The Bronze Badge. Small but beautiful.
One experience that really got me thinking was a pre-conference talk by Bob Martin reflecting on the path the Agile software development movement has taken since its beginnings. He mentioned an early quote from Kent Beck that Agile was meant to “heal the split between programmers and management”, and that one of the important guiding principles was transparency about the technical process.

But then there was a move to introduce a certification for what are called ‘SCRUM Masters’, key personnel – though not project managers – in an Agile software development approach. The problem is that it is just too simplistic to think that getting a ‘certified’ person involved to ‘manage’ things will sort everything out. This is never how things happen in practice and despite early successes Bob observed that subsequently Agile has not lived up its original expectations.

The transparency that the Agile founders were after has once again been lost. I consider that this happened because the crutch of certification has fostered inappropriately simplistic thinking for a domain that is inherently complex.

My inner response to this was: Well what do you expect?

I very much appreciate and value the principles of Agile, but there is a personal dimension here that we cannot get away from. If the individuals concerned do not change their ideas, and hence their behaviour, then how can we expect collective practices to improve? As I experienced when giving my recent workshop, it is so easy to fall prey to the fascination of the technological details and the seeming certainty of defined processes and certified qualifications.

I remember a conversation with my friend and co-researcher Paul in the early days of embarking upon this research into the personal area of software development. We wanted to identify the essential vision of what we were doing. The idea of maybe producing a training course with certification came up. I immediately balked at the thought of certification because I felt that an anonymising label or certificate would not help. But I could not at the time express why. However it seems that Bob’s experience bears this out and this leaves us with the difficult question:
How do we move any technical discipline forward and encourage personal development in sync with technical competence?

The Need for Dynamic Balance

K13 being winch launched, shown here having just left the ground.
This was another insight as to why I enjoy ACCU conferences so much. There is always the possibility of attending workshops about the technical details of software development and new language features on the one hand, along with other workshops that focus on the more ‘fluffy’ human side of the domain.

I live in two worlds:

  1. When programming I need to be thoroughly grounded and critically attend to detail.
  2. I am also drawn to the philosophy (can’t you tell?) and the processes of our inner life.

Perhaps the latter is to be expected after 30 years of seeing gadgets come and go and the same old messes happen. This perspective gives me a more timeless way of looking at the domain. Today’s gadget becomes tomorrow’s dinosaur – I have some of them in my garage – and you can start to see the ephemeral nature of our technology.

This is what is behind the ancient observation that the external world is Maya. For me the true reality is the path we tread as humans developing ourselves.

Also we need to embrace BOTH worlds, the inner and the outer, in order to keep balance. Indeed Balance is a watchword of mine, but I see it as being a dynamic thing. Life means movement. We cannot fall into the stasis of staying at one point between the worlds, we need to move between them and then they will cross-fertilise in a way that takes you from the parts to the whole.

In our current culture technical work is primarily seen in terms of managing details and staying grounded. But as any of my writings will testify, there is devilry lurking in those details that cannot be handled by a purely technical approach.

Teacher As Master

So John - Do I have to wear the silly hat? Well Bill, only if you want to be a REAL glider pilot.
Another epiphany that I experienced at the conference was a deeper insight into the popular misconception that teachers are not competent practitioners. There is the saying that “Those that can – Do. Those that can’t – Teach”. So there I was in a workshop wondering if that meant that because I was teaching programming, was I automatically not as good at the programming? But then a participant highlighted the fact that this was not so in traditional martial arts disciplines.

Indeed – teaching was seen as a step on the path to becoming a master.

We – hopefully – develop competence which over time tends to become implicit knowledge, but to develop further we need to start teaching. This will force us to make our knowledge explicit and give us many more connections of insight, indeed helping us to see the essential aspects of what we already know. There may be a transitional time where our competence might suffer – a well known phase in learning to teach gliding – as well as being a normal learning process whenever we take our learning to a higher level.

So I think the saying needs changing:
Those that can Do. Those that are masters – Teach.

ACCU2014 Workshop : Imagination in Software Development

A week ago on Saturday 12th April I facilitated a workshop at ACCU2014 on Imagination in Software Development which I am pleased to say – thanks to the participants – went very well.

Before the workshop I thought I had bitten off more than I could chew, having read through a lot of Iain McGilchrist’s book “The Master and His Emissary” and realising that using analytical thinking for such an exercise is very difficult. However thanks to my long suffering team at work giving me the chance to do a dry run, I was able to get feedback about what did and did not work and so ended up making some rather last minute changes. The final workshop format ended up being completely different to the dry run.

Before moving onto the exercises I gave a half-hour talk about the links between phenomenology; software; and brain hemisphere function, most of which in hindsight could have been left until after the exercises. My main objective, however, was to raise self-awareness about the participants’ internal imaginative processes.

I thought it would be good to highlight some of the primary ideas that came from the exercises, both in terms of the workshop’s preparation and its execution.

The need to get away from the software domain

The exercises in the workshop involved:

  • Listening to a story excerpt from a book.
  • Watching a film clip of the same excerpt.
  • Performing a software design exercise individually.

Each exercise was followed by discussions in pairs. It became abundantly clear that if you give a bunch of programmers a technical exercise, it will behave like a strong gravitational field for any ideas and it will be very difficult to get them to focus on process instead of content. Indeed during the workshop I had to interrupt the pair-based discussions to make sure they were talking about their own inner processes instead of the results of the design exercise I had given them! By reading a story and watching a film clip first it did make it easier to highlight this as a learning point since it was much easier to focus on internal process for the story and film clip.

Individual working instead of in small groups

The trial run with my team at work used small 3-4 person groups. I found that the team dynamics completely overshadowed their individual awareness. I therefore changed the format to make the core design exercise an individual process, followed by discussions in pairs. This had the desired effect of bringing their internal processes into sharper focus. The more you know about an area the more difficult it can be to “go meta” about it.

Some great insights from the participants

STORY
When listening to the story 3 processes were identified which occurred in parallel:

  • Visual – Picturing.
  • Emotional.
  • Logical – Probing.

FILM

  • The film was much more emotionally powerful, to the point of feeling manipulative.
  • But it was felt to be ‘weaker’ due to the imagery being concrete.

DESIGN

  • When performing the design exercise the ideas were experienced as a story, but as a sequential process rather than a parallel one.
  • The logical analysis required thoughts to be made explicit by writing them down otherwise it was hard to hold them in awareness.
  • There was a more conscious awareness of past experience affecting current ideas.
  • The initial analysis was wide-ranging followed by focussing down to the core ideas.

So if any of the participants make it to this page – I would like to say a great big thank you for getting involved.

Slide set follows:

Phenomenal Software: The Internal Dimension: Part 2b: Patterns & Livingness

In this post I am going to review Alexander’s three aspects of patterns mentioned before, namely:

  • The Moral Component
  • Coherent Designs
  • Generative Process

I will show how they link to the following ideas:

  • Freedom
  • Cognitive Feeling
  • Livingness

The Moral Component & Freedom

20110916_1352_BuzzardThe moral aspect of patterns can be approached from any of a number of ‘paths up the mountain’. Certainly Alexander was concerned about whether buildings were ‘nurturing’ for us to live in, and so was thinking about more than utility. With computer systems and applications it is easier to think that this utilitarian aspect is all that exists. But there is an environmental part – an inner environment of thought, or ‘theory’ as Naur would say, whether we be users or developers.

If we think about how tools extend our own faculties, indeed our own being, the importance of the quality of this inner environment takes on a new meaning. The nature of the tool will affect how we form our ideas, which in turn will influence the form of our externally made world. Thus Alexander’s use of the word ‘nurturing’ and its applicability to software is not so out of place as it initially seems.

We can relate the ideas of utility, environment and hence morality by considering the concept of freedom – but defined in terms relevant to computer use. A computer system or application is a tool to get a particular task done. Good tools are ‘transparent’, meaning that you do not notice them when performing a particular task – they ‘disappear’ from your consciousness and leave you ‘free’ to focus upon the task in hand. It is in these terms that we can speak about freedom when using computers.

If you experience this ‘transparency’ when using a computer, I would consider that the software you are using contains this moral component that Alexander has defined. To paraphrase his words from the ‘Mirror of Self’ question:

“‘Moral’ Software gives you the freedom to develop a better picture of the whole of yourself, with all your hopes, fears, weaknesses, glory, absurdity, and which – as far as possible – includes everything that you could ever hope to be.”

What higher statement of purpose could we have for the programs we write? The current prevalent economic vision of the software industry pales into insignificance against such a statement.

We should not forget that this freedom to develop a ‘better picture of the whole of ourselves’ can be experienced by both users and developers. Indeed it is a central tenet of my whole ‘Phenomenal Software’ series that good software developers are implicitly on a path of self development, whether they are conscious of it or not.

Coherent Design & Cognitive Feeling

PetrelWingIn talking about coherent design we need to remember that Alexander is dealing with the external world of objects and a software designer/developer is dealing with non-physical artefacts – the building architect works in an external world, the software architect works in an internal world – though no less real in its effects.

If we consider programming as an ‘internal art’ we can see how it can be difficult to communicate effectively about the ideas that underpin our design and coding. Peter Naur wrote about the need to maintain a theory alive in the minds of the programmers if a system was to be properly extended or maintained. He also noted that the theoretical element could not be communicated accurately via written documentation or even the code itself – it needed human interaction with people holding the living theory of the software.

Reflecting on my own career I have come to realize that it is difficult to identify an abstract form of coherence or goodness for software separate from the context in which it is to be used. For instance some code that I had found to be elegant in the early days of computing, say using little memory and having few instructions, would not be a good solution to the same problem in a modern context. So here we can see the integration required between form and function; solution and problem context. They need to be in harmony: coherent form in design will have the moral component in its function and will mean that the theories and meaning formed by the developer or user will make sense and meet the ‘Mirror of the Self’ needs.

Most novices will work from a set of rules, one such example being to ‘Make it Work, Make it Right, Make it Fast’ in that order. This is a valid heuristic useful to stop programmers optimizing the code too early. However a rule-based approach has the danger of separating the stages into individual parts – which is not the best way to proceed in one’s thinking. This is the same tension as that between the TDD (Test Driven Development) folks and the design-up-front folks – a classic example of the need to work from an integrated view of the whole and the parts – i.e. respectively: making it right and making it work; design-driven and test-driven. In practice being done together.

So over my career I have developed a feeling for good design in the crucible of solving real-world problems. In actuality I cannot make it ‘Work’ until I have a sense of what is ‘Right’, even to a small degree. You can perhaps see that I have a personal preference towards the design view, though during my work I can easily fall into the trap of hitting the keyboard too early, something I have worked vigorously at controlling! As I gained experience I started to get this sense of the best way to structure the software, and in some cases – such as perhaps designing a media player – I might have a feeling for what is ‘Fast’ at an early stage, but this needs to be kept strongly in check against reality. Optimisation should be based upon measurement and human beings can be worse than random at predicting what needs optimising.

This sense for a good or coherent design is what I have called a ‘cognitive feeling’ in an earlier post, which is a very fine and delicate sensation indeed – it is not strong emotion. Over the years of my career I liken its development to the creation of a new sense organ, cognitive in its nature. It can be difficult to explain to less experienced practitioners due to the fact that the sense is likely to have been implicitly developed over the years. However it matches closely to the feelings that are evinced by Alexander’s ‘Mirror of the Self’ test so that frequently when talking to more experienced developers it will not be hard to get to a commonality in judgement.

This means that in order to create coherent designs we will need to develop this extra sense of a fine cognitive feeling. A quote from Alexander serves to give an idea of this feeling sense, and though dealing with external geometric entities, the same comments relate to software design when imagining how the structures will function:

“A pulsating, fluid, but nonetheless definite entity swims in your mind’s eye. It is a geometrical image, it is far more than the knowledge of the problem; it is the knowledge of the problem, coupled with the knowledge of the kinds of geometrics which will solve the problem, and coupled with the feeling which is created by that kind of geometry solving that problem.” A Timeless Way of Building, Chapter 9.

Generative Process & Living Structure

CloudTrailIn Alexander’s talk at the OOPSLA’96 conference in San Jose, he seemed somewhat bemused by the software domain’s use of patterns. On reading Alexander’s Nature of Order series we can perhaps see why. Some of the central ideas are those of ‘living structure’ and ‘structure preserving transformations’ which result in a ‘generative process’. How could these relate to software?

It is easier to understand the concept of structure preserving transformations when looking at how living things grow. As they grow and develop they need to continue living – we cannot just take them apart, do some modifications, and then re-assemble them! Every step of growth cannot disturb their livingness – thus EVERY change must preserve their living structure. The world of living things has no choice but to use a generative process if it is to stay alive.

At first glance this does not relate at all to the built world. When fixing my car in my younger days, there were times when bits of gearbox and engine were all over the floor! If the car had been a living being it would have been dead, but since it was not I of course was able to re-assemble it and make it work. Small software systems are similar. However, if you have ever worked on a sizable legacy system you will know that you need to spend a LOT of effort on NOT breaking the system. Any changes you make need to be closer to structure preserving, and any bad structures will need major surgery to improve. In reality you will not even try if it is not economically viable. Once you have bad structure, or use a ‘structure destroying transformation’ it is extremely difficult if not impossible to remedy:

“Good transformations do not cause any upheaval. So to get a good project, we merely have to make a sequence of structure-preserving transformations. When we do so, a good design evolves smoothly, almost automatically.
However, even a single bad transformation can upset the smooth unfolding. If we make one transformation which destroys structure, in the middle of a sequence of good ones, things become ugly very quickly;”
Nature of Order Book 2 p61. See also chapter 4.
I am not sure about the use of the word ‘merely’ in the above, since it understates the difficulty of identifying good transformations.

Also if we accept Naur’s Theory Building view and the idea of human mental schemas, this idea of a generative process makes more sense, since there is the living theory held by the programmers. If we then go further and connect to the phenomenological ideas of how we create meaning when we develop theories we can see that there is a justification for finding a livingness within the programming activity. Bortoft talks about the link between understanding and meaning which relates well to Naur’s ideas of theory building when understanding software. It also gives another dimension to the idea of livingness:

“understanding is the ‘concretion of meaning itself’, so that meaning comes into being in understanding.” Henri Bortoft in Taking Appearance Seriously p108

Just one final thought about the idea of livingness. Some might think that a running program would have a livingness, especially if it was a big system. I am not so sure and consider that it is WE who provide the livingness in the software domain. It is WE who create; experience design pain; judge. The computers are running a network of finalized thought constructs which is a different process to the thinking we do when defining those thought constructs. For me this perception of livingness in Alexander’s work and its relation to software is an ongoing work-in-progress.

I want to thank Jim Coplien for his help in pointing me at various ideas of Alexander that mesh with my work for this post.

In the next post I shall conclude this series of ‘Phenomenal Software’ by returning to the way philosophy has progressed forward from the Cartesian Subject/Object view. This will mean dealing with the thorny subject of subjectivity and of course you will have to decide if you can trust my judgements!

Thanks for reading.