Yesterday evening (in the UK anyway) James Bach set a challenge for Rob Lambert:
jamesmarcusbach: @Rob_Lambert Quick tester challenge for Rob Lambert: Define “structure.” You have 10 minutes. #softwaretesting
It got me thinking too and my brain went into overdrive so I thought I would set out my own thoughts on the matter in a blog post.
In his response Rob highlighted several different types of structure and brought out that structures are in essence a ‘system’. I like to think of structures as providing a framework or a set boundaries within which people, or things, should operate.
- The laws of the land – a set of constraints governing how people in the country are to behave;
- Buildings – the walls of the building define the space available to its occupants;
- Skeletons – defines the shape and provides the basis for growth of the person or animal it belongs to;
- DNA – defines the characteristics of the living organism containing that DNA sequence;
- Roads – show us where we should and should not drive.
Some of these structures are more flexible than others; they are easier to change than others. For example there are some fish and animals which, because of their DNA, can change their shape or their colouring to exactly match their surroundings and thus evade predators. This change can happen in an instant. Buildings can be extended but someone has to do something to make that happen and it requires hard work. The impact of structural change can be quite dramatic. If a road is re-routed the impact on the natural environment can be huge and get people quite upset.
Some structures are clearly vital for us: what we know of as the laws of physics attempt to document the way the universe works. It would be horrendous if what we know as gravity stopped behaving in a constant fashion; if the earth’s rotation round the sun stopped we would have massive problems.
In computing we rely on certain structures. For example networking: could you imagine trying to test a network application if there was no defined way of communicating between two computers and every manufacturer did something completely different?
There seemed to be a lot of emphasis at Agile Testing Days this year on education. Our education provides us with a structure and I believe we are each responsible to ensure we keep ourselves up-to-date, that we self-education and strive to be as flexible and adaptable to our environments as possible. We will not do this by sticking rigidly to the requirements of a particular certification body, we have to go out there and do what is right for us and for our clients. We need to be like those creatures that can change in an instant to blend into their surroundings.
Your thoughts and comments are, as always, welcome…