Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login

If anyone ever says that software engineering is completely unlike plumbing, I will point them towards your comment. All systems, however nicely architected, are full of duct-tape solutions like this.


sort by: page size:

There's a whole lot of software engineering that is not plumbing.

Yes, there's a reason why software engineers are often compared to plumbers ...

99% of "software engineering" is about as much "engineering" as laying out and installing the plumbing for a house or smallish apartment building. To the extent that it's more challenging, it's mostly because we're running around trying to hammer nails with screwdrivers and cut copper pipes with butter knives and constantly changing standard pipe & fitting diameters for no good reason.

Software engineers from a CFO perspective aren't any really different than plumbers or carpenters

Plumbing systems are extensively documented and well-understood. The equivalent situation in plumbing would be that the entire layout of the city's sewage system (or similarly, the construction plans for the company's headquarters) is only kept inside the heads of two senior developers, likely because the Powers That Be have decided that keeping accurate documentation is not worth the cost. Preventative maintenance and quality control are impossible, because nobody knows which pipes have been laid first and are the most at-risk from leaking.

Point being: everything is just labour. That doesn't mean software "engineering" should be allowed to fall so far below the baseline we expect from other engineering professions.


exactly, "software engineering" nowadays is just over-glorified plumbing

I also prefer this way.

People sometimes complain that software engineering isn't real engineering then push back on components like these, preferring hairball duct tape for short-term business reasons, which isn't exactly the quality that German and Japanese engineering have.


This comment (and the sibling one by eastbayjake) should be higher up responses, in my opinion. It seems like a lot of people in this thread are interpreting "most software is plumbing" to be pejorative. Plumbing is not a high status job, but I don't think that's a charitable interpretation of the comparison.

The other interpretation is that most software engineering work doesn't require significant theory or novel work. Implementing software solutions to theoretically resolved problems still requires skill. Likewise plumbers very rarely do novel design work, but that shouldn't be a judgement of their skill.

I think the statement, "most software is plumbing" is true insofar as most software developers need design novel solutions. There are existing frameworks, libraries and languages for the vast majority of business needs. That kind of maturity is a good thing.


It’s come full circle. I’ve often heard people (working developers) say over the years that software engineers are basically just digital plumbers. And the job often feels that way. Now we have proof that the skills do in fact overlap quite a bit with plumbing.

Well to clarify my initial comment, the article uses the word "just" to qualify the comparison:

The Bulk of Software Engineering in 2018 is Just Plumbing

In my opinion it's a bit of a lazy analogy and the author doesn't show any real knowledge of what goes into plumbing or how this analogy provides any value.

Software development is full of analogies that are designed to aid understanding of a large array of abstract concepts. This is good! I just don't see why this "software development is just more and more like plumbing" analogy has become so popular in the dev community. I get what they're trying to say, but it says more about how they perceive/approach their work than it says about either field.

I feel like I could provide just as much value by taking all the points this author made, just replacing the word "plumbing" with "open-heart surgery", but everyone reading my article would be like what the heck? It's almost comical:

The Bulk of Software Engineering in 2018 is Just Open-Heart Surgery

Software is great because you tend to get out of it what you put in. The same is true about plumbing (please don't think about that too much ...). But that's not what these types of articles are getting at.


The near entire majority of software development in the modern world is digital plumbing. Very very few organizations practice software engineering

software development is "plumbing" now because many of the common problems have standard and high-quality solutions.

Plumbers don't have to craft their own pipes nowadays because the existing piping solutions are very well understood. It's not as important that the plumber knows exactly how the pipe is produced. They need to know how to set up the interface between the pipes.

Similarly in software, we have high quality solutions to many common problems ("the pipes"). While we do have some people focusing on designing the solutions, in 2018 people don't need to know how to make their own frameworks in order to use one. This reflects a maturity of the industry.


Depends on your point of view, but it sounds like you’re great at software engineering. :)

Abstract thinking and duct tape are the tools of the trade! The tools they’re teaching in this course are just fantastic abstractions held together with duct tape, after all.


Maintaining a distinction between "actual software development" and "plumbing" is elitist, even if you're placing yourself on the downside of that comparison and setting yourself up for imposter syndrome.

You can get an awful lot done by "plumbing". Entire businesses like SAP are built on it. It can also be mission critical; in SpaceX, is the literal plumbing of hydraulic fluid and fuel flow unimportant? No.


Plumbing, building, electrics all require understanding the current state of the system (eg: house that 20 different cowboys have messed with over the years), and weighing up the different possible solutions - sure there is a measure of simple/straightforward work, but same can be said of software engineering.

We work in a different medium, but at a high level I think the process can look very similar, and there's satisfaction in a job well done


This is spot on. An additional factor worth mentioning is the target segment for plumbing and software engineering is huge.

Specifically to software engineering and CRUD type of web apps we are just getting started. Wherever I look around I see a business process that could potentially be automated. Much of the clerical work is still repeatable manual work parts of which could be automated.

I like that you mentioned plumbing alongside software engineering because they are similar to each other in more than one way. People think software is build it shut it, but no. Similar to plumbing it also needs routine maintenance work (preventative as well as reactive).


Who told you software dev is based on science? It's clearly based on toilet plumbing.

Precisely. I would have been less charitable in my response. Most software development is plumbing. To say we're solving new problems all the time and then to set that in some unclear opposition to what structural engineers do... I mean, just like software, each SE's project is different and yet similar across cases. That's uninformative, to say that least. So if you want to contrast them, it's best to actually know what you're talking. Also, I always hated occupational narcissism. It's a sign of narrow-mindedness.

(Besides, the question about whether software development is engineering or craft is very much real. John Allen, John McCarthy, Bertrand Meyer and Peter Denning have all written interesting things about this subject.)


Yet another example that software engineering isn't.

Most of professional software development is knowing what's out there and connecting them together. It's basically data plumbing. There's nothing wrong with that, running water and sewage are two of the pillars of civilization!

The problem is that lots of companies have high opinions of themselves and even if most of their work is plumbing and plumbing supplies, insist on having a hydrographer and a physicist on staff in case they really really need an R&D program that can produce a O(k) B-tree or some nonsense.

next

Legal | privacy