The following is from my personal perspective as a lead front-end engineer.

The author mentioned multiple times that civil engineers build bridges. Cool. Bridges are static. Updating a bridge is logistically difficult. You need expensive, heavy machinery. You have to redirect traffic. There are huge safety concerns for anyone standing below the bridge. Some of these things ring true for software engineering too. Voyager I has travelled almost 20,000,000,000 (thats 20 billion) km since it left earth[1]. Hong Kong's subway system transports over 5,000,000 (5 million) people every day and boasts a 99% on-time rating [2]. Google's autonomous cars have driven themselves over 1,250,000 miles since 2009 [3]. What do Voyager, Hong Kong's subway, and Google's cars have in common? They are all powered by software.

I don't dispute that quality is one of the first things to go at most startups, but to say that software engineers aren't "real" engineers because we have different goals and constraints is absurd. PEs (professional engineers) are generally concerned with quality, safety, and efficiency above all. This makes sense because trains, planes, and automobiles can't easily be fixed if something goes wrong. Remember the Toyota fiasco in 2009/2010 when the cars' gas pedals were getting stuck? The driver couldn't stop the car and this resulted in at least 10 deaths and a settlement of $1.1bn [4]. That settlement doesn't include the ~$3bn that Toyota spent in recalls, probes, and redesigning the gas pedal[4]. These are not issues that most startups face. We optimize for fast feedback loops that give us reliable data which we can use to improve the experience of using our product. In many cases, quality is sacrificed in favor of speed-of-development. Is it perfect? No. Is this engineering in the traditional sense? No. Does that mean we aren't engineers? I don't think so.

Building a rocket is difficult from a technical perspective. However, I believe that, in some ways, building a web application is even more difficult. Rockets are not concerned with human behavior. The few humans who will be interacting with the rocket are highly technical and have been through months or years of preparation. That's not the case in the work that I do. On the web, you must account for the knowledge and experiences of every individual using your product. The goal is to come up with solutions that anyone can intuitively understand without explanation, regardless of whether they've been using computers their entire life or if this is their first time. This is inherently a ridiculously difficult problem to solve because of human nature. Accomplishing this goal requires building complex systems that can handle interaction from thousands or hundreds of thousands or millions of individual people, each with their own unique perspective on life and technology. Moreover, there are a number of highly complicated back end systems for things such as automatically scaling infrastructure to meet demand, pipelines for collecting and analyzing logs and data, and storing and retrieving data in an efficient way (in some cases, sub-millisecond analysis over billions of rows).

My point is that this article seems to have been written by an elitist person who does not understand the work of the people they are condescending to. I agree that, in general, software should be of higher quality, but compared to mechanical, electrical, and civil engineering, software is still very young. We are learning the ways of traditional engineering, forging a new path towards reducing time-to-market for new products, and inventing and building for a relatively new platform (the web) at the same time. There will be bumps in the road. That does not take away from the fact that software engineers solve difficult technical problems, which I believe is the essence of engineering.

[1]: https://en.wikipedia.org/wiki/Voyager_1

[2]: http://www.cnn.com/2015/03/29/travel/hong-kong-mtr-success-s...

[3]: http://techcrunch.com/2015/11/02/google-self-driving-car-upd...

[4]: http://www.wsj.com/articles/SB100014241278873246691045782034...