Tuesday, 27 February 2007

The Beauty of Software



Peter writes ...

The beauty of software or a five minute guide to software development.

The beauty of software is that we have never known a product like it. We invented software engineering to cure a disease of low product quality. But there never was engineering like this. Our engineering forebears, the Greeks, the Romans, and the Victorians, did not know software. For them, engineering was the beauty of calculation and design, and then the reification of that design in stone, glass and iron. Software isn’t like this. You never stand back and let the design be converted to a physical reality. The drawing never becomes the pillar. The drawing is the pillar. With software, you always have control of the design. You just press ‘run.’

And software engineering didn’t exactly cure the disease, it just made us more ambitious. You will find software in you car. It has flown you to business and holiday destinations. It looks after your money. It pays you. It recognises that it is you who is stood at the Tesco checkout. It knows your criminal records. It knows your children. It can tell you the whereabouts of that book you ordered. It checks every incoming flight to British airspace and is ready to aim missiles towards any that it does not recognise.

The beauty of software is that it makes you think. It is, intrinsically, concerned with modelling complex systems. So, you can build categories, classes, objects and processes. You can specialise and re-use. Software is built out of defined languages but its design in itself becomes a language: knowledge of class structures and objects allows developers to collaborate on complex designs, without ever having the need to meet each other or even to know with whom they are collaborating.

The beauty of software is, perhaps, that it is only just leaving its teenage years. There are those who lament a craft based childhood where every solution was bespoke. But software had to grow up. The standard package had to be born. There have been enormous problems, but the rise of the Enterprise System was born of the interests of quality and economics. These systems have allowed software to proliferate and to run business operations that were previously out of reach. Today every major company in the world has enterprise systems. And the huge complexity that has resulted has given birth to a new architecture. This is not the architecture of buildings. This is the architecture of software. We talk about classes and objects again, services, layers, and cathedrals and bazaars. Software is growing up.

The beauty of software is that it has allowed the expression of ideals. People talk about the .com ‘bubble,’ usually by chastising imprudent investors but failing to see the cultural shift that lay beneath. The .com, and its three years of hard-labour with friends, is a cultural alternative to the corporate ladder. It is the counter-culture that has assembled a younger, richer, more lauded set of icons than rock ‘n’ roll, than Hollywood (see for example, Hurley, Chen, Page, Brin, Fake). Meanwhile, whilst the mass-media still vaunts the 60s as an age of ideals, they are blind to what is happening now. It is now that ideals are being converted into action. The internet is the greatest collaborative platform ever. And with open source, more people are sharing more of their economic worth than ever before. Who knows where the ideal of open source will lead? What will be its ramifications for wider society? For against it, Woodstock looks just like what it was; a party.

The beauty of software is that it has allowed unlikely British innovators to occupy many of the stellar positions in the history of Computer Science. See Tom Kilburn, Freddie Williams, Tim Berners-Lee, and Alan Turing.

In the end, though, the Americans were king. They got rich on the “stuff”. The British didn’t. And today, a software developer in India can be hired for 20,000 rupees per month. That is the price of laying riches for tomorrow. India's riches. The world's.

This is the world’s product.

++++++++++++++++++++++++++++++++++++++

The picture is Grady Booch who gave the Turing lecture at Manchester in 2007.

Thank you to Russell Bee and Mike Newman for their contributions to our recent classes.

1 comment:

Lei said...

Peter, your contribution helps me to understand the relationship between a number of company's iniatives: SOA, Global Resource, and Agile development methods...Thanks!