3 ms·
> scattershot haphazard endeavor that involves trying dozens of angles until one of them works Sounds a lot like engineering/design/art. There's a large amount
by Denzel 9y ago
> scattershot haphazard endeavor that involves trying dozens of angles until one of them works
Sounds a lot like engineering/design/art. There's a large amount of overlap between the three.
I had the pleasure of speaking to the principal electrical engineer whose firm was responsible for designing the entire electrical system for One World Trade Center in Manhattan and the Citi field as well.
He described his work a lot like a software developer would describe their own. And then, in his words, when his company was done they "passed the plans over to the electricians to build it".
It just so happens, in our profession, we've automated the part that electricians are responsible for in his project. Our electricians are called compilers. They dutifully carry out the plan and from time to time they surface warnings/errors back to the engineer for input/correction.
People conflate the meaning of software development because one person shares so many different responsibilities, that are usually handled by separate people in other professions: architecture, design, analysis, implementation, maintenance, etc.
What a civil/electrical/mechanical engineer does isn't so different from what a software engineer does. It's a "scattershot haphazard endeavor that involves trying dozens of angles [based upon guiding principles] until one of them works" usually run through loads of simulation and analysis. Now, the difference is, when these engineers want to bring their idea into the world it takes physical labor, unlike software development where the feedback loop is near instantaneous. We bring our programs into the world with compilers and can run them immediately.
I mean, there are plenty of examples where civil/electrical/mechanical engineers failed in their design and thus created a bug in their project. See [1] or any contemporary CPU from AMD/Intel or automobile recalls or spacecraft failures, etc.
There are certain principles of software engineering that lead to more effective software. That's a fact. And the companies that understand this fact will not fail to startups, in fact they exhibit a severe technological advantage.
Google and Facebook are two companies that understand software engineering. Talk to the YouTube/Instagram teams and see whether they felt better off -- technologically -- before or after acquisition.
[1]: https://en.wikipedia.org/wiki/Citigroup_Center#Engineering_crisis_of_1978 https://en.wikipedia.org/wiki/Citigroup_Center#Engineering_c...
- mdpopescu 9y agoAgreed. Reading [1] was a fantastic eye-opener for me. The code is the design, and design is always "trying until it works". [1] http://www.developerdotstar.com/mag/articles/reeves_design.html http://www.developerdotstar.com/mag/articles/reeves_design.h...
- Denzel 9y agoThat was a great read, thanks for that. Indeed that article really codifies a lot of the thoughts that have been floating around in my head.