When I graduated from college I read "Zen and the Art of Motorcycle Maintenance" by Robert Pirsig. That was back in 2000. Since then I am pretty sure I read it three or four more times as well as Pirsig's other book "Lila." Matthew B. Crawford was a guest on "Colbert Report" promoting his book which I immediately thought was similar to Pirsig's work. In fact, a good chunk of the book cites Pirsig.
You see, I didn't go into software engineering because it is a dynamic field or because I enjoy working with eccentric characters. Not at all. I am a software engineer because all my life the one thing that makes me happy when it comes to work is building something with my hands.
As a kid my favorite toys were erector sets. As I've grown they got replaced with shotwave radio kits and finally in my early teens by a computer. Even though "Shop Class as Soul Craft" is about manual work I find it applicable to software engineering. After all, maintaining a motorcycle requires very similar cognitive skills as maintaining, say, an order management system software.
Crawford makes an assertion some may find outrageous. He questions the value of higher education. We are indoctrinated from early on that we must become knowledge workers. We go to college. We get graduate degrees. Now, consider thousands of MBAs getting entry level administrative jobs that pay far less than, say, entry level computer programmer jobs and you get the point he is getting at. Why, he poses a question, does a plumber charge you $80/hour while a finance major would be lucky to start at $30/hour ? The difference is that a plumber does something tangible while a finance or business administration major knows a whole lot of nothing about nothing at all.
Ever wondered why your knowledge-worker job is becoming dumber and more mind numbing every day ? In software engineer there are hundreds of books written on the subject of division of labor. J2EE Tutorial starts off with the description of technologist roles each one dedicated to their compartmentalised effort. Well, consider this:
Once the cognitive aspects of the job are located in a separate management class, or better yet in a process that, once designed, requires no ongoing judgment or deliberation, skilled workers can be replaced with unskilled workers at a lower rate of pay.
But while the direction of cognitive thought is moving away from the so called knowledge worker, the management is expending a lot of energy on avoiding responsibility for the decision-making aspects of their work:
...one of the principles of contemporary management is to “push details down and pull credit up.” That is, avoid making decisions, because they could damage your career, but then spin cover stories after the fact that interpret positive outcomes to your credit. To this end, upper management deals only with abstractions, not operational details. If things go well: “Finding cross-marketing synergies in the telecommunications and consumer electronics divisions has improved our strategic outlook heading into the fourth quarter.” If things go badly: “Change the Vonage display? That was the kid’s idea. What’s his name, Bapu or something. Jeezus, these immigrants.”
This is not as uncommon as you think. Have you ever emailed your boss asking a question just to end up getting called into his office to be told the answer verbally ? No successful manager wants to commit his decisions to writing. By telling the engineer verbally the blame for failure can be offloaded onto the Dilbert-like character.
I can rephrase the above scenario like this: engineer suggests a performance optimisation; the manager verbally agrees it is a good idea. When the optimisation goes to production and something goes wrong the manager doesn't accept the blame for the decision -- the blame for failure trickles down to the engineer.
Is that the reason many IT managers are resistant to proper software engineering processes that involve issue tracking and release management ? Perhaps. It is definitely an interesting thought to ponder and I will write on it more later.
As software engineers many of us consider working on brand new projects a more glorious and satisfying career. Here is the catch -- brand new projects require far less cognitive ability and can be labor-divided and outsourced. Maintenance projects, on the other hand, require constant dealing with something not of our own making -- much like car mechanics or plumbers jobs. Crawford explains:
Fixing things, whether cars or human bodies, is very different from building things from scratch. The mechanic and the doctor deal with failure every day, even if they are expert, whereas the builder does not. [...]
Because the stochastic arts diagnose and fix things that are variable, complex, and not of our own making, and therefore not fully knowable, they require a certain disposition toward the thing you are trying to fix. This disposition is at once cognitive and moral. Getting it right demands that you be attentive in the way of a conversation rather than assertive in the way of a demonstration .7 I believe the mechanical arts have a special significance for our time because they cultivate not creativity, but the less glamorous virtue of attentiveness.[...]
Any discipline that deals with an authoritative, independent reality requires honesty and humility. I believe this is especially so of the stochastic arts that fix things, such as doctoring and wrenching, in which we are not the makers of the things we tend. Similarly, in art that is representational, the artist holds herself responsible to something not of her making. If we fail to respond appropriately to these authoritative realities, we remain [ed: absent minded] idiots.
Indeed. A prime example from my personal career is learning compiler construction. In college we were taught how to build own compiler from scratch using lex and yacc. I learned a lot more about compiler construction in grad school where I had to modify an existing Ada compiler. Likewise, I find that software engineers who always built trading systems from scratch and never had to support and maintain an existing one are hardly qualified to do their jobs.
Going back to the issue of separation of cognitive thinking from our work, Crawford points out:
We have all had the experience of dealing with a service provider who seems to have been reduced to a script-reading automaton. We have also heard the complaints of employers about not being able to find conscientious workers. Are these two facts perhaps related? There seems to be a vicious circle in which degraded work plays a pedagogical role, forming workers into material that is ill suited for anything but the overdetermined world of careless labor.Management can't expect workers to be conscientious when their work is reduced to following instructions, processes and procedures. Software engineer can't be conscientious when their work is separated from interaction with business users, sponsors, and analysts. In other words, a good engineer has to eat his own dog food. On the issue of teamwork and office culture, Crawford explains:
we are accustomed to think of the business world as ruled by an amoral bottom-line mentality, but in fact it is impossible to make sense of the office without noticing that it has become a place of moral education, where souls are formed and a particular ideal of what it means to be a good person is urged upon us [...] Where there isn’t anything material being produced, objective standards for job performance are hard to come by. What is a manager to do? He is encouraged to direct his attention to the states of minds of workers, and become a sort of therapist. [...] one finds an imperative for the manager to care, and to sincerely hold forth to his subordinates the possibility of personal transformation. He is not so much a boss as a life coach. The contemporary office requires the development of a self that is ready for teamwork, rooted in shared habits of flexibility rather than strong individual character. [...]
Workers must identify with the corporate culture, and exhibit a high level of “buy-in” to “the mission.” The division between private life and work life is eroded, and accordingly the whole person is at issue in job performance evaluations.
On career vulnerability of managers:
Managers are placed in the middle of an enduring social conflict that once gave rise to street riots but is mostly silent in our times: the antagonism between labor and capital. In this position they are subject to unique hazards. [...] Rather, [ed: their] authority is embodied in the persons with whom one has working relationships up and down the hierarchy [...]
One’s career depends entirely on these personal relationships, in part because the criteria of evaluation are ambiguous. As a result, managers have to spend a good part of the day “managing what other people think of them.” With a sense of being on probation that never ends, managers feel “constantly vulnerable and anxious, acutely aware of the likelihood at any time of an organizational upheaval which could overturn their plans and possibly damage their careers fatally,” as Craig Calhoun writes in his review of Jackall’s book.9 It is a “prospect of more or less arbitrary disaster.” [...]
A good part of the job, then, consists of “a constant interpretation and reinterpretation of events that constructs a reality in which it is difficult to pin blame on anyone, especially oneself,” according to Calhoun. This gives rise to the art of talking in circles. Mutually contradictory statements are made to cohere by sheer forcefulness of presentation, allowing a manager to “stake out a position on every side of an issue. Or one buries what one wants done in a string of vaguely related descriptive sentences that demand textual exegesis.” [...]
When a manager’s success is predicated on the manipulation of language, for the sake of avoiding responsibility, reward and blame come untethered from good faith effort. He may then come to think that those beneath him in the food chain also can’t be held responsible in any but arbitrary ways.
One might be tempted to think this is demoralizing for all involved. But we are highly adaptive creatures, and these circumstances generate their own sort of morality, one in which the fixed points of an internal moral compass must give way to a certain sensitivity and nimbleness. Managers may continue to have strong convictions, but they are obliged to check them at the door, and expect others to do the same. “[M]oral viewpoints threaten others within an organization by making claims on them that might impede their ability to read the drift of social situations.” As a result there is social pressure (one might say a moral demand) not to be too “moralistic.” This pressure is rooted in the insecurity of managerial careers.
And now after such sobering statements I have to take a deep breath. Crawford makes some bold and honest statements about the sad reality of corporate life. Is there much that can be done about it ?
As a software engineer I learned that I find my work far more rewarding when I work closely with the end users. That is, to some extent, why I moved away from working in stratups and boutique consultancies and went to work directly for the customer. I am the happiest when I work with the customer and discover a problem to solve, and then I am given an opportunity to deliver and succeed.
Crawford describes his experience of getting paid for motorcycle repair -- where a wad of $1000 in cash given to him by a happy client was somehow more rewarding than the same amount given for an office job. The reason is because the motorcycle either runs or it doesn't, while at the office he was not being judged based on the results of his work.
First time I got paid for building a piece of software was when I was 13 and I wrote a Lotus 1-2-3 macro for my mom's business partner and got paid $50 for it. That is not a lot now but for mid-90's Ukraine it was. When I worked for a couple of years as a consultant getting my timesheet signed every week and realising that my customer will be utilising my services for another quarter was highly rewarding. Likewise, I am uncomfortable in environments where metrics for performance and compensation are arbitrary and subjective, as most engineers would be.
In any case, whether you agree with Crawford's views on corporate culture or not he does offer a sobering and honest viewpoint on the modern work ethic. It is a must read for anyone considering themselves an engineer and even a manager. It is one of those rare books that offer a society a look in a mirror undistorted by modern culture.