> Automotive mechanics is a learning process, fixing cars is a side effect.
Well, no. but replace automotive engineering - a more direct analogy to software developer - and yes.
> Practicing medicine is a learning process, healing people is a side effect.
As someone married to a physician, you'd actually be surprised how accurate that statement is. There are many thinks we have medical confidence, but there are also many things that we have limited knowledge about - especially new areas of medicine.
----
I don't think your argument sounds that ridiculous. We know a lot about computers. What we often don't know a lot about is the business requirements - which are fundamentally human driven. In my experience, technical knowledge is rarely the limitation for good software. It's an inability to discover the human needs of someone else.
You can't fix something you don't understand, and unique things require a lot of time to figure out.
This applies in many areas. I learned a ton about Atomic Clocks the first time I fixed one... the second time I did it, it was only an afternoon, instead of a week spent in my friend's shop over the course of a month.
So, yes... the main investment is the knowledge learned. It is foolish to waste that effort.
At one point we had 3 of them working, and 3 rubidium clocks and 2 GPS disciplined 10 MHz oscillators... it was wild.
In theory, we could have run one upstairs, and one downstairs to see if we could check relativity... but the tubes have an finite lifespan, so it wasn't worth it.
The Cesium clocks have since been sold... and the memories remain.
> Practicing medicine is a learning process, healing people is a side effect.
> See how ridiculous this sounds?
That sounds perfectly fine to me. I very much profit from the fact that humanity has been healing people for centuries, because it means that treatments, hospitals, and a whole education system to educate doctors and nurses exist.
The fact that some John Doe survived his surgery in 1923 and made a recovery doesn't help me much at all.
Fixing car mechanics is a known process - you got calibrated expectations, developing a new algorithm or drug is an unknown, so it can be described as a learning process. It's search for new values as opposed to exploiting known values. What we are learning is the concrete process at hand and its affordances.
That's because neither of these things you mention are acts of constructing something out of the void. Something unique that will have to be maintained afterwards. Software Engineering has it's own challenges.
Not really. If you are running a car repair shop or hospital, it’s difficult to derive ongoing value from the cars/people you fixed up in the past. The tricky thing is that code shops hold on to their code and often code shop managers vastly over-value that code and under-value the domain experience built up in their employees while fixing up that code.
I agree. But I'm on board with a similar take like: the net present value of a software engineering effort is much larger than the NPV of the end product, because the learning unlocks so much more production down the road.
Well, no. but replace automotive engineering - a more direct analogy to software developer - and yes.
> Practicing medicine is a learning process, healing people is a side effect.
As someone married to a physician, you'd actually be surprised how accurate that statement is. There are many thinks we have medical confidence, but there are also many things that we have limited knowledge about - especially new areas of medicine.
----
I don't think your argument sounds that ridiculous. We know a lot about computers. What we often don't know a lot about is the business requirements - which are fundamentally human driven. In my experience, technical knowledge is rarely the limitation for good software. It's an inability to discover the human needs of someone else.