Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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.



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.


While I quite like the term artisan in some ways, mechanics do not build new things. You could call a maintainer a digital mechanic if you really wanted I suppose.

From my perspective software engineering will become more like engineering is now over time, just as engineering itself has become more rule bound and safety conscious over time, presumably since around the start of the industrial revolution.

The term engineering carries gravitas because getting it wrong is a big deal, and its becoming apparent the same is true when software goes wrong.


From the book there are levels of "awareness" as a mechanic.

The part where he described "mechanic's feel" was particularly interesting, and there are definite analogs with respect to software engineering.

There’s one psychomotor gumption trap, muscular insensitivity, which accounts for some real damage. It results in part from lack of kinesthesia, a failure to realize that although the externals of a cycle are rugged, inside the engine are delicate precision parts which can be easily damaged by muscular insensitivity. There’s what’s called "mechanic’s feel," which is very obvious to those who know what it is, but hard to describe to those who don’t; and when you see someone working on a machine who doesn’t have it, you tend to suffer with the machine. The mechanic’s feel comes from a deep inner kinesthetic feeling for the elasticity of materials. Some materials, like ceramics, have very little, so that when you thread a porcelain fitting you’re very careful not to apply great pressures. Other materials, like steel, have tremendous elasticity, more than rubber, but in a range in which, unless you’re working with large mechanical forces, the elasticity isn’t apparent. With nuts and bolts you’re in the range of large mechanical forces and you should understand that within these ranges metals are elastic. When you take up a nut there’s a point called "finger-tight" where there’s contact but no takeup of elasticity. Then there’s "snug," in which the easy surface elasticity is taken up. Then there’s a range called "tight," in which all the elasticity is taken up. The force required to reach these three points is different for each size of nut and bolt, and different for lubricated bolts and for locknuts. The forces are different for steel and cast iron and brass and aluminum and plastics and ceramics. But a person with mechanic’s feel knows when something’s tight and stops. A person without it goes right on past and strips the threads or breaks the assembly.

A "mechanic’s feel" implies not only an understanding for the elasticity of metal but for its softness. The insides of a motorcycle contain surfaces that are precise in some cases to as little as one ten-thousandth of an inch. If you drop them or get dirt on them or scratch them or bang them with a hammer they’ll lose that precision. It’s important to understand that the metal behind the surfaces can normally take great shock and stress but that the surfaces themselves cannot. When handling precision parts that are stuck or difficult to manipulate, a person with mechanic’s feel will avoid damaging the surfaces and work with his tools on the nonprecision surfaces of the same part whenever possible. If he must work on the surfaces themselves, he’ll always use softer surfaces to work them with. Brass hammers, plastic hammers, wood hammers, rubber hammers and lead hammers are all available for this work. Use them. Vise jaws can be fitted with plastic and copper and lead faces. Use these too. Handle precision parts gently. You’ll never be sorry. If you have a tendency to bang things around, take more time and try to develop a little more respect for the accomplishment that a precision part represents.




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: