The Global Spiral  is an e-publication of Metanexus Institute. Through articles, essays, book reviews, and news, the Global Spiral  explores humanity's most profound questions and challenges.
Email



If you enjoy this article, consider making an online donation to support the Global Spiral.
View / Add Comments (0) | Printer-Friendly | Email This Article


The Soul of Computer Science, by Richard Epstein, Part 3 of 4

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.

Did you enjoy this article? ... Your donation is tax-deductible to the fullest extent of the law.

Separater


Published   2003.08.20
Comments: Share your thoughts on this article:
View / Add Comments (0)
Printer-Friendly | Email This Article


©1997-2008 Metanexus Institute
www.metanexus.net
Spirital Capital
Templeton Advanced Research Program
Spiritual Transformation Scientific Research Program
Metanexus Global Network Initiative
TRL