Monthly Archives: July 2011

Myst, Holodecks, Programming, and the joy of (some) intangible work

To contrast with all my posts lately about the psychological and social problems related to intangible work, I present this passage from The Mythical Man Month, by Frederick Brooks. Brooks is with me in that one of his favorite books of all time happens to be The Mind of the Maker, by Dorothy Sayers. He certainly draws on some of those ideas here.

When I find myself enjoying programming (or remembering why I got into it in the first place back when I was just a kid), these sorts of things are what come to the surface.

The Joys of the Craft

Why is programming fun? What delights may its practitioner expect as his reward?

First is the sheer joy of making things. As the child delights in his mud pie, so the adult enjoys building things, especially things of his own design. I think this delight must be an image of God’s delight in making things, a delight shown in the distinctness and newness of each leaf and each snowflake.

Second is the pleasure of making things that are useful to other people. Deep within, we want others to use our work and to find it helpful. In this respect the programming system is not essentially different from the child’s first clay pencil holder “for Daddy’s office.”

Third is the fascination of fashioning complex puzzle-like objects of interlocking moving parts and watching them work in subtle cycles, playing out the consequences of principles built in from the beginning. The programmed computer has all the fascination of the pinball machine or the jukebox mechanism, carried to the ultimate.

Fourth is the joy of always learning, which springs from the non-repairing nature of the task. In one way or another the problem is ever new, and its solver learns something: sometimes practical, sometimes theoretical, and sometimes both.

Finally, there is the delight of working in such a tractable medium. The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination. Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures. (As we shall see later, this very tractability has its own problems.)

Yet the program construct, unlike the poet’s words, is real in the sense that it moves and works, producing visible outputs separate from the construct itself. It prints results, draws pictures, produces sounds, moves arms. The magic of myth and legend has come true in our time. One types the correct incantation on a keyboard, and a display screen comes to life, showing things that never were nor could be.

Programming then is fun because it gratifies creative longings built deep within us and delights sensibilities we have in common with all men.

I shall rephrase his points with a few additional thoughts.

1. It’s fun to make things. My wife just made two six-foot-long benches in the shop behind the house for our dining room table. She had a blast. I have felt the same way about software many times. We make things because God makes things. We are like him in this way first of all.

2. We don’t want to make things in a vacuum. We want to see other people use our things. This is why music HAS to be shared for it to be complete as an art. All artists and craftsmen have a hole in their soul until they witness another human being interacting with or affected by their creation. We don’t just want to make nonsense works – we desire them to be used. Cathedrals are not just beautiful landmarks, but also great places to hold church services. In my own work, I have always gravitated toward producing tools where I can perceive who the immediate users are. I have not, at this point, gotten a lot out of contributing theoretical knowledge or abstract components to open-source projects. I can’t see whatever happens to them. I’m sure my work could help someone out there, but it can be difficult to go through the effort to repackage it in a “sharable” form and then send it into the void. Some people really dig doing this though.

3. We are fascinated by interlocking moving parts that move in cycles. Well, some of us are anyway. This aspect of the making process seems to be largely the domain of the male gender. A friend of mine recently commented that his son loves anything with wheels on it. He probably will his whole life. This is also why I love robots, but don’t like androids. One holds all the fascination of a machine, the other is too much like a twisted human being. For what it’s worth though, Data was still probably the best character on Star Trek.

4. The joy of always learning? I agree completely that there is a joy in learning. I love learning! This blog is little more than an attempt to get a bit more mileage out of my own learning. However, I have not always found myself excited to learn about software development, my discipline. If it will help me solve an immediate problem – yes, but otherwise no. This is why I dropped out of computer science in college. What a drag! I wasn’t learning anything I wanted to know. Everything I wanted to know I could learn on my own online. The same for everything I needed to know to do my job.

The quick and steady cycle of throwing technology in the garbage can and embracing the next new thing every couple of years was (and is) ultimately wearisome to me. I just can’t get excited about the newest version of (fill in the blank). I can get excited about learning new techniques when I have a goal in mind. I would dive into GPU controller code up to my neck in a second if I was motivated to write a cool 3D game. But if someone gave me a job documenting hundreds of pages of the same GPU code and paid me a salary to do it – somebody shoot me. This point needs a bit more nuance.

5. The medium of working on a computer is so flexible! You can create entire worlds, “castles in the air, from air” and design every aspect of how they function.

If you have ever played any of the old Myst video games, you know that the stories involve a family of people who possess a special magic for creating new worlds from scratch by writing books. Their writing craft is not easy though and the characters often lament the instability of the places they create. Some of the worlds are very dangerous to visit in the game because the laws of physics just aren’t working right. The good guys in the game try to create beautiful places for people the live. The evil ones want to make their own worlds and then lord over them likes gods. They both express frustration at the perilousness of their craft. There is a tension between their desire to settle down and have a family, like ordinary people, and their desire to keep experimenting with their creative writing magic.

A similar profession mentioned a few times in the Star Trek universe is the craft of writing Holodeck programs and characters. It’s considered to be rather difficult to do well, as evidenced by the terrible results when some amateur characters on the show take a stab at it themselves. The parallel with writing software is even closer here.

We want to create worlds, just like God, but we can’t fathom how God thinks about things, really. So we have to imagine some sort of in-between material, a language of mediation. For the writers of the Myst books, it was written words on the page – careful descriptions mixed with spells. For the Holodeck programmer or the contemporary software developer, it is some sort of programming language – a special language for describing things and casting our own spells of sorts.

Just as it was easy for the Myst authors to get lost in their work and go crazy, it was a great temptation for Holodeck authors (and users) to become addicted to their creations and their creative processes and be lost and disconnected from their friends and reality too. In the same way, when we bury ourselves too deep in our creation, then we are divided from friends, family, and community. It isn’t healthy. We need these connections to remain intact to remain whole ourselves. They are the things that really matter. To the degree that we can do this today, then technology is no evil. Let us learn wisdom and self-restraint.

Against specialization

We have oriented our job market and our universities to train people in doing one single thing very well, to the necessary exclusion of a hundred other important things. The generalist, the wise fox, is scorned and ignored for his lack of credentials, despite the fact that he may easily be the wisest or most clever person in the room.

“The fox knows many things, but the hedgehog knows one big thing.” – Archilochus, ~650 B.C.

Many of our public institutions are led, not by men of broad understanding or even business acumen, but by men whose only forte is their raw ability to schmooze potential donors. The army is not led by warrior, but by tactician-wonks. They can drop a laser-guided bomb down your chimney, but have outsourced bravery to the special forces and cultural understanding to the diplomats. But of course this is the best way, right? Flying a predator drone is very complicated and hard enough. The pilot can’t be expected to know anything about the people he is watching. He’ll leave that to the analysts.

Actually, talking about the military isn’t the best example. A better example would be to talk about the whole man – not just his work, but his family life, his faith, his community. The classic image of the socially-awkward computer nerd is rightfully worthy of ridicule. So he can write Python code in his sleep, but what kind of father is he? Equally, the socially-savvy Wall Street executive who is never at home? What kind of father is he? What kind of husband is he? Can he sing, dance? Write verse or write a letter to his mother? Is he a good Christian (or good Muslim, etc.), a good citizen? Or is his mostly just a coding machine or a money-making machine?

I think one my favorite passages from Wendell Berry is where he goes after vocational hyper-specialization. He wrote this in the seventies, and if anything, it’s far, far worse today

The disease of the modern character is specialization. Looked at from the standpoint of the social system, the aim of specialization may seem desirable enough. The aim is to see that the responsibilities of government, law, medicine, engineering, agriculture, education, etc., are given into the hands of the most skilled, best prepared people. The difficulties do not appear until we look at specialization from the opposite standpoint – that of individual persons. We then begin to see the grotesquery – indeed, the impossibility – of an idea of community wholeness that divorces itself from any idea of personal wholeness.

The first, and best known, hazard of the specialist system is that it produces specialists – people who are elaborately and expensively trained to do one thing. We get into absurdity very quickly here. There are, for instance, educators who have nothing to teach, communicators who have nothing to say, medical doctors skilled at expensive cures for diseases that they have no skill, and no interest, in preventing. More common, and more damaging, are the inventors, manufacturers, and salesmen of devices who have no concern for the possible effects of those devices. Specialization is thus seen to be a way of institutionalizing, justifying, and paying highly for a calamitous disintegration and scattering-out of the various functions of character: workmanship, care, conscience, responsibility.

-Wendell Berry, The Unsettling of America, p.12

It’s not just the instructional side of higher ed that has been unbalanced in this fashion. The research side has mutated as well. I hadn’t heard of this before, but it’s really interesting and makes a lot of sense. Thanks to John H. for mentioning this in some comments about Zizek.

This ties in with a point Slavoj Zizek made in his lecture yesterday concerning how most major advances in knowledge are made “inadvertently”: you set out to investigate one thing, but then discover something far more significant that you weren’t expecting. He argued that modern academic funding relies too strongly on researchers finding exactly what they set out to find, and has no space for the accidental or contingent discovery “on the side”, as it were.

All that research grant money has rules tied to it that dictate exactly what you must try to figure out. Unexpected or valuable discoveries that may cross disciplines are choked off. Some companies, like Google, have tried to explicitly remedy this situation by letting employees spend 10% of their time on hobby side-projects of their own creation. This has ultimately led to the invention of some of their best and most innovative new products and services. We need more of this in higher ed, which is to say, we need fewer specialists and more renaissance men – more foxes and fewer hedgehogs.

“You’d be crazy to work in a school today. You don’t get to do what you want. You don’t get to pick your books, your curriculum. You get to teach one narrow specialization. Who would ever want to do that?”

-Steve Jobs (from an interview with Wired magazine)

The philosophy of modernity that has largely been driving this change is pragmatism. Pragmatism says that if it works, then it must be true. This drives technology. The technology advocate will always take an isolated case where the “new thing” can be proven to “work” better than the old thing. He implies that it is superior in the context of life and humanity, ignoring the fact that the new technology’s superiority was demonstrated in a vacuum. Eugenics works amazingly well – when you don’t consider any of it’s social side-effects. Out-sourcing your customer support to India is also a no-brainer – if you you are adept at missing the forest for the trees. The cheap plastic product will save you money today, but not later after it wears out quickly. “Teaching to the test” will give your students a better score on that state-mandated multiple-choice marathon, but they will grow to become more shrewd thinkers for having studied the classics (that weren’t on the test). Pragmatism is specialization in action. Powerful but nearly always short-sighted.

Why am I even writing this? Because I believe the dream of the reniassance man is REAL – not the famous astound-the-world renaissance man like Da Vinci, but the average Joe everyday type. Learning skills are NOT a zero-sum game. You don’t have to choose between being great soccer player and playing the violin, seeing each hour of the day as finite and unrecoverable. You do not need to forsake your wife and family to be an effective artist or CEO. You do not have to be a monk or a pastor to be a holy man (or woman). Your brain isn’t a bucket that only holds a fixed amount of knowledge – it is a muscle that grows in strength as you exercise it.

The work you do in EVERYTHING in life, even areas that are seemingly unrelated, will strengthen you as a whole, as a person. Learning to be patient with your children will make you a better manager at work then any MBA program. Learning to play the French horn will make you a better programmer. Reading literature will make you a better construction worker. Go to church, and you may hear the good news that all your pitiful efforts will not save you, but that, never fear, you’ve been saved already.

Neglecting an area of health (physical, mental, spiritual) has great negative implications for the other parts. The hyper-specialization of our vocations has made this the accepted norm. Recovering a respect for the generalist, and learning to follow in his footsteps, will ultimately stand to strengthen, enrich, and wisen our culture and society again.

The trouble of intangible work

We live largely in a service economy, and increasingly in the more extreme information service economy. What exactly is it we do all day? I was going to try to write an essay on this, but it became quickly apparent that would be a lot of work. Perhaps some other time. Instead, I have some random thoughts that shall let take the air.

I was at an office meeting yesterday where an upcoming presentation was being discussed. We were all asked to “bring examples of our work”. The room got very quiet. “Um, like what?” Someone eventually blurted out. I was thinking the same thing. I know all these people. I know they are all intelligent and work hard all week long. But we can’t show anyone an example of our work. It’s almost completely intangible and the effort is spread out wide over many many things, such that you can’t point to anything specific and say, “I made that.” Most of the people in the room were web page editors, along with a few event promoters and programmers, like myself. To another person of their own discipline they could perhaps, given an hour or two, explain what they did. To the man on the street, they have nothing to show.

This passage comes to mind:

A man takes up desk work in an office, becomes a father himself, but has no work to share with his son and cannot explain to the son what he’s doing.

When the office work and the “information revolution” begin to dominate, the father-son bond disintegrates. If the father inhabits the house only for an hour or two in the evenings, then women’s values, marvelous as they are, will be the only values in the house.

When the son does not actually see what his father does during the day and through all seasons of the year, a hole will appear in the son’s psyche, and the hole will fill with demons who tell him that his father’s work is evil and that the father is evil.

-Robert Bly, Iron John, p.20 (edited)

My father was a veterinarian. As an animal doctor he worked with real flesh and blood every day. He performed surgeries on dogs and cats, treated whole fields worth of pregnant cows, and occasionally shot sick horses. Following him around on his calls as a child of about eight years old, I could very plainly see the raw interaction with the world and tangible result of his work. When a horse could walk again properly or an animal gave birth, there was no question. After ten years of that, he moved to take over the family farm from my grandfather. As a farmer it was all tangible too. You work with your hands repairing the combine all day. Finally, it roars to life and you take it into the field in a flurry of dust and noise. Twenty minutes later, it returns and fills up a truck with white clean wheat – enough to easily bake bread for the entire town for a year.

His father before him did the same thing. My great-grandfather lived on the same land, though he raised chickens for laying. Thousands of them. He built 22 large chicken houses across the hillside. They were all painted red. They are all still there today.

I’ve been a full-time computer programmer for about six years now and was part-time for much longer. I know how to make the computers do just about anything I want as long as I have all my tools handy. I’ve worked up through the ranks to be the most senior developer in the company. (All the people above me are in some form of management.) But what do I actually have to show for any of it? Precious little. Every couple of years the wheel is reinvented, data is imported, and life goes on for all the people that use the data to do equally intangible tasks.

I believe that I can teach my son how to work. I can teach him to work hard and take joy in his craft. I believe I can teach him not to be lazy. But I am not sure how to teach him the connection between his labor every day and all the things around him – its connection to God and the created order, to his wife, to his children, to his neighbor, to every other little thing he does. We, as a culture, have compartmentalized these things to ridiculous levels. I’m not just trying to figure out how to teach these things to my kids, but how to understand them myself, while I am in the thick of it.

I think it’s time to shift gears.

A couple of years ago, I attended a programming conference in Portland for the (at the time) new Ruby programming language. In attendance (though I didn’t have the chance to meet him personally) was a very unusual character known only by his handle “Why the Lucky Stiff”, or just “Why” for short. Now this guy was one of the most quirky and clever programmers around. He was a prolific contributor to the open-source community and had written some brilliantly innovative web application development tools. His code was also filled with inside jokes and frequently accompanied by confusing cartoons. Actually, I never quite understood what made the guy tick, but his creative output in my field was incredible. A couple of years ago though, he abruptly dropped off the map, closed down his blog and his twitter account, and disappeared completely. Some comments he posted a few days before this happened perhaps shed light on his reasons:

“Programming is rather thankless. You see your works become replaced by superior works in a year, unable to run at all in a few more.”

He’s right. Such is the nature of this sort of technology. The farmer with draft horses slowly saw his work replaced by engines, but it took a generation or two. Programmers can see their work replaced literally in months. I tried to write an iPhone application a few weeks ago and discovered that large pieces of code from an example book published only nine months ago failed to compile anymore. Last summer, I wrote a new credit card processing website for my organization to replace one that was about five years old. I just heard in a meeting yesterday that later this fall I will be rewriting the whole thing again, with another face-lift and some slightly different technology on the back-end. “Why” makes another humorous and true comment in the same vein:

“If you program and want any longevity to your work, make a game. All else recycles, but people rewrite architectures to keep games alive.”

Too true! One of my favorite games while growing up in the early nineties was The Shadow of Yserbius, an old-school dungeon crawl that connected over the modem to a long-defunct dial-up gaming network run by the Sierra company. I treasured the 10 hours a month of long-distance calling time I was allowed to use to play it after hours. Web browsers didn’t exist at the time. Nobody had heard of the internet. You can still play this game today! Hobby programmers have torn apart the insides and reworked it to run across modern day networks on your Mac or PC using an DOS emulator and imitating the original protocol of the old dial-up servers.

Frederick Brooks, in The Mythical Man Month, writes:

“The last woe, and sometimes the last straw, [in the craft of programming], is that the product over which one has labored so long appears to be obsolete upon (or before) completion. Already the displacement of one’s thought-child is not only conceived, but scheduled.”

In other news, the 100 or so hours of time I put into the payment processing application last year are soon to be replaced. The one the last guy wrote is long forgotten. Now I got paid well for every hour of that and the money was put to good use. I am very glad I have a job. This is not a gripe about work in general (which I think is almost always a sin) but an internal conversation about the difficulties of intangible work. I could have used those 100 hours to learn to play “The Cathedral” by Augustine Barrios, then perform it for next 40 years. I could have spent 100 hours building LEGOs with my kids or reading to my wife. Perhaps I should have written a game! (I have a fun escape-from-robots-in-a-labyrinth one sketched out in my notebook.) Still, those are all fairly intangible things. Nothing near as solid as the farmer conjuring up a truckload of apples from the dirt or a carpenter building a house in what used to be an empty field.

Many philosophers and psychologists and noted that the disconnection of a man’s work with the production as a whole is unhealthy on many levels. Before perhaps, a blacksmith would create much of a machine from scratch. Now, an assembly-line worker welds the same two pieces together, all day long, all year long. This change happened during the industrial revolution. I think the humanitarian problem has been compacted in the digital age. Now, the two things we are welding together cannot even be held in our hands. Advocates of progress would say this is all fine and dandy. Production is through the roof! Just look at how cool this iPhone is! Yes, but at what cost? It is the wholeness of man, the connection to his body, family, his history, his ancestors, and the land. I think it would be beneficial for more theologians to follow this train of thought as well. The more you isolate your discipline, the more likely you are to fall into this trap.

I don’t know how many times I’ve heard the illustration of the three men digging in the field. One says he’s getting a paycheck, the second says he’s digging a hole, the third says he is building a cathedral. The goal of the illustration is to help cogs in the machine become more motivated by helping them see how wonderful the big picture is. I just heard this illustration again in fact a couple weeks ago at a human resources meeting. It’s a good one, but I think it gets repeated so often because we are continually NOT seeing how our intangible work fits into our life and culture. Mental gymnastics alone won’t heal this division.