Perception is reality
-- Bree from Desperate Housewives
During the years I have noticed – and become convinced - that success of software projects has surprisingly very little to do with software technologies but much more to do with our perception of the world. Software projects seldom fail because Java was used instead of C++ or because PERL was used instead of Python. The hard truth is that – ignoring project management - software projects succeed because of our ability to align our perception of the world with problems in the domain in which we work as well as with the underlying technologies we use.
When thinking about perception and reality in the area of IT development I come to think about the TV soap opera Desperate Housewives where one of the main characters Bree in an episode condensed one of the corner stones of software engineering into three simple words: Perception is reality. The interpretation I attach to Bree's statement is that each person views and understands the stuff that is out there – the real world - through their perception of it.
What Bree stated may sound like a triviality but the three magic words is the stardust of which software is made. Success in software is not fundamentally based on technical gadgetry or the latest hardware. It is based on how we view the real world – our perception of reality. Unfortunately this point is more than often missed in IT shops.
Most people, myself included, are used to real things and do not want to learn a new skill such as dealing directly with information that is more suitable for a computer. Our brains, through evolution, were trained to react to the stuff we call reality and will fight very hard when trying to adapt to new artificial concepts. With modern software techniques we can avoid torturing our brains by creating software that generates illusions of familiar objects from reality, or our perception of reality, as opposed to dealing with bits and bytes.
Now, what has illusions to do with perception and modeling? It has everything to do with modeling. Our perception must be presented by a computer to a user and for that we need to trick the computer into generate an illusion of what we want the user to perceive. To create the illusion we must first model our perception of the real world.
You may wonder why I keep emphasizing - and separating - the real world from our perception of the world. It's simple: in many IT departments there is a view that the two are one and the same. Not so – the real world can be viewed from many angles in different ways where some features are emphasized in favor of others. To understand that the two are not the same avoids dogmatic views that one view of the world is the right one whereas all others are wrong.
In order to perform the feat of modeling our perception of the world, as a developer I must know and understand the illusion before I can write the code so the computer can present the illusion to a user. In this sense as a developer I must work at two levels simultaneously: what’s behind the illusion and at the level of the illusion.
It is becoming clear that one way or another we must transfigure our perception of the real world into something a computer can understand. It is important to understand that in the process of doing so we will remove large chunks of the information that form our view of reality. After all, no software projects attempts to create an illusion of everything – if that was the case the DOIT function would do the job.
Now - I can understand you might wonder why I go on rambling about the real world, perception, illusion and modeling. It is simple: I just want to turn the focus away from the almost obsessive focus on technologies in today's IT development. I have seldom seen a software project go bad because of the choice of a technology. However, have seen MANY projects go over budget, fail or simply be cancelled because developers, designers, architects and managers believed that the latest products from the main software vendors could solve all problems when in fact, the products with few exceptions often created far more problems than they solved.
I have to say thanks to Bree for pointing out a cornerstone in software engineering. It is a shame though that a fictional character from a TV Soap Opera has to teach the IT community a fundamental principle that more than often is ignored in IT shops.
Before closing this entry - this final quote has always been of great help when trying to get a perspective on what we are really doing when developing software systems:
He said that for a sorcerer, the world of everyday life is not real, or out there, as we believe it is.
For a sorcerer, reality, or the world as we all know, is only a description’
-- Carlos Castaneda, Jurney to Ixtlan, The lessons of Don Juan.
No comments:
Post a Comment