TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

What is “engineering for software?”

48 pointsby tapanjkover 2 years ago

10 comments

necovekover 2 years ago
While i sympathise with some of the points, the author doesn&#x27;t do himself any favours by claiming things like:<p>&gt; I argue that &quot;engineering&quot; is the difference between our modern, high-tech civilization (only a few centuries old, at most) and the hundreds of thousands of years of human experience that preceded it.<p>So constructing those marvellous cathedrals, pyramids, statues, water irigation systems etc from a thousand or few years ago are not engineering?<p>Just like anything else, human mind is exploring similar avenues for thousands of years, and there is no good basis to claim that we&#x27;ve been doing engineering for only a few hundred years.
评论 #33344116 未加载
评论 #33344835 未加载
trabant00over 2 years ago
&gt; We need to iterate so that we can have more opportunities to learn. We need to gather feedback so that we can reflect on the results. We need to work incrementally so that we can compartmentalize the problems in front of us and explore them efficiently. We need to organize our work into a series of small, safe experiments so that we can build our knowledge up in a more productive way. We need to capture data from real world systems so that we can learn empirically what really works and what doesn&#x27;t.<p>This is nothing but a collection of platitudes, blog spam. The described process is not only already implemented by everybody, there is simply no other way to do it even if you tried.
评论 #33344240 未加载
评论 #33342015 未加载
li4ickover 2 years ago
Sometimes I wonder if all these people that talk on conference stages are nothing more than self-help gurus. All of these words like &quot;productivity&quot;, &quot;cleaner code&quot;, &quot;maintainable&quot; etc. etc. are like highly optimized words for our dopamine network. They don&#x27;t add any value to the domain of software engineering. I first realized this when I flipped through Uncle Bob&#x27;s &quot;highly recommended&quot; Clean Code and almost screamed in horror at the amount of bullshit that book has been able to infect into the industry. Yes, the words sound nice, but look at the code examples. Just look at them.
评论 #33344208 未加载
评论 #33350336 未加载
calderarrowover 2 years ago
As a personal anecdote: I remember being at the ESRI Developer Conference back in 2019, and one of the keynote speakers spent a good amount of time talking about whether we were software &quot;developers&quot; or &quot;engineers.&quot; I&#x27;m paraphrasing a bit, but ultimately he concluded that we were engineers because we follow scientific methods, identify problems, solve them quantitatively, and create solutions within the confines of external constraints, such as the laws of physics.<p>During the Q &amp; A, someone stood up and proposed that by his definition, authors were literary engineers, since they approach writing a novel in the same way that we approached writing code.<p>I didn&#x27;t have a horse in this race, but I remember thinking about how silly it was for my company to spend hundreds of dollars to fly me out across the country so I could listen to brilliant people discuss semantics at a software conference.
评论 #33344808 未加载
iandanforthover 2 years ago
Guess and check is not engineering. That&#x27;s what the author describes.<p>Engineering is also not normally scientific investigation. The author uses &quot;hypothesis&quot; in the worst layman manner. A hypothesis is not something to be confirmed, it is something to be <i>disproven</i>.<p>No, engineering is primarily about the application of predictive knowledge and models to create and implement designs which are robust to known operating parameters and unknown model error.<p>Guessing and checking frequently (via CD) has merit. In fact in the limit you can eliminate the human in the loop if you add in some basic rule like &quot;reduce error with each step&quot;. That&#x27;s automatic optimization.<p>But if you want to talk about engineering you need to talk about constraints, predictive formula, and industry knowledge guiding design choices. If you need to serve 1M QPS, is a single sharded single node Elasticsearch instance on an MX5 large sufficient? Why or why not? That&#x27;s an engineering discussion. If you need to identify the closest points to a vector in Nd space among 1B points what algorithms produce tenable runtimes? That&#x27;s an engineering discussion.<p>Other disciplines have centuries of accumulated knowledge and modeling to fall back on. They don&#x27;t have to guess (mostly) which metals will survive high temperatures. Or how air will flow around a given shape. We have similar knowledge that explicitly <i>removes</i> the need to guess. Again, checking is always good, but the valuable tools in an engineering toolbox massively reduce the search space before any implementation is attempted and that&#x27;s the heart of engineering.
评论 #33345820 未加载
skeeter2020over 2 years ago
Sure if you squint from far enough away we&#x27;re all &quot;Software Engineers&quot;, except for (1) the training, (2) the reproducibility and predictability of how we work &amp; what we build, and (3) the ethical commitment &amp; personal responsibility. You could also call us &quot;Software Doctors&quot; ...in the mold of Dr. Frankenstein.
评论 #33346817 未加载
评论 #33343962 未加载
zetamaxover 2 years ago
Other than the reference to SpaceX this post left the &quot;engine&quot; out of engineering more than I think is a viable amount of creative license.<p>Engineering, or science for that matter, doesn&#x27;t include all the values that individually or collectively motivate human beings to do anything.<p>An engine can be the core component of what an airplane or rocket is, and science can help us optimize fuel type or efficiency, or make a more stable flight, but science and engineering will not lead us to decide whether to use that airplane for leisure or war. Perhaps in a perfectly technocratic society it is arguable that engineering and science are the ultimate guiding values and principles, but that is not the society or societies we live in.<p>As far as software, it seems to me its engine is the microprocessor, but much if not most software is not working in tandem with some engine on the other end, exceptions being cars, planes, 3d printers etc.<p>Rather, software is very malleable and although end users want things to work well, they also are accustomed to a steady if not daily flow of updates, which the author of this blog post has some expertise with (I would consider the development if continuous delivery an engineering endeavor).<p>All that to say is I think the author should look more deeply elsewhere than science and engineering as to the why and what to build, or ironically the epistemology, ontology, methodology and axiology will sort of just be pulled out of the air ad hoc, perhaps the least scientific way of operating.
评论 #33344225 未加载
0x445442over 2 years ago
I think one of the big distinctions between software engineering and development is objective decision making based on data and evidence versus conjecture and opinion. I’d suggest that while there are instances where software is engineered, most software is developed. I’d also submit that this is mostly driven by pragmatic reasons like maximizing benefit to cost ratios. Of course this is all conjecture but hey, I’m a Software Engineer :).
carapaceover 2 years ago
Solved by Margaret Hamilton. <a href="http:&#x2F;&#x2F;htius.com&#x2F;" rel="nofollow">http:&#x2F;&#x2F;htius.com&#x2F;</a> <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Universal_Systems_Language" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Universal_Systems_Language</a><p>Cf. &quot;System Design from Provably Correct Constructs&quot; <a href="https:&#x2F;&#x2F;archive.org&#x2F;details&#x2F;systemdesignfrom00mart" rel="nofollow">https:&#x2F;&#x2F;archive.org&#x2F;details&#x2F;systemdesignfrom00mart</a>
simonwover 2 years ago
This article made more sense to me when I combined it with the Wikipedia page on Continuous Delivery, a term partially coined by this author: <a href="https:&#x2F;&#x2F;en.m.wikipedia.org&#x2F;wiki&#x2F;Continuous_delivery" rel="nofollow">https:&#x2F;&#x2F;en.m.wikipedia.org&#x2F;wiki&#x2F;Continuous_delivery</a>