Live data from Hacker News

Why do web sites and software take so long to build? And why is it so hard?

scottporad.com

121–130 of 159 posts

Re: Why do web sites and software take so long to build? And why is it so hard?

#121
I am compelled to pick the following nits:

"Stuff that is made by hand is hard to make, and even more hard to make well, and tends to be less sturdy than things made by machines."

The last portion of this statement is inaccurate. Hand tools (for example) benefit in terms of usability, durability and quality when hand-made. This is why top end cutlery, wood carving chisels, etc. are typically forged by hand. This also typically applies to furniture.

"How often do you think two plumbers argue over the right way to plumb a bathroom?  Almost never!"

Also inaccurate. Clearly the author has never worked in the trades.

"Finally, can you think of any job where people are making really complex things by hand, and which requires a ton of experience and training to be good at, yet everyone and their uncle has an opinion on how long a project should take to get done?"

Pick any form of construction known to man. Budget overruns, issues with building plans, and problems with materials crop up constantly, even with modern building materials and best practices.

Re: Why do web sites and software take so long to build? And why is it so hard?

#122
The article mentions that the customer always thinks it should be done faster or cheaper. I often have the opposite experience. The customer who is completely clueless and has no idea how long things take. I've had customers ask for a link to something and ask if that would be really hard to do. I think it would be really easy for a disreputable programmer to take advantage (and I'm sure many do) of these people.

Re: Why do web sites and software take so long to build? And why is it so hard?

#124
I worked in an oil refinery for about a half year (turnarounds). Turnarounds involved shutting down one part of the refinery for rebuilding and repairs.

A lot of the work involved pipe welding. Pipe welding pays extremely well (for a trade) and that's because it requires such consistently high performance. As a pipe welder, you have to stamp your name into every weld you do. If your weld fails, it could kill people.

They check pipe welds using an xray. If a guy's weld failed xray more than once(and usually more than 0 times), he was out of the job.

Re: Why do web sites and software take so long to build? And why is it so hard?

#125
post #95
post #31

My opinion? Because as much as the software industry loves to adopt the work "engineer", almost none of the sort of websites and software discussed here on HN ever gets anything much like "engineering" in the sense of, say, "civil engineering" done. I think in my ~20year career, I've had only 3 projects that were specified well enough up front that we just "built it according to the plans" and had a satisfied custome…

I'm a civil engineer (five years) and have never been on a project that avoided the problems of a custom poorly specificied software build. Civil projects are a constant dialogue between client and engineer - but we get further monkey wrenched by one additional stakeholder that software doesn't have: local and at times federal government review. If you think software dev is difficult now, wait til your code is regula…

Software for banking and insurance is like this. The product has to accommodate different rules for all 50 states and federal oversight. Changes to just about anything need to be cleared by the relevant state and federal agencies.

Another big difference between physical engineering and information engineering is that when an overpass is completed, the project is done. If you're lucky, someone will come by and look it over or maintain it over the years. There's no such thing as "done" software. When a program wraps up, everybody rushes back in and starts monkeying with it for the next iteration.

Re: Why do web sites and software take so long to build? And why is it so hard?

#126
post #93
post #89

Earlier quoted context omitted.

To be fair, I can see one difference, though, at least here in Euroland: you have all sorts of standards and regulations that buildings and contractors have to adhere to and especially on bigger changes or constructions you would get an independent expert to check whether your contractors and subcontractors did obey all the rules and when they frakked up somewhere along the way, they have to fix it, typically on thei…

We have regulations here in the US also (I had my house rebuilt 10 years ago and recently turned an outdoor deck into an indoor office). But our regulations are primarily safety-related. The wiring must be safe, the pipes plumbed so that drains drain and vents vent, and so on. They don't really inspect the quality of the craftsmanship. If your wall is not load-bearing, they care very little at all about how it is bui…

In the US, the regulations often do little to protect construction clients, particularly individual homeowners. When contractors fail to observe the code, what recourse does the client have? Most often, the only thing available would be a lawsuit. Lawsuits are always expensive. This is especially true when they hinge on a technical question such as: "Did the defendant observe [insert building code citation] while installing the pipes that are now buried under a slab of concrete?" The costs make suing rather unattractive, particularly because here in the US, the loser does not pay the winner's litigation expenses.

Re: Why do web sites and software take so long to build? And why is it so hard?

#127
post #61

Earlier quoted context omitted.

> I think in my ~20year career, I've had only 3 projects that were specified well enough up front that we just "built it according to the plans" and had a satisfied customer at the end. Overwhelmingy, some (or most) of the design gets "made up as we go along". Even on projects with several small forests worth of up-front documentation, there's almost always large areas of vagueness or outright contradictory requireme…

Right, I've worked on many projects where it wasn't really possible to gather all requirements up front. This is hugely frustrating to everyone involved but the fact remains that until you have at the very least a working prototype you will often not be able to generate a final requirements document. On the other hand when requirements are nailed from the very start, the development proccess has been swift, well exec…

Agreed. My experience is that there is way too much emphasis on languages, libraries, and frameworks. Nobody really talks about the methodologies of building software. For any given day on HN, how many articles are about how such-and-such extension for this-and-that language is the best thing since the great pyramids and how many are about how code review can help reduce bugs? Or how to more effectively gather requirements? Or anything about comprehensive testing practices (unit tests are just a small part of effective testing.)

Re: Why do web sites and software take so long to build? And why is it so hard?

#128
post #19

Except that software is written by machines these days. I stopped writing in assembly language after it stopped being cool in the 90's. Even still, you'd have to be hand-crafting machine code in a hex editor to really get all the machines out of the loop. These days I write in an interpreted language using complex libraries that handle a multitude of protocol choices for me. Even if you argue that each of those tools…

Exactly - this article makes the very common (still) (1) mistake of thinking construction of software == writing code. Construction of software is compiler/interpreter/all the machinery that kicks in to take some text or instructions and makes it do something. To correct the analogy with building physical things - you could compare the architect designing a bridge (and arguing with engineers about materials and budge…

The excellent book "Dreaming in Code" (1) follows a software project that takes way longer than expected, keeps changing goals, and is generally a mess. The author says "If the subject of software’s flaws is discussed for more than a few minutes at a time, it is a certainty that someone will eventually pound a fist on the table and say, “Why can’t we build software the way we build bridges?”". Then he shows how the San Francisco Bay Bridge project ended up going very much like a software project, complete with major changes in specs years into building.

And of course, since I'm in Boston I'm required to mention the Big Dig (2), which was a tunnel and bridge project that cost over $14 billion. Oh, and a ceiling panel fell, killing a woman in her car. And the guardrails in the tunnels tend to kill motorcyclists who would otherwise suffer only minor injuries. Plus the all 25,000 of the 120 pound (55 kg) light fixtures in the tunnel ceilings have to be replaced lest more of them fall, maybe killing more people.

But yeah, let's keep trying to make software engineering just like civil engineering.

1. http://www.dreamingincode.com/ 2. http://en.wikipedia.org/wiki/Big_Dig

Re: Why do web sites and software take so long to build? And why is it so hard?

#129
post #17

I'm not sure I understand the author's definition of "handmade." My Rails web app runs on my handmade code with a bunch of handmade Ruby libraries, on the handmade Ruby language, on physical hardware that was made by handmade machines (or machines made by handmade machines, etc.). How is software any more handmade than any man-made technology, like a cellphone or automobile? The distinction sounds necessarily fuzzy.

I'm equally bewildered by that. Everything mass-produced is originally designed in CAD, by a person. Those things are more like software than the items made one at a time by craftsmen. It's a false dichotomy.

Re: Why do web sites and software take so long to build? And why is it so hard?

#130
It takes so long, because we waste so much time rebuilding logic over and over that is neither re-usable, nor unique. Login/out, passwords, security, roles, reporting.

The app logic itself can be written itself but we spend so much time on micro-integration of libraries, or writing them ourselves that we end up wasting a lot of time on things that aren't solving a problem, rather helping to deliver it.

Post reply on HN