||I have a problem: I
have never come across a computer program that works exactly as it is
supposed to, there always seems to be a degree of unpredictability.
Things that worked once suddenly stop working. Parts of word processing
documents suddenly disappear or reformat themselves without warning and
always at the worst possible time.
One day I realised that software displays many of the properties of sub-atomic particles. The more I thought about it, the more I was convinced that I had stumbled upon something that might revolutionise the software development field - the Quantum Theory of Software.
I also realised that, for the theory to hold, the mass of software must be very small.
So, I decided to measure the weight of the software in my computer.
The process I adopted was firstly to reformat my hard disk to eliminate most of the software from the machine. I then turned it off and weighed it to determine its rest mass, that is, its mass without software.
Next, I switched it on and copied some programs onto the hard disk, each time weighing it.
As a secondary experiment, I tried weighing a memory stick with and without software on it.
The result of these experiments was that I could not discern any difference in weight between the "with software" and "without software" states. From this I deduced that software has a mass so small that I could not measure it.
I will admit that my measuring instrument (the bathroom scales) is not as accurate as I would like, but within the practical limits of this experiment, I am satisfied that software does indeed fall within the province of quantum physics. A follow up to these experiments is to use the kitchen scales to increase the sensitivity, especially when measuring the weight of the memory stick.
One of the basic postulates of quantum physics is the Heisenberg Uncertainty Principle. This states that there is a limit to the accuracy with which you can simultaneously measure the velocity and position of a particle.
The software equivalent of the Heisenberg Uncertainty Principle is the User Uncertainty Principle. This states that you can never build a systme in a time acceptable to the user and simultaneously meet the user's needs.
If you develop a system quickly you will not spend enough time discovering the true requirements and the user will complain that the system does not do what he wants.
However, if you spend a long time analysing and studying the requirements, by the time the system has been delivered, the user will no longer want the system in that form.
This explains why application software will never be really useful from the user's perspective (however, it keeps analysts and programmers off the streets, so it does serve a useful purpose).
The User Uncertainty Principle limits the degree to which any computer system can meet user requirements, given a reasonable development time.
Quantum theory makes a big thing out of observations.
If you do not observe a particle then you can not know the state that it is in. Similarly, in quantum software, until you actually run a program (ie observe it) you do not know how it will behave.
This effect troubles software developers. No matter how much testing they do, they can never determine how it will behave under real life conditions.
This leads me to the assumption that people who write software are also subject to quantum effects.
Project managers should recognise this phenomenon. The work output of a programmer is proportional to the frequency with which you ask him when the project will be finished. Left to his own devices (ie unobserved) he will finish at some unpredictable time. However, if he is frequently observed, he will finish sooner.
This is only a status report on my research and I am continuing to ask questions such as :-
a) What is the software equivalent of a quantum of energy? It might be a bit, a byte, a word or an instruction. However in a radical departure from accepted theory, I am currently working on the hypothesis that it is a keystroke but this does not adequately deal with the mouse, so my research continues into this question.
b) Is there anything to be gained by looking at some of the predictions of the theory of relativity.
Einstein made some interesting statements about space/time. He predicted that time would slow down in the presence of a large gravitational field. It is a well known phenomenon that when you are working on the computer, time seems to pass much more quickly, especially when you play computer games.
Does software warp the fabric of space/time?
Are hackers responsible for problems experienced with daylight saving?
A related observation is the relationship between productivity and project size. The larger the team the less software a programmer is able to write. Is this because of time dilation or because of the increase in mass experienced by the software as the velocity of the project increases?
Bernard Robertson-Dunn, May 2010