“Dedicated to Frank Lloyd Wright”
As it is late fall, I am again back into my annual rites of developing computer software code and when I finish this year’s efforts, I am going to place, where the system developer logo always goes, a dedication to Frank Lloyd Wright.
In a way, I dread my fall and winter programming efforts . Not so much the actual efforts once the are underway but the initial start, or ramp up the steep learning carve on the tools used and logic structures required. Not being particularly smart or talented, I usually have to plunge into the effort committing non-stop days and logic-dominated fitful sleeps before I get over some hurdle and settle down into a reasonable pace of thought, design and development.
This year, I began the initial efforts slowly. I would not be trapped not become manic about the development but no matter how much I tried to not let my efforts, struggles and frustrations trap me, I got trapped anyway.
After once particular hard week of 20 hour days and one terrible problem after another, I finally managed to stop work early one evening to read and watch television for a short while and like so many other times in my life, I was rewarded by finding a Public Broadcasting System special on the architect Frank Lloyd Wright.
Watching the show, I first I was consumed by what I saw and heard and did not think about my ongoing programming efforts but soon, I was running a dual thought process in my head of Wright and logic and software then it occurred to me how similar software development was to the work an architect did and how much I enjoyed Wright’s developments but was envious of how much other could see his design efforts and how little others see of my efforts. Whereas architecture works with hard structures and visible forms and features, software development is invisible logic structures which to me can be every bit as elegant and magical as good architecture.
I do not know why software never has a dedication to, on it. Many books have a page in the beginning of the book , dedicating it to someone or place but not software and I find that strange.
Software development is a lot like designing a transmission. Raw data goes in one end, the user’s desires for structure goes in like a “gear shift” and out the back of the transmission comes information.
Often when I design a process transmission, I first start just trying to get the transmission to work no matter how many “gears” it takes and then after I get a working version I begin to refine the process reducing the gears from my initial 10 to perhaps 7 or 8 and then I move on to another process design and development. But sometimes, no, most times, half way through the next process design and development I realize that the first transmission is not very elegant and needs additional refinement and so I move back to the 7 gear transmission and work on it again, reducing the number of gears to 5. Again a sense of elegance is achieved and I move to another process but again I am nagged by some need to refine through the first and so back I go. From 5 “gears” I developed a 3 gear version and it is great. So simple and clean and I am so happy and so I finally move on to the next process and begin this refinement, start another process, move back and refine over and over again.
Then once through all modules, transmissions or processes, I start back through each again, looking to clean up things and make more robust and sometimes I find that when I look at a 3 gear transmission I can not understand how it works anymore! It has become too complicated because of its simplicity! And so realizing that if can not understand how it works, no one else ever will, I take the 3 gears and go back to a more obvious 5 gear solution. Trying all along to achieve some quality and efficiency of design that I feel more than see.
For more Ron Stultz writings, click here.