“Dedicated to Frank Lloyd Wright”
By Ron Stultz
November 1998
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.