The conversation

Lessons learnedExperience excerpt · English

Over time, I've found that the only reliable way to reason about engineering decisions is to work …

… Over time, I've found that the only reliable way to reason about engineering decisions is to work backward from the business use case. What are we trying to accomplish? What's the time frame? What risks are worth taking now vs later? Everything else...patterns, paradigms, "best practices"...only make sense in that context. The rest is academic, and often divorced from reality tbh. Also noticed that many strong opinions in engineering come from people trying to avoid pain they've experienced before. But the solution that saved them in one situation can easily become a liability in another. Patterns ossify into rules. That's why I try to keep my reasoning grounded in outcomes and context, not ideology. Most "best practices" are just local maxima..useful until they arent.

Original discussionWhy I'm No Longer Talking to Architects About Microservices92 source comments · at import
8

Community replies 0

No community replies yet. Add your perspective.

Replies from the source 8

Direct replies available in this import. Original-language excerpts.

NI

Yes and it makes them think they’re so smart. Developer or even engineer is really overkill for a name. Code monkey is really the more accurate term. Not even slightly kidding here.

Full original
GH

Mechanical engineering certainly has established practices but I would argue against it being rigid and well-defined in many or even most cases.

Full original
VA

I agree that we don't live up to the title of "software engineering", and it's not a mistake that software is uniquely complex, but all the same this advanced degree of complexity doesn't preclude a culture of engineering. See the user and know your abilities (including limitations). That is what engineers are called on for. And when ethics comes knocking, know that there are not just users but stakeholders.

Full original
J4

A difference to me is using existing engineering, vs engineering ways of engineering. The latter seems to occur and mature in software more.

Full original
JR

I've often felt that coding is more akin to writing than anything. Any given statement is perhaps mathematical but at the higher level you're more authoring a program according to humanistic needs and thought patterns rather than strictly "engineering" it.

Full original
DR

What separates software from engineering are concerns about legal liability. If we actually sued software companies for shipping us harmful crap, software would start to look like any other kind of engineering.

Full original
DA

I agree strongly with your second two paragraphs, but I'm going to push back on the oft-repeated meme that software engineering is not real engineering because it doesn't have the same disciplined approach as physical engineering practices. Personally I think software engineering is absolutely engineering, it just has mostly different constraints from physical engineering. Most of this has to do with the dealing with the costs and consequences of building things in the physical world. Without those disciplines, a huge capital cost goes into building a bridge that fails, or an expensive machine that can't do its job. We also have to account for the limitations of physical materials and a harsh environment, which are in some ways harder to account for, but also more stable as a well-understood substrate than pure software (ie. all animals have some intuition about physical things, physics …

Full original
AN

The power of software is how it 1) moves a lot of work from the domain of the physical to the domain of the written and intellectual and 2) the way it can be replicated at scale. So it really isn't like engineering, more like writing, but industrialized. Well, at the application level at least, where a lot of software work happens. The work that actually allows written software to physically interact with the machines it runs on, that's engineering, but generally not what most "software engineers" work on. Anyway, it's not really so surprising that there are few hard and fast and replicable rules in "software engineering" as there really aren't in, say, essay writing. There are best practices and tips and techniques that are generally more effective than others. And there _are_ actual constraints around software that don't exist around essay writing as, ultimately, software does have to …

Full original
Continue on Hacker News

Respect different perspectives. Share concrete experiences.

Sign in to post, reply, repost, and quote.