Live data from Hacker News

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

scottporad.com

101–110 of 159 posts

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

#101
I don't really find software development difficult. When you're developing applications be they web applications or some sort of enterprise widget, the majority of the work is connecting libraries together. Most of the difficulty is in dealing with the incongruities of the various APIs. As long as there is a good process in place I've found little trouble in delivering and estimating software.

As in the construction of any artifact by human means there will be bumps in the road. No amount of technology we can use today will solve that issue. It's a matter of communication and flexibility. One might speculate that great buildings such as the Eiffel Tower or the Empire State Building weren't so perfectly specified as to allow the construction workers to simply, "put the pieces together." Problems certainly arise and must be dealt with accordingly.

Software is no different. We still write programs that guide fighter jets to land on a tiny boat in the middle of the ocean. We've written programs that drive robots across the martian surface. And we also write programs that share our inane thoughts and activities with our friends, family, and random interested strangers. The degrees of failure are still the same and for the most part assessed accordingly: while Twitter will strive for 100% up time there is little money or life lost when it does go down. Whereas when a martian robot plummets into the side of the planet it's a big loss (and has happened). Mistakes are made in engineering. Unanticipated side-effects arise. And we do our best to deal with them as well as we can.

What distinguishes software from contemporary engineering? A couple hundred years of development at the very least. I'd say we've come a long way and have some ways to go. But if you stick with it you might find it.

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

#102
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…

You're absolutely right - safety is key importance, style/'correctness' are secondary.

My dad is a contractor. He can literally build anything. I grew up with this, going on jobs with him, being in that whole space. I do software (but can build things too! :) and the one thing I've inherited from him is the 'do it right' conviction. Just like some of the tv shows where the hero goes in and says "omg, how could they do this?" or "this is all gonna have to be ripped out and re-done the right way because the wall is load bearing", that's my dad.

And for software more and more as the years go by, that's me. Yah, there is no software test we have to take - we just have conventions and patterns, none of which (I've seen) are governed at all, although I'm sure some are somewhere. Sometimes I wish this was the case. I've worked with bad coders and seen code that is unbelievable and part of me thinks this could all be avoided with regulation. But then, obviously, the other part (that wants to stay alive and put food on the table) knows that when this happens, the world changes and software will not be the 'easy' path it is now.

Like my dad, I have that dna in me to do the best job and the right work. But if there were regulation like in the building industry, a whole universe of different types would be out of a job. I don't see it happening in my life time even if AI starts building stuff.

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

#103

You know, it's really easy to build a car. All you need is wheels, brakes, a frame, a power source, a transmission, some fuel, and some crap to connect the power to the transmission to the wheels and the wheels to the frame. And a seat. Oh, and a steering wheel. Boom. Done. You can hand-build a car by yourself over a couple days. I mean sure, the engine, transmission, frame, wheels, tires, seat, gas tank, carburetor,…

Interesting analogy.. I'll take it a little further in the custom/kit car world, it's not unlike the software world. The last 20% takes 80% of the effort, and you can clearly tell the projects that have had thousands of hours put in with attention to detail versus those that haven't. And, not unlike software you can see as a builder where you came from as your craft matures. Looking at a rolling chassis Lotus Super 7 replica I started building 15 years ago, is not unlike my first SaxBasic (VBA) script I wrote not far around the same timeframe. Fast forward 15 years later and it's like really, what was I thinking ? Contrary to brogrammer theory, this stuff is hard, and takes a lot of years of experience and breadth of knowledge to do well.

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

#104
post #37
post #34

I think of software development more as an art than a science. If those questions were asked of a professional painter I think we would hear similar responses. It's all by hand, colors shapes and textures can be amazingly complex in their combinations, standards would only inhibit a true artist, and a painter usually has no idea at all when a masterpiece might come forth. So my answer to "Why is is so hard?" would be…

That's outrageous self-glorification and utterly misleading. Software development qualifies as much as an art as other forms of engineering and most crafts do -- somewhat, at the highest levels, but generally not. Don't justify the shortcomings of current software engineering by nebulously labeling it a form of art.

I don't consider any of those things as shortcomings, simply aspects of anything involving human minds using a creative process. You're right that it's the same as all other forms of engineering, but I would also consider most of that art as well. With that I mostly just mean; despite the laws/science/logic involved, creating something new is usually a creative process.

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

#105

  Plus, in the history of the world, he said, is there one
  thing you can think of that has been hand-made, and on such
  a large scale as software, that was as complex?  [I cannot
  not.]
Yes: musical compositions. The largest software projects are more complex, and take longer to complete, than symphonies. But the failure rate is probably comparable.

There are probably plenty of commercial composers who write music mostly because it’s a job they can do, and they derive a modicum of satisfaction from it. But the composers who have made history — just like the programmers who have made history — do it because they must. If they give it up, they cease to do what they were made to do.

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

#106
post #71

Earlier quoted context omitted.

Thousands times this. I've seen situations like that in all sorts of businesses and software projects aren't unique in their inability to deal with complexities and bad communication. On the other hand, learning to manage software projects gets you an almost unfair advantage at managing "simpler" and more mundane projects where everyone and his mother underestimates the complexities and all the ways things can go wro…

> learning to manage software projects gets you an almost unfair advantage at managing "simpler" and more mundane projects I'd add that learning to write software also gives you an unfair advantage in managing the "complexities" of all other processes you'll encounter in day-to-day life, to the degree that it's (at least for me) incredibly frustrating going through life seeing inefficiencies and "incompetence" (not m…

You're looking at those inefficiencies wrong - they aren't frustrations, they are job security.

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

#107
It's all because developers think they are entitled to interesting problems and amazing coding.

Heck, in my day job i even have to fight to learn my damn goal. Which never is "to code" something. That's always only the means to the end. But still, every Coworker and manager start stating that as the ultimate goal of an engineer in a software department.

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

#108
I think Joel Spolsky had a nice spin on this a few years back:

"Once you've written a subroutine, you can call it as often as you want. This means that almost everything we do as software developers is something that has never been done before. This is very different than what construction workers do. Herman the Handyman, who just installed a tile floor for me, has probably installed hundreds of tile floors. He has to keep installing tile floors again and again as long as new tile floors are needed. We in the software industry would have long since written a Tile Floor Template Library (TFTL) and generating new tile floors would be trivial."

http://www.joelonsoftware.com/news/fog0000000337.html

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

#109
I call bullshit. If this guy was bored because all of his software projects were exactly the same, he should have automated their creation and reused his code so that they took an extremely short amount of time to create. Anyone who can't do that is either encountering novel problems that require decisions, or just not a good enough programmer to automate and reuse.

This is the same way I feel when programmers complain about writing "just another CRUD app." CRUD apps are in fact very difficult to write because of usability concerns. If all of your "create" screens look exactly the same no matter what is being created, that means you are making no effort as a UI designer to anticipate common creation patterns. Even assuming a cookie-cutter UI, a CRUD programmer has to properly model the concepts in data, which is not trivial either.

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

#110

I call bullshit. If this guy was bored because all of his software projects were exactly the same, he should have automated their creation and reused his code so that they took an extremely short amount of time to create. Anyone who can't do that is either encountering novel problems that require decisions, or just not a good enough programmer to automate and reuse. This is the same way I feel when programmers compla…

I was thinking the same thing. I'm relatively new to professional programming, but I do create tools and code snippets that solves/facilitates problems that commonly exists. Isn't that the main function of creating software and using libraries? Code reuse was one of the things that my professors constantly advocated when I was in college.
Post reply on HN