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.