Metanexus Views. 2003.08.20. 3190 Words.We continue our four part series on "The Soul of Computer Science" by
Richard Epstein. This section is on "The Alchemy of Work II." Richard G.
Epstein is a Professor of Computer Science at West Chester University of
Pennsylvania. For more information, go to:
http://www.cs.wcupa.edu/~epstein.
-- Editor
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
THE SOUL OF COMPUTER SCIENCE: Part Three of Four
The Alchemy of Work I
By Richard G. Epstein
<epstein@wcupa.edu>
The Alchemy of Work II:
Computer Technology as Soul Work
The second dimension of the alchemy of work is to interpret the work
poetically or symbolically. Some readers might react by thinking, "Well
this is going to be a short section. There really is nothing very poetic or
symbolic about computer science." However, I assert the contrary. There
is so much that is poetic or symbolic about computer science and computer
technology that it would take at least another essay to lay out the details.
In terms of soul work, computer technology is utterly profound and filled
with meaning.
I believe that an appreciation for the symbolic dimension of computing can
have a great impact upon the practical world of computer science and
computer technology. This kind of understanding can potentially transform
the way in which computer science is viewed within our culture. For
example, there is a type of individual who might be attracted to a career in
computer technology if he or she could see the soulfulness in it. Thus, we
could have a more diverse group of people seeking to become computer
professionals. The entry of a new kind of professional, motivated as much
by art and truth as by money, could only help the field to grow and to
branch out into new directions.
The symbolic meaning of computer technology can also help computer
scientists to appreciate their work in a new way, improving the excitement
and satisfaction that they derive from their work. The symbolic meaning of
computer technology can lead to new, fruitful interactions with other
disciplines. Furthermore, as we shall discuss in the next section, the
symbolic meaning of computer technology might have an impact upon other
fields of knowledge, including religion and spirituality, but also the
sciences and philosophy. Thus, attempting to understand computer science on
this level is not a futile exercise.
In this section I will concentrate on two approaches to viewing computer
science symbolically. First, I will suggest that a software project can be
viewed as a mirror image of a "spiritual quest." Second, I will suggest
that the qualities of good software mirror desirable qualities in a human
being. Thus, as we attempt to achieve these qualities in our software, we
can also attend to the soul work that might allow these qualities to
manifest through us.
Let us now consider a person who is working on a software project. How can
we interpret that work as work on the soul? In fact, there are many ways
in which we can view work in computer science symbolically. We shall choose
the interpretation, mentioned above, where the software project symbolizes a
spiritual quest. By a spiritual quest I mean the effort to achieve
authenticity in one's life, to realize one's purpose, what Jung called the
process of individuation.
In describing the parallels between software development and the spiritual
quest, I will sometimes draw upon a hypothetical person, Ben. We will see
that Ben's spiritual quest, his effort to discover his authentic self, has
many similarities with work on a software project even though Ben himself is
not a computer scientist.
The software development process is sometimes described as involving the
following stages or phrases: analysis, design, implementation, testing, and
maintenance. This "waterfall" model for software development provides an
interesting spiritual vocabulary, as we shall see. In fact, there are many
models for software development, but most of them share this basic
vocabulary of analysis, design, implementation, testing, and maintenance.
Let us begin with the stage of analysis. This involves finding out what the
customer needs and developing a specification of the desired system based
upon that understanding. In terms of the soul work of discovering and
manifesting our authentic self, the analysis phase corresponds to a process
of introspection, where we are trying to understand the person that we are
meant to be, the person that God (or, the True Self, or the Universe, or the
Buddha-nature) is trying to create, as opposed to the person that is purely
the result of the conditioning of a particular family, race, religion, or
culture. We want to understand what God wants (God is the customer) and we
want to create ourselves according to that understanding (that
specification). This is the work of analysis.
Let's apply this to Ben. The analysis phase might lead Ben to conclude that
he wants to enter medicine, or music, or to become an athlete. The analysis
phase would give Ben that initial insight into the person that he would like
to become.
The design stage of the software project can be viewed as reflecting the
work that one must do in order to transform one's initial understanding of
one's authentic self (the specification) into concrete actions that can help
to bring about the manifestation of that authenticity. At this stage, we
are still far from authenticity, but we understand who we are meant to be
and we are embarking upon the project of creating that person, or more
accurately, of allowing God (or the True Self, or the Universe) to create
that person. During the design stage we attain a more concrete
understanding of who we are, and we take preliminary steps to bring that
person into manifestation. We design a general architecture or framework
for the life that will eventually emerge.
In the case of Ben, the design stage corresponds to making those preliminary
decisions that will enable him to manifest his authentic self, whether it is
as a doctor, a musician, or an athlete. This requires that Ben take some
concrete steps, like applying to college to study medicine, or enrolling in
a guitar class, or arranging to play on a sports team or joining a gym where
he can work out. The preliminary outlines of the life he will manifest are
beginning to take shape.
The implementation stage of software development means that the preliminary
plans and actions of the design stage, must now be committed to specific and
detailed plans and courses of action. In Ben's case, he actually goes off
to college, he attends classes and he does the coursework needed to get into
medical school. Or, he actually takes the guitar lessons and practices long
hours with his guitar and writes some simple songs. Or, he plays on the
sports team and goes to the gym and actually does the bench presses and
aerobic exercises that his sport requires. This is the implementation
stage. The authentic self is beginning to emerge from the fog of analysis
and plans.
The implementation phase requires that we fix the defects (or, "bugs") in
our implementations. In Ben's case, he goes to college and he finds out
that he has chosen the wrong major. His True Self (God, the Universe) does
not want him to be a doctor. His destiny is to be an artist. There were
some regrettable defects in his original analysis due to parental pressure.
Both of his parents are accomplished doctors. In order to realize his
life's purpose, Ben must major in art instead of biology. Or, Ben takes
guitar lessons and he discovers that he makes a lot of mistakes. He is not
playing that chord correctly. His fingers are not as nimble nor as precise
as they need to be. He needs to refine his methods. Or, Ben plays at his
sport, but realizes he is making some fundamental mistakes. He consults
with his coach and his peers, and he learns how to perform better. He
changes his exercise routine at the gym to emphasize strength and endurance.
He changes his attitude on the playing field.
Let's now consider the testing phase of a software project. In terms of
expressing one's authenticity, this involves forays into manifesting our
authentic selves under limited and low-risk situations. For example, Ben
might practice a particular set of chords to see if he has them right. Or,
Ben might practice an especially challenging song that integrates diverse
and sophisticated techniques. Ben might ask a knowledgeable friend to
listen to his test, or he might record it so that he can evaluate it
himself. Or, Ben can use the approach that some software companies use,
testing before a live audience of paying customers. However, it is probably
best to do rigorous testing beforehand, before manifesting fully in public,
before putting one's reputation fully on the line. Of course, the purpose
of testing is to reveal defects. In terms of developing an authentic self,
the testing process might reveal problems in our implementation, or even in
our design, or in our original analysis.
Those who are doing the soul work of trying to develop an authentic self
would be wise to consider the actual experience of software engineers, like
Watts Humphrey [20], who stress that if you want to avoid major defects
during testing, then you must work harder on the analysis, design and
implementation stages of your project. Very rigorous quality assurance
methods are required in both spheres, the sphere of software development and
the sphere of work on the soul. If we do a poor job during the analysis
stage, we might find ourselves up the proverbial creek at test time or even
after the product is delivered. For example, imagine the pain that Ben will
experience when as a middle-aged doctor, he discovers he really should have
been a musician or an architect. Or, imagine Ben's pain as a washed-up
musician who realizes that healing was his true calling all along.
Now, suppose that we've been through the testing stage. It's time to
deliver our product. In terms of soul work, the authentic self has arrived.
We have authentic presence. We do not have any sense of being a fake or a
fraud. We have satisfied our specifications. We have gone through all of
the stages and now we are an installed, delivered product. Unfortunately,
like a true software project, we never reach a stage of complete stability.
We enter the maintenance stage. Maybe we find that we still have some
defects that need to be worked on. Or, perhaps, we see possible problems
that might arise, so we decide to change our patterns in anticipation of
these future problems. Or perhaps, we realize that although we are doing
well, we could be doing the things that we are doing more efficiently. Or,
we find out that the environment is changing. We need to modify our
behaviors, our knowledge base, in order to accommodate a world that is
changing rapidly.
Thus, the creation of authenticity is a lifetime endeavor, an ongoing
project, very much like a software project. In this sense, our work on a
software project is soul work, even if we do not view our work in that way.
Our work on a software project has alchemical power. We are working on
ourselves and we are also working on the world. On the level of archetypes,
we are helping all of mankind to develop true authenticity. We are helping
all of mankind to develop better mental and spiritual processes.
Our discussion of the software process was based upon what software
engineers call "the waterfall model". In fact, there are other software
processes that handle analysis, design, implementation, testing, and
maintenance in a less sequential manner. "Agile methods," like eXtreme
Programming (XP) are receiving a lot of attention these days. Agile methods
are discussed in Austin and Devin [11] and eXtreme Programming is discussed
in Beck [21]. It would be interesting to recast this whole discussion of
spiritual development in terms of eXtreme Programming as opposed to the
waterfall model. Some of the spiritual laws implicit in eXtreme Programming
might include:
* The customer (the True Self or God) must be on site at all times. In
other words, spiritual development is a highly interactive process with
constant interactions with the deepest parts of our Self.
* Implementation must be done with a partner. That is, one needs at least
one spiritual friend or partner to help one implement the plan for one's
soul.
* Tests must be written before the code. In other words, envision (perhaps
through guided meditations) the finished product and the kinds of scenarios
it might be exposed to.
* The product is developed using frequent iterations, with the customer (the
True Self or God) getting something that works every few weeks or so. In
other words, don't become a saint or a Buddha overnight. Be patient with
yourself. Set short-term goals that are realistic and that will gradually
allow you to get where you eventually want to go.
* Let solutions emerge from the intense interaction with the customer (the
True Self or God). In other words, don't begin with pre-conceived notions
of where you are going. See the system as emerging from an intensely
creative and interactive process.
Let us look at a second manner in which software development reflects back
truths about our own inner reality. Let's consider the desirable
properties of software. As we work to develop software with desirable
properties, we are actually doing the soul work of developing analogous
desirable properties within ourselves. A typical list of desirable
software qualities would include user-friendliness, interoperability,
robustness, good documentation, and security.
For example, a good software product should be user-friendly. We, as human
beings, need to be user-friendly. When we see someone who is working on
trying to make user-friendly software, that can remind us that we need to
work on our own user interface. Perhaps our user interface is not as
user-friendly as it ought to be. We need to make our intentions more clear.
We need to interface better with others. We need to give people helpful,
compassionate, and constructive feedback. We need to be facilitators and
not obstacles to beneficial work that needs to get done. We need to speak
to others with respect, avoiding hurtful speech.
Good software needs to have the property of interoperability. This
certainly applies to human beings as well. We need to be open to interact
with people who are very different from ourselves. We might be a Windows
application, but we need to know how to interact with that LINUX fellow over
there. We don't have the option of saying, "Well, I'm Windows and he's
LINUX, so there's no hope in our communicating and cooperating." We need to
know how to communicate across a broad spectrum of standards and beliefs.
Another desirable property of software is robustness. The software needs to
operate correctly under unexpected situations. This is certainly true of
human beings. We need to be able to function under all sorts of
unanticipated situations. If we get derailed too easily, we need to go
back and modify our software. Manifesting the "blue screen of death" is not
a viable option.
Every good software project needs documentation. There is external
documentation and there is internal documentation. The same applies to
human beings. Our external documentation includes those books that are
truly important for our lives. For example, a Christian might consider the
Bible as her single most important piece of external documentation. For a
Moslem, the single most important piece of external documentation is the
Qu'ran. For a materialist fundamentalist it might be Darwin's Origins of
the Species or Feynmann's Lectures in Physics. But, it is also important
to have good internal documentation. This would take the form of journal
writings and personal reflections.
An important issue for software developers is security. A good software
product must be secure so that those with malicious intentions cannot
manipulate or take advantage of the software to do harm. Likewise, the
human individual must know how to protect his or her consciousness from evil
influences, influences that might sow the seeds of violence and hatred and
greed. I believe that the spiritual meaning of computer security is a huge
topic in itself. There are many spiritual lessons in the realm of computer
security, whether we view security from the perspective of the offense
(e.g., the hacker) or the defense (e.g., the system developers and
administrators).
Other desirable software properties, such as portability, effectiveness,
efficiency, and correctness are also important spiritual properties that
apply to the human person. Correctness has to do with truthfulness and
portability has to do with the ability to operate in new and challenging
environments. Obviously, these are considerations that resonate with
spiritual truths.
There is an implicit research agenda in our discussion of the symbolic
meaning of computer science and computer technology. Issues include
whether an understanding of the soul work within a computer project can help
computer professionals to perform their tasks better and to experience
greater satisfaction and meaning in their work. Certainly, some
professionals would be more open to this approach than others. Another
issue is to see how the lessons of software development apply to work on the
soul. This was implicit in our comment that soul workers would do well to
study one or more formal methods for doing software engineering. These
sources are extremely suggestive of methodologies for working on the soul.
In other words, computer technology suggests an underlying spiritual
technology that might be of great benefit to human beings.
I hope that I have succeeded in showing that mundane work in computer
science symbolizes profound work on the soul. In Moore's terms, work in
computer science has alchemical power. It is not just the individual soul
that is being transformed. It is the world soul as well. More on this in
the next section.
11. Rob Austin and Lee Devin, Artful Making: What Managers Need to Know
About How Artists Work, Financial-Times Prentice-Hall, Upper Saddle River,
NJ, 2003, 201 pp.
12. Sherry Turkle, Life on the Screen: Identity in the Age of the Internet,
Touchstone, New York, 1995, 347 pp.
13. John Brockman, Digerati: Encounters with the Cyber Elite, Hardwired, San
Francisco, 1996, 354 pp.
14. Richard Power, Tangled Web: Tales of Digital Crime from the Shadows of
Cyberspace, Que, Indianapolis, 2000, 431 pp.
15. Winn Schwartau, Cyberschock: Surviving Hackers, Phreakers, Identity
Thieves, Internet Terrorists and Weapons of Mass Destruction, Thunder's
Mouth Press, New York, 2000, 470 pp.
16. Steven Furnell, Cybercrime: Vandalizing the Information Society,
Addison-Wesley, Boston, 2002, 316 pp.
17. Marc (Mordechai) Gafni, Soul Prints: Your Path to Fulfillment, Pocket
Books, New York, 2001, 318 pp.
18. Lewis Richmond, Work as a Spiritual Practice: A Practical Buddhist
Approach to Inner Growth and Satisfaction on the Job, Broadway Books, New
York, 1999, 258 pp. (Also listed as F, below.)
19. Abraham Twerski, Lights Along the Way, Mesorah Publications, Ltd.,
Brooklyn, New York, 1995, 328 pp.
20. Watts Humphrey, Introduction to Personal Software Process,
Addison-Wesley, Reading, Massachusetts, 1996, 336 pp.
21. Kent Beck, eXtreme Programming eXplained, Addison-Wesley, Boston, 2000,
190 pp.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
This publication is hosted by Metanexus Online <http://www.metanexus.net>.
The views expressed here do notnecessarily reflect those of Metanexus or
its sponsors. To comment on this message, go to the browser-based forum
at the bottom of all postings in the magazine section of our web site.
Metanexus welcomes submissions between 1000 to 3000 words of essays
and book reviews that seek to explore and interpret science and religion in
original and insightful ways for a general educated audience. Previous
columns give a good indication of the topical range and tone for acceptable
essays. Please send all inquiries and submissions to <editor@metanexus.net>.
Copyright notice: Columns may be forwarded, quoted, or republished in full
with attribution to the author of the column and "Metanexus: The Online Forum
on Religion and Science <http://www.metanexus.net>". Republication for
commercial purposes in print or electronic format requires the permission
of the author. Copyright 1998, 1999, 2000, 2001, 2002, 2003 by William Grassie.