
Zen and the Art of Software Maintenance - ingve
https://www.sicpers.info/2019/10/zen-and-the-art-of-software-maintenance/
======
tjridesbikes
After I read Zen and the Art of Motorcycle Maintenance, I went and bought
myself a ‘71 Honda CB350, almost the exact bike Pirsig rode in his book. I
found that fixing this motorcycle, taking it apart, fixing internal component,
figuring out how everything ties together, and upgrading worn out or otherwise
non-functional components, and putting it all back together, felt
extraordinarily similar to my day job as a software engineer. There’s even the
same “loop”: fix one thing, turn it on to test, then turn it off again and fix
the next thing. The turnaround time is waaaaayy slower, and there’s a lot more
opportunity to hurt yourself, but the skills as a programmer translate very
well to motorcycle maintenance. Interesting to see that I’m not the only one
who sees these similarities.

~~~
ken
And yet, even after seeing firsthand that computer programming is
"extraordinarily similar" to the work of a vehicle mechanic, you still refer
to it as "software _engineering_ ".

Do we think it has anything in common with engineering? Why not call your work
something like "software mechanic" or "software artisan"? What is with the
continued need for programmers to try to aspire to engineering, while not
actually being licensed engineers or practicing engineering?

I don't think anyone outside the field takes programmers any more seriously
when they call themselves "software engineers". Software overall is still
late, slow, hard to use, buggy, and insecure. Nobody's fooling anyone.

~~~
amiantos
To engineer something is, apparently, by definition, to "design, build, and
maintain [a physical thing]".

What I do as a developer is "design, build, and maintain" some software, and
while it may not be physical, the use of the software is a physical activity.
In this way, software has a physical existence at the very end of the process,
same as a bridge or other object, though you just touch or fiddle with it
through an intermediary physical object.

I'm not sure I see why someone would be upset about use of the term engineer,
unless they are an engineer and somehow see developers as 'other' and it makes
them angry that someone may be intruding into what they perceive as some
private club.

Besides, I didn't decide to be called a "Software Engineer", that was a title
bestowed upon me by a company. Before that I called myself a "programmer" and
that's what I tell people I am. Now that I know "software engineer" might
annoy someone and/or make me seem loftier / more worth taking seriously,
perhaps I'll start calling myself an engineer.

------
whalesalad
Everyone in our circle of nerds recommends this book and all three times I
tried to read it I found it absolutely unbearable. It collects dust in a
donation box that I haven’t mustered the strength to carry down to goodwill.

Does anyone else share this sentiment? Did you ever crack the reason why so
many love it? Obviously taste is subjective and we are not all supposed to
like everything but I’ve always felt like the odd man out with this specific
text.

~~~
cm2012
I wholeheartedly agree. "Pretentious" is the word I would use for it.
"Insincere" is another.

~~~
varikin
I also dislike the book. As someone who loves motorcycles and fixing an old
Honda myself, it is something I want to love. To me, the protagonist is trying
to show how smart he is after reading some intro to philosophy book.

~~~
ppseafield
It made a lot of sense to me as an undergrad philosophy student, reading it
shortly after I graduated. IMHO the book is somewhat better if understood as a
criticism of the Socratic pursuit of universal Truth if you are familiar with
the context. But unfortunately this book is recommended to a general audience,
for which I think it is a poor novel.

Pirsig did have at least some formal academic knowledge of philosophy though.

From Wikipedia [0]:

> Pirsig earned a bachelor's degree in 1950 from the University of
> Minnesota.[8] He then attended Banaras Hindu University in India, to study
> Eastern philosophy and culture. At the University of Chicago, he performed
> graduate-level work in philosophy in the Committee on the Analysis of Ideas
> and Study of Methods but he did not obtain a degree there. In 1958 he earned
> a master's degree in journalism from the University of Minnesota.

[0]
[https://en.wikipedia.org/wiki/Robert_M._Pirsig#Early_life](https://en.wikipedia.org/wiki/Robert_M._Pirsig#Early_life)

------
lidHanteyk
In Pirsig's second book, Lila, he returns to examine what the romantic-
classical synthesis looks like from another perspective: the _moral_
perspective. He imagines the moral qualities of the world. What are the moral
qualities of a motorcycle? How ought a motorcycle to behave?

Pirsig proposes a thought experiement, the "chemistry teacher" experiment,
where a chemistry teacher is left on a beach to rot. Through this experiment,
he concludes that the morality of chemical objects, of atoms and molecules, is
precisely the rules of chemistry. Indeed, Pirsig supposes that most of the
natural world is like this, where things do as they ought already.

(I would close the door by suggesting that, in the Discordian tradition, the
morality of people, and indeed any sapient creature, is to _do as we like_.
This not only neatly lines up with Pirsig's philosophy, but also gives that
the Free Will Theorem still holds and is useful!)

So, what is the morality of software and computers? The morality of physical
computers is quantum electronics, and the morality of software is information
theory and mathematics itself. I'm humbled.

~~~
maxerickson
Metaphysics considers the possibility of a universes with properties different
than ours.

If such things exist, then things in our universe behave as they are more than
any ought.

~~~
dekken_
Metaphysics is more philosophy than physics

~~~
maxerickson
Yeah, I must be pretty confused to post a comment about metaphysics in reply
to a comment discussing the morality of chemistry.

------
LostInTheWoods2
At the end of day, the customer does not care if, for example, you implemented
their project as giant if-then conditional; as long as it works. It is the
craftsman in us that makes us write quality code; it is something we
ultimately do for ourselves.

~~~
lazyasciiart
At the end of the day, it's a lot less likely to work if you write a giant if
condition. So yes, the customer won't care _why_ it works or doesn't - but
quality code has impacts they can feel.

~~~
indigochill
My experience has also been it's a not-entirely-Zen experience extending giant
if conditions even if they technically work fine for the current use case.

------
ssbsvvv
I feel every chapter from this book can be pulled out and can be converted
into a blogpost in its own right.

This blogpost touches only on a chapter of the book.

Nevertheless, nice, short read.

~~~
charlieflowers
Are you talking about “zen and the art...”, or are you talking about a book by
the author of the blog post?

~~~
emmelaich
The Pirsig book, I'm sure.

