Sunday, March 10, 2013

A designer’s last sigh


Perhaps the sentiments contained in the following pages, are not yet sufficiently fashionable to procure them general favor; a long habit of not thinking a thing wrong, gives it a superficial appearance of being right, and raises at first a formidable outcry in defence of custom. But tumult soon subsides. Time makes more converts than reason. - Thomas Paine (Common Sense)

The above words can be true about Society, Government or Art. I practice the Art of Software Programming. I refrain from calling it a science as our practice of software engineering in the services sector has been anything but science. Yet I so believe that in Art lies the eclectic rationality of science.
We build something concrete or tangible from mere bits and bytes. Yet the profoundness of this Art form never awakens our spirit. I believe all software designs have a limitation - a human limitation of perception. This limitation is summed up in the phrase - all technology is an extension of some human faculty. Hence, our software designs have a boundary. We cannot transcend the limitations of our physical being. This limitation of our design is not a curse. Our designs will and should work within the confines of our environment. It is almost like the limitation the formal language of Mathematics has – Godel’s Incompleteness proposition; to prove the veracity of Euclid’s axioms is not possible till we transcend the system from within which we are stating the truth. Despite this limitation, designing a new system within the confines of human sensory perception is as exhilarating an experience as the limitlessness of our imagination.

As a Journalist, I learnt that all news stories are built on the principle of inverted pyramid. The base you build contains 5Ws and 1H (what, when, where, why, who and how). I have realized that the same principle can be followed in designing our systems based on requirements. And here starts the process of abstraction. In abstracting a system, we also try to get the users of the system interested in the system, using communication points or interfaces that they can talk with. This is what a well written news story should do; building the process of tacit, subconscious communication.

When building software systems an underlying, yet very visible, element is communication. This is also true about the impressionist paintings; almost drawing the audience into believing that the abstract art form embodies their own angst. All systems design has to embody this spirit of free communication. We do not build systems that carry data from one point to another, transforming its nature in transit. If that is what we ought to do then we are no better than plumbers. Our systems should have meaning. Our systems should be beautiful. Our systems should fit within the social order of the enterprise.

I draw my idea of the form of design from a principle in nature, which no art can overturn, viz. that the more simple any thing is, the less liable it is to be disordered, and easier repaired when disordered.

The human body best embodies this spirit of design. There is a strange phenomenon that a lot of amputees feel called the ‘Phantom Limb’. They feel body parts that are no longer there. Apparently, the brain maps the parts that it needs to send notification to during the embryonic stages; and later despite the absence of those parts, the brain keeps sending notifications. This design could help the amputees in the future, if those signals from the brain can be tapped to add new limbs. Hence, this design embodies function and form; but can you debate form follows function in this case?

If the art of software design and programming sticks to the spirit of aesthetics and better communication, we might do better business. Software engineering with the unlimited power of solving problems, which hitherto sounded intractable, has built enterprises and world economy. But the same enterprises have throttled the will to build beautiful systems in the name of cheap labor and faster delivery. Whenever I see programmers working at ungodly hours, not because the problem is interesting, but because world economy has tagged them cheap labor, I only remember the following by Alan Perlis.

“I think that it's extraordinarily important that we in computer science keep fun in computing. When it started out, it was an awful lot of fun. Of course, the paying customers got shafted every now and then, and after a while we began to take their complaints seriously. We began to feel as if we really were responsible for the successful, error-free perfect use of these machines. I don't think we are. I think we're responsible for stretching them, setting them off in new directions, and keeping fun in the house. I hope the field of computer science never loses its sense of fun. Above all, I hope we don't become missionaries. Don't feel as if you're Bible salesmen. The world has too many of those already. What you know about computing other people will learn. Don't feel as if the key to successful computing is only in your hands. What's in your hands, I think and hope, is intelligence: the ability to see the machine as more than when you were first led up to it, that you can make it more.” – Alan Perlis

We are in the business of designing and producing good art. This I believe should be the motivation driving our business. Instead of getting on the wagon with others and producing cheap art, we should get on the horse back and see the horizon – perhaps first.