-1

It is implicit in the title that Software Engineering answers should exhibit significant application of best practice.

However many answers and suggestions in comments do not exhibit this property. In fact many exhibit very poor practice. A common fault for example is solutions that are highly/tightly coupled, or suggestions to use accessors/getters which are often up-voted. While better advice to follow SOLID Principles, the Law of Demeter, Hollywood principle or inverting the control are ignored or even downvoted.

It seems what is missing is some form of meta moderation to correct poor primary moderation. Instead, gaming the scores, with naive and populist is rewarded. The net result is many answers are pretty poor examples of Software Engineering.

  • 1
    Sorry, so far I don't share this observation. IMHO the upvoting systems works at least to 90% well and rewards the answers which it should. Can you give some evidence of what you are describing? And I mean evidence that many answers are upvoted though beeing naive or poor. – Doc Brown Mar 21 '17 at 15:23
6

What is a "best practice?" I normally think of it as "what everyone else is doing" whether it is necessarily the best solution to the problem at hand.

Software development requires a rich and diverse toolbox of ideas, technologies, and methodologies. Saying that "the ideal solution to problem X is to apply 'best practice' Y" is, quite honestly, a terrible idea.

The "best practice" is to use one's brain, find the proper tool for the job, and use it no matter what everyone else is doing.

"Best practice" implies there is a "best" solution to every problem. In reality, most problems tend to be complex and require tradeoffs that make each solution unique, even if just a little. In the real world, there may be two or even twelve solutions to a problem that are valid and will result in success. What is the "best" practice?


Saying that an answer or comment must adhere to a limited set of "best" practices such as SOLID is doing a disservice to the person asking the question. Yes, there are some good software engineering principles that are broadly applicable, but not universally applicable. SOLID is not always the answer: in fact, for some problems (rarely), it is a bad thing.

Solutions are not one-size-fits-all. One of the marks of a good software designer is knowing when to take all the SOLIDs and DRYs and throw them out the window in favor of a solution that is not over-engineered. Yes, I have copy and pasted code. Yes, I have violated the Law of Demeter and Liskov Substitution Principle. I try to adhere to those principles when I can (99% of the time), but sometimes, they are not the "best" solution to a problem.


Finally, as Thomas said, this site is community moderated. You have high enough reputation right now to do your part to address the shortcomings you mentioned. Once you get to the point you can downvote, the next major milestones (in my opinion) are 3k to cast close votes, and 10k to cast delete votes on questions. However, your issue seems to be with answers and comments, which you are already empowered to do something about.


See Also

1

Without specific links to questions or answers that you feel are problematic, it's hard to address anything specific. But I can still answer in generalities.

First, moderation is done by all members of the community. This is explained in the tour. We also have a list of privileges and when you earn them - at 5 reputation, you can post on Meta; at 15 vote up; at 20 use chat; at 50 leave comments on all posts; at 125 vote down. These are the primary tools. See an answer you like? Up vote it. See an answer that you feel is bad? Down vote it and leave a comment pointing out problems or gaps. You can also leave an answer of your own and point out why your solution is better than any of the others.

Nearly everything here is done by the community. There is a small team of elected moderators, but we're exception handlers. We don't delete answers just because they aren't technically accurate, are wrong, or are not helpful (in fact, if you flag answers for any of these reasons, there are custom decline reasons that we have). We handle things that are detrimental to the community - things like rude or abusive users, spammers, or other reasons for deleting questions or answers.

You mention that answers that include best practices are getting ignored while answers that are more naive get attention. I'm assuming you mean up votes and/or accepted status. Best practices are things that work for most people most of the time. They aren't rules. Software engineering is about balancing various trade-offs, risks and rewards, complexity and sophistication. Sometimes, that means not sticking to textbook best practices and accepting technical debt to deliver value on time.

So, I ask you: Have you voted or commented on these answers that you think are bad? Have you provided your own answers that you feel are better? Are you using the moderation tools that you have at your disposal?

  • That sounds rather like you are suggesting I game the system myself to get the points to spend fixing poor answers, which I will then lose by moderating and having to game the system again. That's doesn't really sound like a workable system to me. I could spend all my points downvoting poor answers and will have made no noticeable difference. While I would a expect healthy dose of pragmatism on a stackoverflow, I think that is much less appropriate regarding software engineering forum. IMHO Best Practice is exactly that not common or average practice. – Martin Spamer Mar 20 '17 at 23:19
  • 3
    @MartinSpamer If you don't want to use the community moderation tools that you have, I'm not sure what you want the rest of us to do. Especially since you haven't pointed out specific problems with any specific posts. – Thomas Owens Mar 20 '17 at 23:23
  • 3
    @MartinSpamer you lose 0 points for downvoting a question, and 1 point for downvoting an answer. Assuming you make positive contributions, those tiny losses will be heavily offset by the gains from +10 for each upvote on one of your answers. – user22815 Mar 21 '17 at 4:01

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .