Live data from Hacker News

Are software engineering “best practices” just developer preferences?

floverfelt.org

121–130 of 369 posts

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

#121

There is value in predictability, even if it stems from someone else's preferences. Current home wiring requires you put wires in the wall at (I think) between 10 and 20 cm from the border, and a small number of cm inside the wall. This means you only have to check that zone, and can use detectors, to find the wires. My home is from the 1950's. Some wires go diagonally from top left to bottom right at the other side…

100% that's true! I'm not saying developers having preferences and everybody abiding by them is a bad thing, more just that a lot of what constitutes "best practices" are often preferences and we should call them that.

I agree, at least in my experience of android development, "Best Practice" often means: what I read on Medium, or what Google said.

It's for people who aren't confident enough to admit to simply having a preference, or knowledgeable enough to be able to explain it

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

#122
post #108

As I read this I'm building a distribution of a web framework that eliminates block templates and will only have one page template (for the head HTML). I'm gonna have CSS generation and upload built in the CMS as well (tailwind or tachyons only). I'm sure there will be howls of "you can't let them put code in the database!" Why not? It's their (the customer's) database and their web service, after all. You can do all…

Question- if you're using eval() and bleach, won't your security be totally dependent on bleach not having a vulnerability?

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

#123

Earlier quoted context omitted.

100% that's true! I'm not saying developers having preferences and everybody abiding by them is a bad thing, more just that a lot of what constitutes "best practices" are often preferences and we should call them that.

Doesn't that kind of imply that everyone's opinions are equally valid? If 95% of your profession is on the same page with a certain practice then I'd argue it's really not reasonable to go against the grain without a very good reason. I think "best practices" strikes a good balance between things that are personal preferences and things that are laws.

I'm not sure if there's anything 95% of developers are on the same page about.

From what I've seen, every company has a different idea of what _best practices_ are. Generally comes down to what some influential developer likes.

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

#124

Earlier quoted context omitted.

100% that's true! I'm not saying developers having preferences and everybody abiding by them is a bad thing, more just that a lot of what constitutes "best practices" are often preferences and we should call them that.

Doesn't that kind of imply that everyone's opinions are equally valid? If 95% of your profession is on the same page with a certain practice then I'd argue it's really not reasonable to go against the grain without a very good reason. I think "best practices" strikes a good balance between things that are personal preferences and things that are laws.

Yeah it does. Software is basically a mental model and different people have different mental models of the world so we make up languages/practices/etc. that fit those models.

The point of the examples I gave (and a lot of browsing HackerNews) seems to suggest that 95% of the profession is not on board with our most basic practices around unit testing, version control, etc.

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

#125
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 a large SRE team. (Though as you say, not in all situations.)

I think in the worst case, “best practice” can indeed be used to shut down discussions of a leader’s preferences. But you can smell that out by asking for concrete examples, and asking how widely the practice is recommended.

A good “best practice” should be justifiable and explainable.

All that said, sometimes as the senior engineer you need to go with gut feel; “this design smells like it will give us trouble within a year” is the sort of thing I sometimes say. But I think it’s important to be honest that it’s a hunch, not a certainty in these cases, and discuss/weight accordingly.

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

#126
post #65

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.

How about math? Complexity theory, all kinds of logic, computational theory, category theory?

Honest question. How does that help?

Category theory: I suspect that category theory (well, really just abstract algebra) will tend to make software engineers better at writing code. However, on the other hand, the category theory operator soup that sometimes shows up in haskell, et al makes me think that too much and not enough restraint isn't a good thing.

Computational theory: After 14 years of software engineering, I only needed to care about this once. It looks like the answer is try not to make loops inside of loops, use the standard library, know the bare minimum, and if all else fails then find a way to cheat with hardware (graphics cards, simd, massive distributed systems, asci, etc).

Logic: So ... like type checking? Or prolog? I mean, knowing logic is good. But, like, where exactly do you expect the benefits to show up.

Complexity theory: Are you talking computational complexity? If so then I guess my answer for computational theory (also what did you mean by computational theory then? like lambda calculus and turing machines? When does that help?).

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

#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.

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

#128

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

Logic maybe but a very large amount of software written does not use much if any math beyond the very basics.

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

#129

Earlier quoted context omitted.

It'll be interesting to see if they can ever manage to enforce it. I haven't heard of any cases yet since Microsoft challenged them and won.

I believe that Shopify will change your job title from Engineer to Engineering Technician (or something of that nature) if you don't have your professional engineering certification.

At Shopify I've worked with people with pinky rings and they are still called developers :)

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

#130
post #4

Steven Sinofsky gave a talk and said something to the effect of, we've been building roads, bridges and edifices for thousands of years. So, best practices and solved problems abound---and even then we still get it wrong sometimes. Whereas, software engineering is maybe 70 years old (generously)? So, there is much to learn and a lot of "baseline" knowledge that has yet to be established. I think it's a good way to th…

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.

> I suspect it is a mix of cognitive science, linguistics, and anthropology.

Computer Science (more abstract) and Computing Science (less abstract) are branches of Science that have given a foundation to Software Engineering.

The problem is that most of the programming and software development that happens nowadays (and what people pay for) doesn't use it.

I compare it as Chemistry and Alchemy. We are still in the "alchemy" stage of software development. Sure, people who see themselves as "experts" are combining existing stuff to create new things. But there is a few set of experts that use the science expertise to implement systems.

Post reply on HN