Live data from Hacker News

Are software engineering “best practices” just developer preferences?

floverfelt.org

131–140 of 369 posts

Re: Are software engineering “best practices” just developer preferences?

#131
There are probably a ton of definitions of what a best practice is in SE.

When it comes to code, I like to think best practices are those that make code easier to change and understand, without significantly compromising performance.

Developers who mainly target high performance with their code probably think my best practices suck, and so on.

At a practical level, what really matters is consensus within an organization. Organizations where people hold incompatible ideas of what good engineering is are basically doomed.

Re: Are software engineering “best practices” just developer preferences?

#132
post #112
post #60

> How can Software Engineers call themselves engineers when there’s no rules, governing bodies, or anything to stipulate what true Software Engineering is? We call ourselves software developers in Canada. According to Canadian engineering[1]: The "practice of engineering" means any act of planning, designing, composing, evaluating, advising, reporting, directing or supervising, or managing any of the foregoing, that…

Some of us call ourselves "engineers". It just depends whether you want to pay the order for the privilege of having the title (and pretty much no other tangible benefit in 90+% of cases) :).

Genuine question. What is so important about the word "engineer" that people not licensed to practice it want to call themselves engineer?

In Canada, I studied in a mechanical engineering technology program that lead to an engineering degree if you stayed on for 4 years. It was hammered into us that we weren't engineers until after you graduated and went through the professional licensing process.

In Canada there is a way to become a P.Eng. in software engineering (and until 2018 in the US there was the P.E. in software engineering), so there is a way for someone who wants to be called a software engineer to legally obtain it. So why is there so much resistance?

Re: Are software engineering “best practices” just developer preferences?

#133
post #110

Eh, kinda. Calling something a "best practice" is basically an appeal to authority. It means, "this is the right way to do things, for reasons I don't have time to explain." There are times when that's appropriate. But really, "best" and "right" are highly situational. Any rule of thumb, even the most basic and uncontroversial, has a situation where it doesn't apply. I was part of a discussion on a mailing list years…

One thought to add here - when you appeal to an authority, which one is it? In the OP example, it seems the senior dev is saying “on my authority”. And sometimes that is enough, especially if the senior dev can give examples of when not following this practice bit them. But sometimes there is a higher authority, such as “it’s what is recommended in Google’s SRE book”, which is probably good advice if you are building…

Yep exactly! I think if you broaden the concept of "authority" beyond literal authoritative sources it gets even more murky.

Are you appealing to the authority of speed? Compilation time? Readability? Functionality?

I dunno, and it often (especially around readability) comes down to the developer's/senior engineers preference.

Re: Are software engineering “best practices” just developer preferences?

#134
post #127
post #60

> How can Software Engineers call themselves engineers when there’s no rules, governing bodies, or anything to stipulate what true Software Engineering is? We call ourselves software developers in Canada. According to Canadian engineering[1]: The "practice of engineering" means any act of planning, designing, composing, evaluating, advising, reporting, directing or supervising, or managing any of the foregoing, that…

“It’s not real engineering if someone can’t get hurt” seems like a strange definition to me.

That's because it is a strange definition.

If you work on the software in a self driving system in a car, that makes you an engineer. If you're working on software for a space satellite with no occupants... that's not an engineer?

Re: Are software engineering “best practices” just developer preferences?

#135
post #97
post #68

Earlier quoted context omitted.

What about we apply this to software engineering? > If a builder constructs a house for a man but does not make it conform to specifications so that a wall then buckles, that builder shall make that wall sound using his own silver. - Code of Hammurabi, 1755–1750 BC

Define "specifications" and "conform" in terms that I might hear from a non technical client.

The engineer is responsible for taking non-technical language from the client and turning it into technical engineering specifications. Why does this fall to the client in software?

Re: Are software engineering “best practices” just developer preferences?

#136
post #107

>“How can Software Engineers call themselves engineers when there’s no rules, governing bodies, or anything to stipulate what true Software Engineering is? The parallel he drew was to another friend who’s a Civil Engineer. His friend had to be state certified ” That friend simply didn't realize that "engineer" has different semantics with different historical evolution of word usage: (1) "professional engineer" -- as…

Even in infra, those jobs used to be called Operator/Administrator. Now everything is also an engineer, with increasingly baroque acronyms prepended (DevSecOps the new hotness)

Re: Are software engineering “best practices” just developer preferences?

#137
post #18

I hope at least that we're in a phase of the profession where we're "discovering" the actual best practices. There have been a lot of best practices that have been hypothesized over time: OOP, functional programming, unit testing, generative testing, formal analysis, strict typing, weak typing, etc. And all these as-of-yet unfounded hypotheses are important! You've got to have a theory of how something works before y…

We're definitely still figuring out what the best practices are. In my relatively short career as a software developer, we've already flipped back and forth between separation of concerns is important when it comes to views, styling, and logic. (Frontend dev) Gone are the days when we threw together a php, html, and JavaScript in one file... wait, or is it?

Give it a couple years, it'll come back around!

Re: Are software engineering “best practices” just developer preferences?

#138

Earlier quoted context omitted.

Also, there isn't that much in the way of scientific grounding. Mechanical engineering has physics as a foundation. Chemical engineering has chemistry as a foundation. What is the scientific foundation of software engineering? I suspect it is a mix of cognitive science, linguistics, and anthropology.

Math. Which seems that many practitioners are proud of not knowing

Math provides no answer for a lot of the problems one encounter in day to day software development. It does not help you decide how much test coverage you need,it does not help you decide how to review, it does not help you figure out what features are desired, it does not help you collaborate with the juniors etc etc.

I agree that math describes limitation to computer science and formalisation. But software engineering is more than computation.

Re: Are software engineering “best practices” just developer preferences?

#139

>How can Software Engineers call themselves engineers I always wondered the same thing, even now, az a so-called Lead Software Engineer. Frankly I call myself a programmer and that's it, maybe a "manager of sorts" now that I'm a "lead". I don't want to assume what others are doing, maybe engineering level work, but I'm rather an overpriced jack of all trades myself, who happened to have a nicely paying trade as a hob…

Are there not also mediocre traditional architects? Why are you comparing architects that push the boundaries of human achievment with the most mediocre of software architects who just advise people use AWS?

Words change over time and it's not like programmers AREN'T pushing the limits of human technology. What is much more advanced than your cellphone right now? Or the software that drives the Super Colliders? Or the software that runs an MRI?

I agree that our industry mis-appropriates the title "Engineer", but there is no reason to be so dismissive either.

Re: Are software engineering “best practices” just developer preferences?

#140
> Java is infamous for its verbosity. [...]

This paragraph highlights something I've been saying for ages.

Most criticism of Java needs to be directed towards Java programmers and not the language itself.

The language allows you to simply make a class. You're not required to make an interface and then make a class that implements it, and yet, Java programmers do it anyways and then criticize the language for being verbose.

Getters and Setters? You probably don't need them. Classes can have public member variables.

Java programmers seem to have the hardest time understanding YAGNI.

Post reply on HN