Phenomenal Software Development : Delicate Empiricism in Software Development

I am going to start this section with a discussion about doubt, or unknowing. This was not in the original talk since it would not fit within the time allocated, but the response I received when I included it in a subsequent version of the talk makes me realise that it is a key idea we need to consider.

CloudscapeThe Place of Doubt or Unknowing

If we take the Cartesian view that we cannot really know the ‘things in themselves’, then in terms of creating new knowledge we have two possibilities:

  • Run Away
    We can decide that since we cannot get to know the Things, then we should not even try. This is the path chosen by those that wish to shun everything technological and go back to the old pre-modern ways. But as Ken Wilber points out in The Marriage of Sense & Soul(p44), I don’t think many folk today would want to go back there if they really knew what it was like.
  • Over-Hypothesize
    Here we decide that we can be ‘Aggressively Empirical’. Don’t waste too much time with observation, just come up with hypotheses and test these against reality. This approach has no consideration for the embeddedness of the perceiver within the system being perceived, the classic dualistic bind, and can lead to an experiment reinforcing your expectations about a phenomenon.

Note that both of these approaches attempt to push the unknowing away.

Unknowing does not feel comfortable so a typical human reaction is to move away from the discomfort. But in this area it is a mistake. So what can we do?

  • We need to develop ourselves and stay with the unknowing. This is the Delicately Empirical approach. We should consciously stay with the doubt and keep observing, hold back assumptions until our ideas and thinking mature in line with our observations.

It is this latter approach that requires a stronger sense of self in order to stay longer with the unknowing and the ability to hold this state is a core skill when working in a technical environment.

ThermallingKnowledge or Preconceptions?

The first point at which I got an inkling that the field of software development could benefit from the insights of Delicate Empiricism was during a workshop at the OT2001 conference when I attended a session called “Tracer Bullets” hosted by Paul Simmons and Tom Ayerst. They initially showed a short film about the difference between the Russian and American approaches during the space race of the 1960s. The Russians were much more trial-and-error based whereas the Americans had a very strong quality assurance programme. [I notice there was a re-imagining of the session at SPA2013]

The workshop part of the session involved splitting up into small teams of about 4 or 5 people. Each team had a range of materials they could use to try and identify what item was hidden within a tall kitchen bin placed on a stool so you could not look down into it. Each team had to create tools to find out what was at the bottom of the bin. There was a limitation in that each team only had 8 tokens which would allow them to go up to the bin for 1 minute per token. So they only had 8 minutes of ‘research’ time up at the bin.

Having already been familiar with Goethe’s approach of Delicate Empiricism, I argued in my team to use the tokens one at a time and only go forward slowly. Luckily the other folks agreed with the approach and we set off. What surprised me, and provided the impetus for this research into phenomenology, was seeing the approaches taken by the other teams. Whereas our team simply went up with some long balsa wood ‘pokers’ and spent our first minute just stabbing around to get an initial sense of what was at the bottom of the bin, I saw other teams creating elaborate measuring tools which already pre-supposed certain attributes about what they expected to find. A classic case of over-hypothesizing.

Before using each token our team decided to identify what it was that we wanted to learn next, i.e being clear about the boundary of our knowledge, and devising a tool to move that boundary forward. Then once we got the extra data, we would reflect on it and adjust the model of what we thought was at the bottom of the bin. Then we would discuss what it was we wanted to know next, making sure that our hypothesizing did not rush too far ahead of our current knowledge.

My observation of this contrast between our approach and that of the other teams gave me the impetus to delve further into this subject.

The primary question to ask here is just how aware we are about our boundaries of knowledge, and do we know how best we should proceed when at those boundaries? These questions are absolutely crucial when it comes to debugging a wayward software application.

From the workshop I identified the following steps in the process:

  1. Ask: What do we already know?
    We need to be clear about the knowledge we already have and need to consciously check the limits of that knowledge. This knowledge then forms the foundation for expanding what we know. In certain cases we might decide that we need to move into learning about a completely different area.
  2. Ask: What raw data do we need next?
    What is the next piece of raw data we need to help us expand our knowledge? Note that I differentiate here between raw data and knowledge. The raw data we collect relates to the percept. It will need our reflection to find what concept fits the data. Done properly this enables us to create a mental model that properly fits the phenomenon and is not abstract.
  3. Ask: What tool do we need to get this information without overly disturbing the phenomenon?
    Here we need to focus on creating the best tool for the job of finding the next piece of information we need, but without disturbing the system. This latter consideration is particularly important when debugging real-time multi-threaded systems. I find I frequently fall back into the ‘old school’ tradition of printing out the data if I can because usually a debugger is too invasive. (see ‘Staying Free’ below)
  4. Research: Use the tool to run the experiment and collect the raw data.
    So at last we get to do what feels like ‘real’ research. In actuality the ‘real’ research starts with our thinking. Frequently programmers love to get to the keyboard too early because they (and their managers) mistake typing for software development. It feels safer because one feels like one is making demonstrable progress. But this is an illusion and is at the core of Robert Glass’ fact about the ‘disconnect’ between management and programmers. In arguing this I have found David Bohm’s insight that the experiment is purely an external manifestation of the thought concept useful.
  5. Reflect: Expand my knowledge by reflecting on the collected data.
    This is where we need to look at the data we have collected (the percept) and start developing concepts that match it. By using a disciplined imagination we can check our concepts against the data and when we match them (the Aha! experience) we have expanded our knowledge. So now we can go back to stage 1.

Crash1Staying free – Knowing your technology

As mentioned above programmers will likely use debuggers for helping them investigate a problem. This can work well when you are trying to find a fault that is relatively easy to pin down. This is because a debugger will have to modify the running code in order for it to be able to function. For instance it may allow the program to stop at user specified points which it can only do if it modifies the running software. It may also completely modify the memory footprint by putting guard areas around the ‘real’ areas of data in order to catch ‘illegal’ memory accesses outside of what was expected.

Now that systems and debuggers have become more complicated, it is not a given that a programmer will know what the system is doing underneath the hood to provide this helpful functionality. This is where we touch on the nature of freedom. If you do not know what the system is doing – you cannot be free, i.e. you cannot know exactly what is going on, and so your assumptions can be faulty. I will come back to this concept in a later post since it relates to ANY technological use and should start some alarm bells ringing.

But back to the developer. As you can imagine, if you are working on a system that has real-time constraints (I work on video systems which need to play out faultlessly for hours) it just is not feasible to use a debugger to help find some of the nastier problems. Hence my comments above about the ‘old school’ techniques, i.e. printing out the data. With older systems it was not even possible to do this without disturbing the real-time operation because the process was too slow. Nowadays you can generally get away with it, but there will still be the occasional problem where printing out a single number could cause a change to the timing of the system and thus the fault will not manifest. Thus you need to know your system and then know what is the best ‘instrument’ – code modification – that can collect the data you need to find the fault.

Computer as Thought Mirror

Pity the novice or  journeyman programmer who has not yet realised that his or her process of debugging is flawed. All too frequently I see less experienced programmers (a) jumping to an early conclusion about the cause of a fault and then (b) modifying the code to ‘fix’ the problem based on this conclusion. Jumping to the wrong conclusion too early happens time and time again and you will see it happening many times a day in most software companies.

It can cost them a lot of money because they may now ship this software proudly announcing the fix of this specific bug only to find that it has re-appeared in a slightly different guise. What has usually happened is that the timing of the system was changed so the original fault became hidden, but the actual cause, i.e. the bug, was still there. I have found from bitter experience that it can take many many years – a decade is usual – for a programmer to sufficiently hone their debugging skills to the point that they do not fall into the trap of making false assumptions. It truly requires a great deal of willpower and self-awareness. Of course, better processes can help but they will still rely upon discerning human judgement.

The developer is having to learn the boundaries of their knowledge the hard way and the computer is mirroring back the quality of their thought process. Hence my calling it a ‘Thought Mirror’. Generally the novice starts out having great faith in their ability to understand the effects of their software creation, possibly being surprised that it is going wrong. If they are truly growing through the course of their career this will change to assuming they are wrong and possibly not even trusting that the code is correct even though the system is functioning perfectly. You will also find that many seasoned programmers will not buy the latest and greatest software releases – unless they really really have to!

I hope that gives you some sense of how convinced I am that anyone good at debugging will be using the technique of Goethe’s Delicate Empiricism without even realizing it.

Have we unconsciously created a technology that pushes us to the limits of knowledge just so we can come to know ourselves better?

To paraphrase Jeff Carreira, in software development ‘philosophy is not a luxury’.

Next time I shall take a deeper look at the issue of disciplined imagination, Exact Sensorial Imagination to be precise, and how it relates to software development.

Phenomenal Software Development : Key Observations

G_TOWS_Lasham_TugThe Importance of Energy

A fairly obvious observation but one which needs stating as it is easily forgotten when we acclimatize ourselves to the job of programming.

It takes a significant amount of mental energy to do this job.

When programming we will be making decisions minute by minute, if not second by second, and this requires a large expenditure of mental effort. It means that when I get home after a day at work I just do not want to make decisions. I am all “decided out”. This is why I will rely on my partner to decide what to eat for dinner!

It is obvious how much this affects the rate of progress on a project and any experienced technical lead will realise that a significant concern is the level of energy in a team. It usually falls below the radar during the heat of trying to hit deadlines.

Non-Linear Thinking

We need to notice the difference between what I call linear and non-linear thinking.

Even though we may not consciously recognize it, a faculty I see time and again that highlights the difference between programmers and non-programmers is the realisation that we need to do as little as possible to create a solution that has as much impact as possible. Laziness if you will, though I prefer to call it non-linearity.

A good programmer will try to minimise the amount of code they create, or will create firm foundations to allow them to minimise the amount of code they have to create later. While this is being done there may not be much outwardly visible progress, maybe none if it is all in thought patterns. This, along with the fact that programming is not a numbers game (i.e. more people equals faster progress) can be a big cause of strife between techies and managers.

See Robert Glass’ book Facts and Fallacies of Software Engineering, fact number 13: “There is a disconnect between software management and their programmers”, which has an interesting story of how different the two disciplines are in their view of projects.

GoingFlyingThe Foundation in Play

Many early programmers were amateur electronics or radio enthusiasts who then turned professional. I remember going to a radio club meeting where one of the members had built a Z80-based system that had 64KB of RAM! A full complement of memory in those days and we all duly drooled. But at the time there was no software to fill it with that could make any use of that much memory.

We were enthusiasts and at the beginning of the PC revolution many programs were games. As the field progressed there was a transition from programming as play to programming as an economic activity, though the games drive has remained strong.

So here we are now with a very lucrative IT industry that is based on this energy and we forget this foundation in play at our peril. It is a fundamental human activity that fosters resourcefulness. Confirmed by recent research by Sergio Pellis about self-directed play – as if we needed to be told. Self-directed play fosters resilience and resourcefulness, faculties that any company would want in its employees.

I believe that the next 2 issues of Boundary Crossing and the Inner World are the most important observations I have to offer.

AsleepBoundary Crossing

What do I mean by boundary crossing? Let us look at the characteristics of technology.

  • Tools or technology are amplifiers.
    We use technology to amplify or extend our capabilities. Cars amplify our movement and aeroplanes allow us to fly. But an amplifier has no knowledge of good or bad and will also amplify and extend our mistakes. During the Industrial Revolution we created devices to amplify or enhance our physical capabilities, but with the development of information technology we have created devices to amplify our thought.
  • Technology use has transitioned from External to Internal problem-solving.
    As the nature of our tools has changed, the effects of our use of them has moved from being externally visible to others, to being internal and hence invisible to others – as the effects take place in our heads. This is a Significant Shift (which is worth the capitalization) and has many side-effects. My thesis is that this has largely gone unnoticed within IT, especially given the primary focus we have had on the physical gadgets rather than the psychological effects. I take you back to Dykstra’s comment that:

    “…their influence will be but a ripple on the surface of our culture, compared with the much more profound influence they will have in their capacity of intellectual challenge without precedent in the cultural history of mankind.”

  • The Technological Paradox.
    Tool usage requires us to be more awake since it amplifies our actions and thoughts. The paradox with technological use is that we tend to go to sleep more as we let technology take over faculties. (Just look at how people drive – but don’t get me started on that) It is why an incremental process works so well and why Agile techniques have become so popular.

This transition is part of what led me to post about software development requiring an evolution of consciousness and I believe we need an updated vision of the discipline in order for there to be constructive progress.

DiscusPanelThe Inner World

What I find fascinating about the process of developing software is that despite its heritage in a rational scientific process, we have been led into this inner world and no matter how hard we try, will not escape it. For me it is a source of livingness in the job.

Programming involves the creation of a completely human made world where there is little feedback and few checks against an external reality. Indeed we have had to dope silicon away from its natural state to make machines that can be completely controlled by what are effectively our thoughts.

It can be helpful to identify what happens internally when we write software and I believe a simple view goes as follows:

  • First we engage in thinking about the problem and carry on thinking to come up with some possible solution. Notice the verb tense here: thinkING.
  • With this thinking we create mental models or more finalised thought constructs that define our solution to the problem.
  • It is these mental models or thought constructs that we can transcode into software.

Thus the computer is running a network of these thought constructs. It is worth noting that this is NOT the same as the process we use when thinkING about the problem and its possible solution. This is why I am highly sceptical about the promise of so-called artificial intelligence.

As they [try to] run these mental model networks computers will mirror back the quality of our thought process as programmers. Thus any self-respecting programmer will need to become self-aware about their own process and learning in this area of their own thinking.

Initiation in Thinking

I believe that this whole domain can be seen as an initiation in thinking which in former times would have been the province of mystical and religious orders. But the current ideas of religion are not appropriate to this domain although there are some similarities if you think in terms of ritual – but that is a whole other touchy subject to be dealt with later. This move into the inner world is why a developer’s attitude is as important as their technical ability – if not more so.

Next time I will take a trip into the philosophical side of things and link up to some of the great thinkers of history.

Phenomenal Software Development

Over the next few posts I am going to cover the ground of Software and Phenomenology that I dealt with in my recent talks at ACCU2013, ACCU Bristol and ACCU Oxford.

Why Explore Phenomenology?

FlyingViewAs we have progressed through the industrial revolution into our current wide ranging use of information technology, there has been a big change in the form of the tools that we use. The massive impact of this transition from external physical tools to internal virtual tools has largely been unconsciously experienced.

Edgar Dykstra back in 1972 was a notable exception when he gave a talk saying:

“Automatic computers have now been with us for a quarter of a century. They have had a great impact on our society in their capacity of tools, but in that capacity their influence will be but a ripple on the surface of our culture, compared with the much more profound influence they will have in their capacity of intellectual challenge without precedent in the cultural history of mankind.”

Currently our society is heavily based upon the underlying Cartesian dualistic worldview. Along with this orientation we tend to focus primarily on results and though this has been necessary, it has some significant negative consequences. I believe that with the move to virtual tools, the cracks are beginning to show in the Cartesian worldview and its appropriateness for modern times. As computing has progressed along with this has been a questioning of just what it is to be human.

I consider that phenomenology – regardless of whether you can pronounce it or not! – can lead us to a more integrated worldview and I believe the industry needs this more balanced, more human, view if it is to constructively progress.

Overview

I will be starting by providing an overview of my own background. This is important so that you can get a sense of the experiences and thinking that have shaped my conclusions. Only then can you be free to decide what you want to take and what you want to leave.

Then I give some key observations that I’ve made through my career particularly the one about what I call ‘Boundary Crossing’, followed by a short overview of some philosophical ideas. But please note I am not an academic philosopher. Two particular philosophers I highlight are Descartes and Goethe as they represent two realms of thought that I consider relevant in their impact on software development. Notable issues here are: Knowledge Generation, Imagination and the Patterns movement.

I then have some conclusions about how we might progress into the future – both with technology development and technology use.

A Programmer’s Background : Novice – The Early Years

PrimaryI started out being interested in electronics at 17 back in 1974. Originally I was a shy young adolescent nerd who found comfort in the inner world of thought. Also I was not good at dealing with members of the opposite sex, which I believe could be quite a common phenomenon among younger software developers.

Thereafter I gained entry to Southampton University in order to study electronic engineering gaining my degree in 1979. Even at this stage I realized that I wanted to move from hardware development to software development, although I only had an unconscious sense of this physical to virtual transition.

Early programming tasks were a hobby at the time and were based on programming games in BASIC on computers I had built from a kit. There was an initial foray into trying to do an IT records management application which I messed up completely.

Then came the job in the field of media TV and film editing systems where I was definitely feeling that I was working with “cool” tech. Definitely a time of being enticed by the faery glamour of the technological toys.

A Programmer’s Background : Journeyman – The Dangerous Years

DiscusIt was the next phase of the career that I call the dangerous time. A time characterized by the following traits:

  • Wanting to play with more complex and generic structures. (Many of which did not actually get used!)
  • A focus on the tools rather than the problem.
  • The creation of unnecessarily complex systems, letting the internal idea overshadow the external problem context.
  • An arrogance about what could be achieved – soon followed by absolute sheer panic as the system got away from me.
  • No realization that the complexity of thought required to debug a system is higher than that required to originally design and code the system.

This phase of a career can last for a long time and highlights the fact that the programmer needs to become more self-aware in order to progress from this stage. In fact some people never do.

This can be a real problem when recruiting experienced programmers. When interviewing I separate the time into two sections. Initially I ensure that the interviewee has the required level of technical competence, and once I feel they are more settled I move on to see just how self-aware they are.

One question I use here is ‘So tell me about some mistakes?‘ There are two primary indicators that I am looking for in any response. The first one is the pained facial expression as they recall some past mistakes that they have made in their career and how they have improved in the light of those experiences. The second is the use of the word ‘I’.

‘I’ is an important word for me to hear as it indicates an ownership and awareness of the fact that they make mistakes without externalising or projecting it onto other people or the company. This is important because it will show the degree of openness that the interviewee has to seeing their own mistakes, learning from them, and taking feedback. A programmer who cannot take feedback is not someone I would recruit.

A Programmer’s Background : Grumpy Old Programmer

SteinadlerThis ‘Old Grump’ phase is possibly a new one that developers go through before reaching Master level. I hesitate to describe myself as Master but am currently definitely at the Old Grump stage! Traits here I have experienced are:

  • Awareness of the limitations of one’s own thinking, after realizing again and again just how many times one has been wrong in the past. Particularly easy to notice when debugging
  • Realization that maintenance is a priority, leading to a drive to make any solutions as simple and clear and minimalist as possible. Naturally the complexity of the solution will need to match if not exceed the complexity of the problem. Once one has experienced the ease with which it is possible to make mistakes it is always worth spending more time making solutions that are as simple as possible, yet do the job. An Appropriate Minimalism.
  • Code ends up looking like novice code, using complexity and ‘big guns’ when required.
  • A wish to find the true essence of a problem, but when implementing using balanced judgement to choose between perfection and pragmatism.
  • Most people think that because you are more experienced you are able to do more complex work. The paradox is that the reason you do better is that you drop back to a much more simple way of seeing the problem without layering complexity upon complexity. (This strongly correlates with the phenomenological approach)

Next I will be talking about some of the observations I have made throughout my career.
Until next time…

Why Software Development Requires an Evolution of Consciousness

I was recently sent a link to a set of 3 essays by Jack Reeves dating from 1992. He was a proponent of the idea that software was ALL design, even down to the area of testing, comparing it with traditional engineering processes which had a significant focus on the phase of building something. In software development building it is a miniscule part of the process, now frequently done under automatic control, especially if you are using CI (Continuous Integration) systems. This means that the traditional build phase in software is almost a non-operation (called a no-op, or nop, by techies). Click an icon and – bang – its built.

However there was a little nugget in one of Jack’s essays which caused a rather big “Aha!” moment for me. I recently gave a talk at ACCU2013 in April (slides here) which was based on my research into phenomenology and software, words you don’t usually see together, as well as my interest in the struggle between seeing the whole and the parts, as wonderfully researched by Henri Bortoft. Jack Reeves made a point which connected with these ideas of the whole and the parts, monism and dualism, etc. His point is fairly obvious to anyone who has done any significant amount of software development as he identified that the high-level software design influences the detailed low-level design (to be expected), but ALSO that the detailed design will influence (or should be allowed to influence) the high-level design.

To quote Jack:

“The high level structural design is not a complete software design; it is just a structural framework for the detailed design. We have very limited capabilities for rigorously validating a high level design. The detailed design will ultimately influence (or should be allowed to influence) the high level design at least as much as other factors. Refining all the aspects of a design is a process that should be happening throughout the design cycle. If any aspect of the design is frozen out of the refinement process, it is hardly surprising that the final design will be poor or even unworkable.”
http://www.developerdotstar.com/mag/articles/reeves_design.html

I can hear the programmers among my readers saying: “So what?”, but seen from the perspective of how difficult it is to grasp the relationship between the whole and the parts, I now realise that it is this issue that causes such difficulty when writing software systems and why traditional hierarchical methods of management will not work. This should ring significant alarm bells for anyone wishing to manage a software project because due to the inherent complexity of systems it means that the smallest details down in the low-level design can trip up the whole project effort.

This is why I am so sceptical about large system initiatives managed in the traditional way. One of the latest casualties being the BBC DMI initiative which was abandoned after a project spend of £98 million. Ouch.

This does NOT mean that we cannot make large systems, it just means that we must factor in this tight link between the whole and the parts, the high and low level design. This is hard, even requiring a significant evolution of consciousness if we take on the ideas of Henri Bortoft and the Goethean scientific approach.

So much of our culture sits on assumptions that hierarchical structures work. Indeed a top-down approach is the usual way that I have done projects in the past. But I have to jump to the risky items FIRST, many of which will be low-level design problems that, if not solved, will mean the whole effort is a waste of time. This is why I much prefer attacking problems incrementally, which is a much more organic process and also explains the rise of Agile software development techniques.

In the end it means that as a programmer, if I am to be successful, I must be aware of the way I think and how I perceive the world. Maybe this is why I have recently become interested in watercolour painting – but that is another story…

People & Technology : The Boundary Problem : Home Life

If you have seen my earlier post you will know that I am concerned about our lack of awareness of the subtle effects of computer technology on our lives. My deepest concern is about the effects on young children so in this post I am going to talk about the boundaries my wife and I imposed on computer (and TV) use within the home and some of our experiences.

I have been a computer professional since before the early days of the “Personal Computer” boom when we could hardly contemplate that everyone would have their own computer! Many certainly did not even dream of the phenomenal proliferation of “microprocessors” that would take place. That was the word that was used a lot: microprocessor – which highlighted the fact that it was just a super-chip for the electronic nerds like myself. You hardly hear the word mentioned nowadays, but they are still there, usually called just “processors” although thousands of times faster and more powerful and with more fancy names like Core i7 or Phenom.

I also remember sitting at a screen (which was not integral to the computer) typing in commands well into to the late hours at work. But at that time of day I was using an early computer game called “Adventure”, and if you really got into a pickle you would just keep getting the response: “You are in a maze of twisty passages, all alike.”, regardless of the command you typed. Such things used to happen at work since that was the only place where you had enough tech to run the games program. Remember no Personal Computer – or PC – yet!

So I was aware from the early days about the addictive nature of this particular beast. Not only was the game playing addictive, but the programming was (and is) addictive. 4 hours can pass in the blink of an eye if you get “in the zone”. According to folks like Mihaly Csikszentmihalyi, author of the book “Flow”, this is because so much attention is required for the task that we do not have enough attention for noticing the passage of time. This is a central facet of computer technology. It sucks in your attention. No wonder there are social problems. How can you give attention to other people if your computer or phone is taking it all? But I am getting ahead of myself…

Back to home life – my awareness of this addictive nature of technology was shared by my wife and we both decided that it was inappropriate for our young children to use them. I know a lot of the world does not agree with me (yet!), and we knew that we could not stop them playing with computers at their friends’ houses, but we decided on the following rules:

Rule 1: No computers/mobile phones/electronic games AT ALL until the children were 12 or 13.
Thats right – none. Occasionally my work would require me to bring one home, but this was closed away in the box room and the kids were not allowed near it. Especially NO COMPUTER GAMES. Of course when they went to their friends houses they did have games, but in our house it was traditional toys: wooden train sets, building blocks, Lego and so on. [Also, due to our involvement with the local Steiner school we preferred natural materials over plastic. Hence our preference for wooden toys. I currently think plastic toys are ok, but the wooden ones have a nicer feel.]

Well the kids seemed to be ok with not having computers – but the next rule definitely caused complaints…

Rule 2: No TV.
Eventually we would watch DVDs once the children were 10 or so, but NO TV. And no DVD watching in the bedroom. In fact this was when we got the first family computer in the house to watch the films. If we wanted to watch a film we would congregate around it and have our evening sandwiches watching the film as a family. Why only films? Mainly to place a boundary around our viewing – with TV it is too easy to keep on watching just the next programme, and the next, and the next, and so on… We still have no TV despite me working in the business, and my wife and I are quite happy with that state of affairs.

So what about our experiences with this regime?

Certainly there was some complaining from both our daughter and son about how all their friends had these games, or could watch TV. But we were quite firm and simply said something like: “Yes I know my loves, but we don’t agree with that for you at the moment.”

As I said above, the games issue was not a problem, possibly because (a) I was so sure it was a bad idea and was very firm about it, or (b) they really enjoyed their own games that they would make up themselves. They both have wonderful imaginations and we have many happy photos of them playing without a computer in sight.

The “No TV” was more difficult especially as we would go to their grandparents and they would be allowed to watch TV or a video. This was why we introduced watching family films at around 10 years, although with such great imaginations we had to be careful about the content, even though they were age-appropriate films and seemed innocuous to an adult, the children could get quite scared by some scenes. I think adults too easily assume that the consciousness of children is very similar to their own.

There is an important story about our experience related to the “No TV” rule:

One day a friend of the children came around to play and had a shock when he could not find the TV! He was quite bewildered. Meanwhile our children got stuck in and started putting the wooden train set together. He just sat and quietly watched what they were doing, initially without taking part, until my son and daughter pulled him in and started showing him how to play. I was amazed and later found out that at home he was allowed unlimited access to the video player and would keep rewinding and replaying his favourite scenes over and over again. This boy had partially lost the “knowledge” of how to play! In the past this would have been considered a pathological problem, and I am convinced this is becoming more of an issue for the children of today.

If we fast-forward to the present day, both kids are now at university, both have their own laptops, both have them in their own bedrooms, both watch DVDs in their bedrooms. It is now a different phase of their life and they need to be part of the current culture for it is to be their culture. We will see how it develops.

But perhaps some concluding thoughts:

Boundaries must be placed around our use of such gadgetry and in writing this post I have come to see that it is all related to Attention.

The Boundary Problem is giving rise to The Attention Problem.

Our social human communications should not take second place to our electronically mediated communications. You can see an earlier post where I talked about some of the problems inherent with the latter.

Attention is a special thing that we give to the world. Currently we are giving too much attention to our machines, when we need to give more of it to our fellow humans.

People & Technology: The Boundary Problem : Bringing Work Home

At last the mainstream computing world is beginning to catch up with my warnings about unbridled technological use. The latest “Communications of the ACM” has an article entitled “Living in the Digital World” about the effect of gadget use on people’s social behaviour.

I have been a member of the ACM since 1986, having managed to get one of the early super short sexy email addresses ct(at)acm(dot)org so beloved of Unix types. Usually I have been severely unimpressed by most articles from the ACM folk about the existence of any problems with technology use, let alone a balanced view on what those problems might be. Most press has been heavily for technological use, even down into Kindergarten, with what they call the K-12 curriculum.

Oh dear me.

As someone who has programmed computers since the mid 70s I can tell you that coding for this stuff definitely does affect your social skills. I am not your usual uncommunicative nerd type – I like to think that I have quite good social skills – well – as long as you don’t get too close! What I have noticed is that the necessary criticality required to do the “day job” can spill over into your close relationships. This was a primary influence that led to the break-up of my first marriage, although of course as ever there were faults on both sides. But bringing my critical nature home definitely adversely affected my first wife, resulting in her developing allergies galore. My favourite anecdote is that apparently most of these allergies disappeared within a month of me leaving.

Hmmm…

When I found myself doing the same thing again in my second marriage, even I was not stupid enough to think that it was all the other person’s fault. I have now toned down my critical nature when at home and my kids, now of University age, are not backward in coming forward to tell me to “Chillax”. After having realised the problem existed I was extra watchful of myself during their early years and my wife and I have definitely been “good-enough” parents – or so the kids seem to think – honest!

[A problem with parenting is that it is too easy to try so hard to definitely NOT make the same mistakes our own parents did that we “slot-rattle” to the other end of the spectrum and guess what… the effect on our children can be similar to what we wanted to avoid. It seems to be a psychological law.]

So why do I call this issue of technological use The Boundary Problem?

Lets look at a number of places in my own behaviour where I did not have appropriate boundaries:

Without realising it I brought the thinking techniques from work back to the home.
I now know that the highly critical thinking required for software work must be heavily constrained within a close relationship. Of course we need some critical thought, especially if we are parents, but – as a teacher once said to me – there is value in developing a “Nelson’s Eye” and not chasing every little thing. This is easier said than done, especially when it means trying to respond rather than react to a situation that is pressing your buttons!

I was not aware of the effect of programming on my psyche.
This is a biggie and applies to almost every computer professional. In my early years it never crossed my mind that there could be a problem. Soon after the realisation hit me, I went to a computer conference and ran a session to discuss the personal aspects of being a software developer. You should have heard some of the comments! “Navel gazing” was the least abusive one. It is understandable since most technical types like to play with the toys and gadgets. Nowadays things have changed a small amount and with more “techies” you can see the penny starting to drop. I think this is mainly due to what we call “Agile” software development techniques, where you really need to focus on your programming process as well as your technical knowledge. When recruiting programmers the question “Are they aware of how they learn?” is as important as “How good is their technical knowledge?”. If someone cannot take critical feedback it can be very difficult to have them on a software team.

Of course the drive to earn more money just reinforces the “boundaryless” behaviour. You cannot expect companies to control their call on their employees’ time.

Another interesting observation is that when I was younger the gadgetry was much more enticing to me than it is now. I have spent far too many late nights programming computers into the early hours of the next morning to only see the glamorous side. You may see a nice phone. I see just how many hours coding are required to make it work well.

Well that is a small view from the inside of the industry.

In the next post on this topic I will talk about how we as parents dealt with The Boundary Problem at home: A house without computers or TV!

GLIDER CHRONICLES 2011 – August 13th: Modern Beauties – Part 2

So – The story so far. I had just completed the Duo Discus check flight with Chris, my instructor and it was still the morning (just), so the next thing to do was to get one of the Discus single seaters rigged and for that I needed to get hold of someone knowledgeable in such things.

Discus SH3 sitting in its trailer

Let me explain: The three club Discus gliders are kept in trailers rather than in the hangar ready to go. This means that if you want to fly one you have to enlist the help of at least one other soul and put it together – a process called rigging. Luckily the Discus is really easy to rig. Usually on a good soaring day there are a few people who want to fly the single seaters so they all help each other.

However, this was not a good soaring day and could I find someone to brief me in the requisite art? The phrases “hens teeth” and “gold dust” come to mind. Most of the instructors I talked to used to own one but had not rigged one for many years now and were too rusty. In the end I was pointed at the famous Merv, a well known character and fount of knowledge at Lasham who also got his mate, Dave, a current Discus owner, to help out.

Merv is very knowledgeable, an instructor, and possesses a particularly laconic temperament. This coupled with my own psyche resulted in me apologising a lot of the time for disturbing him. My apology rate abruptly increased when I found I had left my diligently purchased BGA wing sealing tape at home and had to borrow some of Dave’s. The guilt rate went up even further when Dave used his car to tow the rigged Discus out to the launch point because yours truly has no towbar on his car! Yeah. I was feeling fairly small by this time, but Dave was great and helped me out in getting ready. Merv was also helping out and doing his instructorly duty briefing me about the flying as well as being ready to observe my performance.

After some final recommendations from Merv to watch out for PIO (Pilot Induced Oscillation) on take-off due to the sensitive elevator I got myself strapped into the cockpit. The radio seemed to have a dodgy connection, but once I jiggled with the panel and its knobs it came good. If it did stop working it was not going to be an issue since this was only going to be a local flight to get the hang of the glider, and given the prevailing conditions it was going to be a short one. I normally carry a spare radio if the conditions are good so that I can either use it as a spare should the main one fail, or sometimes it can be useful to listen to two frequencies at once.


While waiting for the aerotow I was feeling fairly nervous, so just sat in the glider while I waited and calmed myself down and managed to relax. The tug pilot was told I was a Discus virgin (actually the phrase used is: “First time on type”) so knew to treat me gently!

I went through the pre take-off checks and was hooked on. During the take-off run, the elevator sensitivity was noticeable and I did have a couple of PIOs but got it under control fairly quickly. After that it was another lovely flight, albeit under rather overcast skies.

The glider handled very well and I landed back near the trailer where Dave was waiting with his car to take the glider back and help me derig it and pack it back into the trailer.

Shot of SH4 showing the Discus wing shape.

So many thanks again to Merv and Dave for helping me out with becoming current on the Discus.
I am looking forward to many hours of great soaring in these “Modern Beauties”.

GLIDER CHRONICLES 2011 – August 13th: Modern Beauties – Part 1

Recent flying has been hampered by the weather, but I have managed to convert myself to flying the newer Discus single seater gliders, of which Lasham has three. These are beautiful fibreglass and carbon fibre aircraft which were initially built in 1984.

For local soaring flights I had managed to get all the necessary “qualifications”, apart from the final check flight:

1: Bronze ‘C’
– Yep. Got that.
2: 20 hours solo flying, including 10 hours in the Grob102 or similar (i.e. a glas fibre single seater)
– Yep. Got that too.
3: Briefing and check flight with full cat.
– Don’t have that – so this was the day to go and get it.

What on earth is a “full cat”? This is a Full Instructor or FI as the BGA calls it. There are various categories of instructor ratings from those who are “Basic Instructors”, usually the folk who do the trial flights, up to the “Full Instructor” rating that is the person who needs to do this check as well as be on hand to run a launch point.

So – given that there had been a dearth of good soaring days, it was time to get myself converted, although I am still not quite ready to go cross-country as yet. I am only able to do local flights closer to the airfield. For cross country I am going to need to get what is called a Cross-Country Endorsement. This is part of the Red Card and will need two flights with an instructor to cover field landings and navigation. Hopefully coming soon!

Anyway – on to the day’s proceedings.

A wet and dreary Lasham after the rain the night before. Not looking great.

As you can see the morning started with water on the ground since it had been raining copiously the night before. It had also been a hectic week for me at work so it was a difficult thing to raise my sleepy head to get to Lasham when I could see it was not set to be a great day. The forecast was for overcast skies which, as you can see, turned out to be correct. However, I was determined to get the conversion done if possible.

After having got an ASK21 out to the launch point and having grabbed an instructor, the CFI recommended that we should really get the Duo Discus trainer out. This is the 2 seat version of the Discus, and as I found out later is an absolute joy to fly so the initial exasperation at having got the wrong glider to the launch point was soon overcome by the fun of playing with a new toy! Also the K21 would not go unused so I was not too bothered. I always like to feel I keep the “social credit” in the club topped up.

One of the things I really like about this sport is the beauty of the flying machines. They are lovely to look at and I can sometimes quite happily just sit there gazing at them. The next thing I like to do is go up and touch them – usually done under the disguise of cleaning the glider! Of course I also then do the nerdy thing of looking into the cockpit and checking out the toys – whoops sorry – instrumentation, in them.

I suppose the closest thing for me in a powered aircraft would be the Spitfire, but gliding is cheaper and not so noisy! Plus I can have that supercilious grin of feeling more “green”, just.

Lasham Discus SH4.

The Duo Discus. Love those swept wings.

The recent Arcus, but can't afford this.


You can see from the accompanying shots that both the Discus and the “Duo” have swept back wings, in common with many modern gliders. This is to reduce what is called induced drag. I have also included a shot of the most recent glider from the same company, the Arcus, which I happened to see at a recent competition day at Lasham. If you look you can see that the Duo and the Arcus have the same fuselage sections although I only found that out from the Arcus’ Wikipedia entry.


Explanation: Drag

Whether you are designing an aircraft or a racing car, trying to swim faster, or leaning into a strong wind, you will be familiar with drag. Drag is the force that tries to stop you moving through a fluid medium, e.g air or water. But just considering aircraft, drag is generally broken down into two main types: Parasitic Drag and Induced drag.

Parasitic Drag is the drag that happens just because you are moving through the air. Just like when you hold your hand out of a moving car’s window, flat on to the airstream. By streamlining the shape you can reduced this drag. Hence the reason gliders (and fast fish!) have pointed noses. This type of drag increases the faster you move through the air.

Induced Drag is rather more subtle and happens as a by-product of the lift generated by the wings. While flying, as the airflow leaves the ends of the wings it becomes a vortex. [Good image here and you can see my previous photo]. This vortex causes drag on the aircraft and so a lot of research is done to make glider wings that produce as little drag as possible. This is also a reason why you will see winglets on many aircraft, from gliders to airliners. This type of drag decreases the faster you move through the air.

That is but just a quick introduction to the world of drag.

The Discus panel. Clear Nav in centre.

Once the Duo Discus had been checked over we brought it out to the launch point ready for an aerotow and I climbed in to familiarise myself with the cockpit layout. OK. Read that as: I climbed in to play with the GPS system. The Duo and the single seater Discus gliders all have a “Clear Nav” GPS system which is a real help when flying. So, yours truly being one of the original nerd types, I am able to have a wonderful time both flying newer gliders and playing with computers. Great fun!

For the pilots among us, at the time of writing the online Clear Nav manual can be found here. I find this more useful than the PDF version of the manual.

When I had familiarised myself with the controls I climbed out of the cockpit. Wow. It is really deep and I was pulling muscles in my arms I didn’t know I had. Looks like more trips to the gym are required.

Once out of the cockpit I was all raring to go and so . . .

We waited . . .

Waiting . . .

And waiting . . .

So there I was – I had the glider, the instructor was there, the tug plane was available, but the English weather was not cooperating. The cloudbase was too low at around 1500ft for an aerotow to be worth the money.

After my initial accommodating behavior of just waiting 30 minutes and chatting at the launch point and being sociable (I am a very accommodating and sociable person!) I got fed up with waiting and said to my instructor: “Chris I am fed up with this – lets take a winch launch”. So we moved the glider to the winch queue and we took a wire launch.

I could notice immediately just how lovely she was to fly (yes the aircraft are always ladies). We even managed to contact some weak lift and stayed airborne for 11 minutes. Not too bad for a winch launch on an overcast day. By the time we had returned a report came back that the cloudbase had risen and so we were ready for the aerotow.

When flying the single seater Grob102 or Discus the first launch must be an aerotow since it is gentler than a winch launch. For the Discus, the elevator control is more sensitive so the check flight is best done with the Duo Discus. I must admit that I didn’t have a problem with the Duo, but definitely noticed the difference with the single seater.

As I mentioned before I found the Duo a lovely glider to fly. The main foible was the undercarriage. My instructor, Chris, mentioned that you really needed to make sure that it was locked down since the lever could come out of the détente. Also the instructor is not able to lock the lever from the rear cockpit – he has to have faith that the person in the front has done so properly. To try and reassure Chris I had locked it properly I gently thumped the lever to the cockpit wall after I had put the undercarriage down!

Again we found some weak lift but I was mainly concentrating on getting used to the handling. After giving myself more space in the circuit thanks to Chris’ advice, we landed back and Chris signed my log book with the words:

Check for solo Discus. OK. Well handled.
Also, since the sign-off for the Discus is on the Yellow Card I went back to the office and he signed that entry on the card.

Great! Another milestone reached.

It may be a naff (technical term meaning Not Actually Fully Functional) day weatherwise but I was checked out for the Discus. The only thing left to do now was to go over to the clubhouse and find an instructor prepared to brief me about rigging the Discus. Now this is a whole tale in itself and I think I shall leave it to the next posting . . .

Coming soon – the tale of the lesser spotted Discus rigging briefer and yours truly apologising profusely.

HOW TECH-AWAKE ARE YOU?

The title is not a misprint. I do not mean Tech-Aware. I mean Tech-Awake. Here is a little story and some thoughts:

Last Wednesday I was driving home from work and encountered an illustration of the problems of trying to set appropriate rules for traffic.

A High Energy Story
The road in question was a connecting road through an estate. It had a 30 mph speed limit and there was a barrier in front of the opening of a path. I was about 200 yards away from the path when I saw some children walking out from it and congregating next to the barrier. Some of them had bikes and I could see there was a possible hazard. Although the speed limit was 30 miles an hour, I decided to reduce my speed to 15 miles an hour. Sure enough when I was about 50 yards away from the barrier, a high energy child came whizzing out from the path like a particle shot from an accelerator and zoomed out across the road on his push scooter to the other side. All without looking for traffic coming from my direction. At 15 mph it was no problem to stop, leaving about 25 yards between me and the young boy in question.

This is not a rant about the children of today or the lack of parental control. Children bring life to the adult world and this boy certainly had plenty of it! I find myself wanting to celebrate that life.

I would rather question our indiscriminate and mostly unconscious use of powerful technologies that in truth we have less control over than we would imagine. A mantra I have is that accidents happen due to bad judgement. When a bad judgement coincides with the use of a powerful technology, such as a car or aeroplane, the situation is ripe for a tragic outcome.

So let me assess the situation I am in as the driver above:

Firstly : Technology amplifies my existing capacities, or gives me new capacities. Cars allow me to travel faster than walking; Aeroplanes allow me to fly (Wonderful!); and a final example: Computers amplify my thought – well a certain type of thought anyway.

Secondly : I can make mistakes. I am not a machine. I would not want to be a machine – a point of view that I believe confirms my sanity! Like our young children, making mistakes can bring life to our world. I enjoy musical improvisation where frequently a mistake can be turned into a beautiful thing.

So what am I to do?

Time to Wake Up
I have wanted to publish this post because I think that our use of technology is asking a fundamental question of us. It is asking us to become aware and most of all to WAKE-UP in our use of these tools.

The reason why this is so important is that when using a car, aeroplane or computer it is too easy to have too much trust in the system and frequently we go to sleep in some way. We may fall asleep at the wheel, rely on buggy fly-by-wire systems, or let computers (try) do some job we would be best doing ourselves.

So here we are – going to sleep, when we need to be waking up.

With flying it is blatantly obvious just how important it is to be careful. All you need do is look out of the window to the ground thousands of feet below while you are trusting the engine to keep on working. This is why as a pilot you are expected to learn a lot about the aeroplane and its systems, far more than you are expected to learn about car mechanics.

I have heard it said that the best way to make a car driver safer when driving around is to put a 6 inch knife blade on the steering wheel pointing towards the drivers chest! Hmmm. Not too sure about that but I can see the point. (Pun intended 😉 )

Would it be possible to work at holding that awareness of how powerful a machine you are using and to bring your awakeness up to meet the situation? I know I can do it when flying and I do my utmost to do so in the car. Though I can look back to the consequences when I have not done so and have felt especially stupid in those moments…

A Question to Ponder
Well there are some thoughts to consider and this time I will leave you with a question…

Is it asking too much for people to become more awake in their use of technology?

Promises, Promises…

Hello all
Well once again it has been awhile since I have contributed to this blog.

It has become clear to me that one of the last things I want to do when I get home is to sit in front of a computer and carry on typing after having spent all day in front of one writing software. However I still want to get my thoughts down.

So to overcome this I decided to invest, partly as a test and partly out of interest, in a new toy. The toy in question is a copy of the speech recognition software called Dragon Naturally Speaking. As ever with any piece of technology it may take some adjustment but at the moment I am being pleasantly surprised about how effective it is. It does seem to need a computer with a fair amount of power and memory but I am finding it nicer to use than sitting typing. Of course there is always the chance that it is just a new toy 🙂 but if it helps me get my thoughts down here that is all to the good.

So the process I have used for this post is to speak most of the text into the computer and then to edit it by hand thereafter.

Having re-read the last post I realise that I have managed to find a rather good antidote to the problems of the enquiring mind. The answer is quite simple: Exercise, cycling to be exact.

Anyway – down to business.

I would like to connect some of the thoughts of one of my favourite thinkers that I highlighted in that last post, David Bohm, to some recent viewing I have been doing. His writings and comments related to a rather surprising subject (for me) that I normally do not deal with here. So I would like to warn you that I am going to deal with a politically loaded subject. Yet still strongly connected to how people can get stuck into patterns of thought thus leading to behaviour.

We recently bought the DVD of the Channel 4 series “The Promise” and I have to say that this is not viewing you would want to watch just before going to bed. After every episode I would find my mind turning the issues over and over, each time coming back to certain thoughts which would invariably interfere with sleeping. Given also that recently I have read the book “Mornings in Jenin” by Susan Abulhawa which detailed the experiences of families from Ein Hod, there were quite a number of parallels as you would imagine.

Let me say that I am well aware that these are works of fiction, but this doesn’t in any way reduce the value of the thinking one can do, and particularly the imagination of what life might be like for people caught in those conflicts.

My impressions about this whole subject? I was mainly struck by how psychological damage rattles down through the generations. Although I am not so familiar with the details of what started World War 1, it was the reparations from that war that set the context for World War II. And it seems that that in turn set the context of the current crisis being played out in the Middle East. This stream of thought was driven by asking myself the question: How is it that the same mistakes keep getting made over and over again?

So after World War I it was the Germans that were traumatised leading to their dire economic state. After World War II it was the Jews who were traumatised, thus leading to a violent birth of the state of Israel. If one allows oneself the luxury of standing right back from the details of the individual conflicts you can see this tragic progression of traumatisation from one group to another. It was at this point that I remembered David Bohm writing about thought as a system. It is as if the human race in conflict is being driven along like leaves in a storm, but of its own creating. I can well imagine that if one got caught up in the conflict in the Middle East now, one’s view would be affected by the particular experience one had, which in turn would dictate one’s sympathies, be it pro-Arab or pro-Israeli.

The hard thing would be to hold oneself neutral and see the recurring behaviours. My goodness. Could I do that?

So I wonder – would it be fair to think that we are being driven by our own unconscious thought processes. I don’t underestimate how strong the feelings may be for the individual but if the cycle of violence is not to be perpetuated the human race as a group has got to be able to step outside of certain trains of thought and strength of feeling.

Or is that thinking all too detached? In my defence I can only say that my wish is to understand how to stop it happening again. Of course I have not been involved directly in the conflicts I have mentioned so who am I to comment upon them? But make no mistake : it is the weight of popular opinion that will be the strongest force in stopping a conflict. This has already happened in Northern Ireland among other places.

To me – popular opinion is based upon the experience of families. In each example of conflict, the real tragedy is the effect that it has on family life and how people are catapulted out of a very loving environment into a horrible and violent situation. Thus the hurt children of one age become the soldiers of a subsequent one. If only those in power would, when making their decisions, consider in an imaginative way just what effect their deliberating will have on family life, then maybe there would be more reason to hope.

Once again it is a case of thinking being too abstract rather than being imaginatively grounded in reality.

I have experience of a situation where doting grandparents did not see their grandchildren for 10 years due to the fear and instability fostered by the prevailing political climate in the grandparent’s own country. It is so easy to spend time worrying about high level political changes going on but for me the reality of this aspect of the world can be seen in any airport arrivals terminal when you see the love and joy of families being reunited after long absences.

Next time will be on a more upbeat note. Promise!

Till the next time…