Live data from Hacker News

Why writing software is not like engineering (2008)

cs.usfca.edu

21–30 of 62 posts

Re: Why writing software is not like engineering (2008)

#21
post #5

Most engineering projects have standards. Not the cutting edge stuff, but most of it does. Many are from regulations and safety laws setting specifications for this and that, but some are simply there because they won by being the most popular. Software Development by contrast has no standards. You can hire two different enterprise sized companies with this and that certification in the exact same technologies, who c…

I would say that plans sufficiently specific to be done by any supplier and ability to switch supplier would be equivalent to final code and the final step should be done by using appropriate frameworks instead of human contractors. Any repetetive software process with precise specification should be automated with better tools or other higher level abstractions. One reason it's not done more for physical engineering is that the robots or machines would be impractically complicated or expensive or other physical limitations. But even then manaual machining is increasingly getting replaced by CNCs and houses built from bigger prefabricated components. You might choose not having a house made from prefabricated blocks due to aesthetic reasons but in software hardly anyone except small fraction of programmers will complain about electron or too many levels of abstraction under the hood.

Re: Why writing software is not like engineering (2008)

#22
I’ve always considered programming to be equal parts: science, craft, and art. Trying to fit it into a pure engineering discipline misses many of the other benefits of the craft and art of development.

Much of what we do involves not just telling the computer what to do, but communicating with other programmers (through code). This is where elegance and craft can make a significant difference to the success of a project

Re: Why writing software is not like engineering (2008)

#23
There is a major difference between engineering and software development: liability.

If a civil engineer designs a bridge, and it crashes and people die due to a design flaw, he or she can be sued, and even put in jail.

On the other hand, software comes with a license that explicitly makes its authors not liable for design flaws.

When was the last time you had to agree to an end user license agreement before crossing a bridge?

Re: Why writing software is not like engineering (2008)

#25

This seems to broadly conflate CS and Software Engineering. The differences have been covered elsewhere. Stuff like cognitive vs. physical science, (mostly) thinking about thinking instead of thinking about things, or quotes like "A computer is to computer science as a telescope is too astronomy." To be fair, the fact that a lot of us got CS degrees, but really ended up doing software development probably doesn't hel…

The difference is, one is not a science, and the other is not engineering. ;-)

There has always been a dilemma about what to do with bright young people who want to become computer programmers, but who also want to get a college degree.

My mom taught a programming course at a satellite campus of a state university in the 80s. The course was listed in the computer science department, but it was basically Programming 101. Her students were mostly grown-ups. Her students didn't face the dilemma because they already had college degrees, or they didn't. They were getting programming jobs after one year in the course.

My mom's advice to me was that programming was too easy to justify 4 years of college level training, and that I should major in something "real" to use her words. (She has a masters in chemistry). But actually her idea was to use college as a way to build up domain knowledge that could add value on top of programming skill. She thought there would be a need to be able to differentiate myself from the likely flood of people who were taking the 1 year course and getting programming jobs.

This post would come close to trolling if it weren't for the fact that there remain ongoing debates to this day, even in HN threads, about the merit and need for college level training to become a programmer. I'm not the only person wondering about this -- it's a real and hard problem. I actually like the idea of a decent career path for someone who is not interested or cut out to succeed in the college environment, even though I thrived in that environment myself.

Re: Why writing software is not like engineering (2008)

#26
post #20
post #5

Most engineering projects have standards. Not the cutting edge stuff, but most of it does. Many are from regulations and safety laws setting specifications for this and that, but some are simply there because they won by being the most popular. Software Development by contrast has no standards. You can hire two different enterprise sized companies with this and that certification in the exact same technologies, who c…

So engineering before the rise of standards wasn't engineering?

So since the late stone age? When you understand "standard" as an agreed upon common practice, that is. Without that we wont have the pyramids (any of those regardless of continent).

Re: Why writing software is not like engineering (2008)

#28

There is a major difference between engineering and software development: liability. If a civil engineer designs a bridge, and it crashes and people die due to a design flaw, he or she can be sued, and even put in jail. On the other hand, software comes with a license that explicitly makes its authors not liable for design flaws. When was the last time you had to agree to an end user license agreement before crossing…

Well, in Portugal it is illegal to call yourself Software Engineer like on US after 6 month US codecamps.

It is a professional title and while it isn't usually validated, thus only those that sign projects with legal liabilities do make the final exam, every single university in the country is only allowed to have certified engineering degrees.

I am aware of similar practices in other countries as well.

Re: Why writing software is not like engineering (2008)

#29

There is a major difference between engineering and software development: liability. If a civil engineer designs a bridge, and it crashes and people die due to a design flaw, he or she can be sued, and even put in jail. On the other hand, software comes with a license that explicitly makes its authors not liable for design flaws. When was the last time you had to agree to an end user license agreement before crossing…

It might also be instructive to compare with medicine or law. These practitioners are also liable for their actions, have to be licensed by a professional organization, and can have their credentials revoked in the event of gross incompetence. Software designers have none of these burdens.

Re: Why writing software is not like engineering (2008)

#30
post #5

Most engineering projects have standards. Not the cutting edge stuff, but most of it does. Many are from regulations and safety laws setting specifications for this and that, but some are simply there because they won by being the most popular. Software Development by contrast has no standards. You can hire two different enterprise sized companies with this and that certification in the exact same technologies, who c…

It shouldn't want to be engineering in most cases. What a waste if so.
Post reply on HN