Rough Consensus

  • Comments posted to this topic are about the item Rough Consensus

  • I've found that too many people apply too much consensus and not enough test code.  It's one of the main problems in a lot of IT shops.  There's also the problem with the people writing the test code not writing it correctly.  A great example of both problems are when people try to demonstrate what the "best" non-built-in string splitter is and then come to the conclusion that XML splitters are the best.  They absolutely are but ONLY when all of the rows you're trying to split are identical, which is how many people set them up for testing.

    Neither consensus nor code is enough.  You have to have the right code and the right test data being evaluated by the right people and those right people still need to be peer reviewed and their code tested.

    Another great example is that most of the world is using the "Best Practice" of using Reorganize between 5 and 30% logical fragmentation and Rebuild above 30%.  There's a consensus of possibly millions of people on the subject.  And, yet, the "Best Practice" they're citing is 20 years old and was nothing more than a nearly off handed but still educated (for the time) recommendation because MS pounded on Paul Randal in an unrelenting fashion for a basic recommendation that everyone has taken as a panacea.  Even Books Online states as "note 1" that the recommendations were meant as a "starting point" and that each index needs to be evaluated separately.

    Such consensus about that "Best Practice" is also one of the primary reasons why people still get massive fragmentation on Random GUID keyed indexes even though they correctly lowered the Fill Factor.

    Heh..  consensus, indeed.  What people have forgotten is that not all "Best Practices" actually are best practices.  They just been said by enough people for long enough than everyone has come to the consensus that they are.  They've also forgotten that "great minds don't actually think alike".

    Without the proper tools and willingness to test, consensus is just another king spread out across many people so no one has to take the blame.  Dare to fail on your own and watch success happen.  Remember that there actually is an "I" in Team... you just have to look for it.

     

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.
    "Change is inevitable... change for the better is not".
    "Dear Lord... I'm a DBA so please give me patience because, if you give me strength, I'm going to need bail money too!"

    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

  • We reject: kings, presidents and voting. We believe in: rough consensus and running code.

    How is "voting" different from "consensus"?

    • This reply was modified 1 month, 3 weeks ago by  kevin77.
  • kevin77 wrote:

    We reject: kings, presidents and voting. We believe in: rough consensus and running code.

    How is "voting" different from "consensus"?

    Heh... its easy.  Voting is structured... concensus is a lynch mob. 😀

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.
    "Change is inevitable... change for the better is not".
    "Dear Lord... I'm a DBA so please give me patience because, if you give me strength, I'm going to need bail money too!"

    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

  • Voting forces a choice. Do I want A, B, or C. consensus allows me to say A, but not B, C is OK. We can come to a choice around C, or the others, with a group.

    Ranked choice voting, multiple votes, etc. are other ways you can build a consensus. It involves discussion and debate over just making a decision.

  • Steve Jones - SSC Editor wrote:

    Voting forces a choice. Do I want A, B, or C. consensus allows me to say A, but not B, C is OK. We can come to a choice around C, or the others, with a group.

    Ranked choice voting, multiple votes, etc. are other ways you can build a consensus. It involves discussion and debate over just making a decision.

    The BIG problem is who the people are that are doing the voting.  For example, what the hell were people thinking when the made the equivalent of TF 1117 totally non-optional for TempDB???  I can certainly understand making it a default for people that don't know any better but there are times where it makes things impossible.  For example, if you need to use SET IDENTITY INSERT ON for a large table, there's a fault that, even with minimal logging, the whole bloody table gets sorted in TempDB.  If you have an 250GB table like I had to do, that means that all 8 files that I have expand to 250GB!  It would have been nice to temporarily set TempDB to NOT expand all files equally for that one evolution but, no, a bunch of people somehow convinced MS that would never be necessary.

    And then there's the people that designed String_Split()... again... what in the hell were they thinking?  And then the painfully slow FORMAT function and the idiocy known as PIVOT, SHRINK FILE (with index inversion), Index Rebuild, Index Reorganize, defaulting LOBS to "in-row", integer dates and times and having them in separate columns (to add insult to injury) in MSDB, Temporal Tables with no embedded Modified_By,  and removing the ability to do direct date math on any of the newer temporal data types, making in-memory non-reversible for file group usage, and forcing a wicked poor and flat out wrong wording in BOL that are responsible for supposed index maintenance "Best Practices" that millions of people have made the mistake of adopting, "fast inserts",  etc, etc, etc.  The list is too big to post here.

    And then there are things like having a built in sequence generator have been open but no action taken for more than 11 years now.

    The point is that whether it's by vote, by consensus, or "professional" opinion, some huge mistakes have been made and there's no damned plans to fix them and the good ideas that come from the field of pros at large are never even considered because the people making the decisions aren't actually qualified to do so or have an agenda based on some hair brained marketing strategy.  "Ribbon Bar" in office?  What a freakin' joke.  Let's quadruple the number of clicks required to get to the same old menus... way to go!  And, for the errors they induced in SSMS when it became a separate product, someone should be driven out of the business never to go near a computer ever again.

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.
    "Change is inevitable... change for the better is not".
    "Dear Lord... I'm a DBA so please give me patience because, if you give me strength, I'm going to need bail money too!"

    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

  • "At times of high scientific controversy, the consensus is always wrong."

    Albert Einstein (? - not sure)

  • From the memo:

    it is most important to ask not just for objections to a particular proposal,

    but for the nature of those objections.

    This indicates the case of uneven play field.

    Objections need to be proved, when proposal just needs to be, well, proposed.

Viewing 8 posts - 1 through 8 (of 8 total)

You must be logged in to reply to this topic. Login to reply