For us people who use computers regularly, they are an integral part of our routine that we don’t even think about. Even for those who don’t have one indoors, life is still completely run by computers as virtually every organisation around the globe utilises them in some way or other.
But in much the same way that most vehicle drivers have no clue of what really takes place with the technical stuff, most computer users really don’t think about what takes place inside the computer to make it work. Naturally, we can’t be aware of everything that goes on around us, as if that was the case we would be constructing our own houses, performing our own dental fillings and Laser eye surgery, steering our own aeroplanes and we would all be required to be extremely intelligent to comprehend it all!
All the same, the basics of a computer are fairly straightforward to understand, without going into a huge amount of detail. Of course, the hardware that forms the physical equipment is what is perceived to be ‘the computer’ but actually, it is the software we make use of which ensures that the computer does what we want it to do. Without the various software programs we install the computer would simply be a rather boring ornament in the corner of the room, containing a selection of bits of metal, a lot of wires and a Laser eye for reading discs.
But every single program that is installed on your computer began life as an idea in someone’s mind, and unless you have been employed in the IT industry, you very likely don’t realise how much time and energy it needs to create, test and then deploy a new software program. At the outset, there obviously must be a requirement for the product. Some programs are born out of necessity and numerous others we don’t think that we have a need for until we engage with them, but each one has to be designed from scratch.
When it has been decided that there is a need for the program, the team will set to work gathering information about what the program must be be able to achieve. Within the IT company where I was employed, a lot of new additions to the solution came from existing users, but obviously if the software is being designed from the outset, then a little market research amongst future users will provide for those working on it an idea of how the software is likely to be utilised and what end users would want it to be able to do.
Having determined what is necessary, a specification will be drafted detailing what the program is being designed to do. Then an initial outline of how the program will function is drawn up and at last the programmers can begin the work designing and building the program.
Once a first version of the program has been designed, it can be set up for use and will be extensively tested to iron out any bugs and to be certain that all of the processes required work together as necessary. There will usually be problems at this point, so testing is totally essential before giving the software to ordinary users.
For one customised program which I worked on for an account, we undertook such extreme testing and retesting that the whole team was spending many hours a day on it for quite a few weeks. It totally was a question of performing every single permutation of every single process time and time again. When the client eventually started using the software I was doing my best to convince my line manager that he should be arranging Laser eye surgery for each of us, as we all encountered problems with our eyes because of working such stupid hours on the project.
In any case, once testing has been carried out to everyone’s satisfaction and any issues have either been resolved, or are considered too insignificant to waste further resources on for this version of the program, the software will be deployed. Depending on the program, this could refer to the user downloading a new version of a program they use already, or installing a brand new program out of the box. And for bespoke software purchased by a large business, the solution will most likely be installed remotely by the IT team who can get to all of the work stations in the business from one central point. This is really a necessity because a business with a lot of employees will not be able to depend on them all having the same level of computer knowledge. Having in the past worked with individuals who regularly had problems just switching on their computers at the start of the day, and would have no idea that the program disc needs to be put in the machine so that the beam from the Laser eye can read it, I can totally see why big business keeps very firm control on the installation of and access to new software.
Once the software is installed and the end users have been trained, the company that created it will want to carry on maintaining the program. Observations from users are essential as any problem areas will be pointed out and they can then be revisited and maybe changed for future versions, plus any requests for additional functionality can be progressed and tagged onto the specifications for the next update.