4 ms·
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 sometim
by theptip 5y ago
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.
- floverfelt 5y agoYep 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.
- kelnos 5y ago> 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. That's a really great perspective. There are a bunch of times where I have a preference for or against something, but I can't point to a specific example of when that thing was good/bad, or any objective data about it. It's just that my experience suggests to me (via murky pattern matching in my brain) that particular thing will be good or bad. It's certainly weaker evidence than data or concrete examples, but I think it's still valuable and worthy of consideration.
- chmsky00 5y ago“Best practices” smells like such a marketing term it should be tossed in the bin. It’s poetic language that has nothing to do with specific problems. What people usually mean when it comes to engineering is “be safe, reliable, and correct.” Security best practices to be safe. Developer best practices for reliability. Etc etc “Best practices” is hand wave-y fluff for “do a good job” and doesn’t need a technical definition. Make sure you’re secure, reliable, and correct given the engineering context, and odds are you result in a system that also has a lot of specific best practices in place.
- Dudeman112 5y agoI think it's very telling just how little engineering there is in Software Engineering that people can call best practices "just preferences" or "marketing fluff" and not be immediately laughed out of the room. Because that's what would happen if someone suggested "best practices smells like a marketing term" in an actual engineering discipline.
- soco 5y agoWhich brings to the realization that we have a lot of software development and much less software engineering.
- chmsky00 5y agoEngineer to solve the problem. Not banter online. My problem is people take a slogan like best practices and copy-paste in every new framework because it’s de facto best practice. If the business is one of 1,000 todo apps, sure copy paste. But it’s new hardware best practices are different and we ought to acknowledge that software use case isn’t as uniform as electronics, where Ohms law and material waste are coupled to waste. Language choice and syntax choice depends on the problem as the team sees it. Avoid buffer overruns, sanitize inputs. There you have it; software best practices.