GERALD awoke with a start. The idea from his dream was still vivid, and he knew that if he didn't get to his machine quickly his brainwave would be lost for ever. He would need to get hold of a new compiler to make his idea work, but he also knew he would be able to buy it, even at this time of day, on the Acme software bulletin board. It was 4 a.m. He set to work...
Is this how applications will be developed in the future - a far cry from the isolated warehouses full of programmers that were common in the 1970s and 1980s? Here are five major factors determining the future of software development. Once you analyse them, Gerald's working life seems a little more normal.
1 Client servers
Firstly, the move to client server architecture has been a major factor. Traditionally, company information was stored separately on a mainframe or mini system. In a client server arrangement, though, the data is held on computers called servers. These can be accessed by applications on networked PCs that are already used for word processing, email and spreadsheets.
This separation of the data from the applications that make use of it has two interesting consequences for the way applications are developed:
. applications are getting smaller, because many features such as security, backup and recovery are now provided by separate database management systems and no longer by the application;
. more applications are being designed to meet the specific needs of groups of users. A modern approach will enable, say, the accounts department and business managers to analyse the same information via separate applications.
Holding the data in one place - separate from the software that uses it - gives much more freedom to applications writers.
They can now develop applications that can be transferred from one organisation to another. The result is that packaged applications are becoming commodities (something that's already happening in the financial sector).
2 Shrinking teams
In the 1970s and 1980s teams of developers were typically very large - often 100 programmers or more - and a project's lifespan could be several years. The software industry has started to reduce the size of both the application and the team, and therefore reduce the risk. With a small team of, say, six people, led by a single project manager, the quality of communication is improved and the project is more likely to be successful.
Reduction of the team size means programmers have to wear several different hats. An increasing number of them will have skills in art, design or psychology. The advent of graphical user interfaces has brought new meaning to the term systems design". Indeed, the term programmer" is no longer suitable for such a multi talented individual. It may be time to resurrect the term "systems engineer".
3 The virtual office
If the future belongs to Gerald, then the virtual office is increasingly likely to become a reality. Graphical user interfaces are being developed which extend beyond the desktop into the "office" itself: many features of the physical office can be emulated in the virtual office (including interrupting colleagues while they are working, or broadcasting messages that can be heard by everyone).
With the right technical support and the willpower to succeed, many information technology (IT) departments will reap the benefits of lower over heads and higher productivity.
4 User power
In many organisations the users are taking over the IT department's traditional role of buyer of IT. In particular, user demand for desktop PCs has accelerated the move to client server architectures. More and more systems development projects are being set up and managed by users, with the programmers coming from the contract and consultancy market.
What users want is something that works at a keen price. They have no interest in "open systems standards" or "the seven layered model", and do not care about reusability and maintainability. They will have been weaned on easy access applications, via Windows, desktop publishing or computer games.
So the software developers of the future must consider how to design user interfaces to satisfy the capabilities of the next generation of users, who have grown up on Sega consoles.
5 A changing market
Gone are the days when a software house could sell a banking package for £5 million to only four different customers. Now the trend is towards high volume sales, and the cost economics is increasingly working against the heavy overheads generated by large buildings full of programmers.
Software will join the fast moving consumer goods sector. Already PC software can be bought at the local garage for only a few pounds. Increasingly we will find software in supermarkets and electrical stores. Software companies will form consortia to sell their products via a bulletin board payment by account, delivery by email.
So Gerald, talented lad that he is, is already in the vanguard of the move away from factory style software development, as he works away into the early hours on his new application. And, when he is too tired to do any more he throws himself onto the bed, falls fast asleep and dreams of becoming the next Bill Gates...