Joel Oleson explained at the top of his session on SharePoint Worst Practices that, while there is plenty of space devoted to SharePoint best practices, his presentation would focus on "failed deployments, [and] mistakes that people make in SharePoint" as there is much to be learned from mistakes as well. Joel said to the Ho Chi Minh City audience that he encourages interaction and questions during his sessions, saying "I like to involve the people in my sessions because one thing I've noticed [in my travels] is that there are slight differences in deployments."
Joel shared a couple of his favorite "fail quotes" in discussing failure versus success, introducing a Thomas Edison quote by referencing Rob's earlier presentation by saying, "You know Thomas Edison? We were talking about electricity earlier." The Edison fail quote he shared was, "I have not failed. I've just found 10,000 ways that won't work."
Wondering aloud, Joel asked "Do I need the community to succeed?" while talking about how it was "amazing being able to go through the streets of Ho Chi Minh City on a scooter," thanks to my colleague Binh who rode on the back of said scooter the previous day so that Joel could have that coveted HCMC experience. Joel observed from that experience that "scooter traffic here is organized chaos … on the street" and that it's "amazing [how] the traffic flows, [and it] weaves itself like a blanket." Completing his analogy, Joel went on to say that "It's kind of like that with the SharePoint community. It's the contributions of the whole that make one plus one equal three in SharePoint." "When you have SharePoint problems, you know who to talk to … and they can be friends anywhere [in the world]" thanks to Twitter, Facebook, etc., said Joel, observing that "It's amazing how the world is getting smaller, how the world is changing." Joel's point was that thinking you don't need the community to succeed would be a mistake. Continuing his message of the importance of community, Joel said "I encourage all of you that are interested, I want you to be my friend" on Facebook. Joel noted that "I know there are problems accessing Facebook here on some networks," referencing the fact that Facebook is blocked by the government in Vietnam (as, we had learned, it also is blocked in China, along with Twitter).
Discussing some SharePoint 2010 deployment "gotchas," Joel began with the topic of claims-based authorization with Excel Services and Office Web Apps. Again stressing the value of community, Joel said that "If you're having a problem with, for example, claims-based auth, using Twitter, if you ask a question including 'SharePoint,'[there are] community monitors via Tweetdeck, and you'll have multiple responses with suggestions to help with your problem within minutes."
Joel shared the story of Vasa, built to be Sweden's "greatest military ship" but which sank because it was top-heavy. The original architect died and his brother and son took over, and when the King demanded that it must be the tallest ship ever, the architects did just that but failed to adjust for the proportions. Due to a lack of preparation and planning, Joel said "This is what happens a lot of the time in SharePoint deployments." Joel advised that it's key that you "Make sure you're not neglecting things, and you're looking at the big picture," pointing out that "If you know how to install SharePoint, you can install it on the servers," but that doesn't necessarily mean you know how to successfully deploy it. "The missing piece is 'what are you building'?" Referring back to Vasa, Joel again stressed the importance of looking at the big picture, saying that "A lot of failed SharePoint deployments go back to the question of 'what are you trying to do?,' and that [the question] hadn't been asked upfront."
Joel then showed a slide of a freakish looking "robot Barbie" he'd encountered on his travels, a toy that clearly can't have sold many units. Musing that the inventor must have figured that since boys like robots, and girls like Barbies, "It's a toy for everyone, [and] all will love it." "This happens sometimes in SharePoint," Joel said, trying to build an "everybody can do anything" creation. Joel illustrated a scenario to demonstrate why such an approach should cause concern, in that "people just dump data into it, databases are growing, and when something critical happens, legal comes in, and it turns out that auditing was turned off because it was causing poor performance." Joel pointed out that the key to your design should be that you take into consideration what exactly it is that you're building, and he advises that you "live by the KISS principle: Keep it Simple, Stupid."
Joel noted that a lot of people start working with SharePoint without a clear understanding of just what's involved with the platform. Using the dev perspective as an example, Joel said that "Working with SharePoint is different, it's not good to build with a lot of code, it's better to extend based on the existing framework [and] if you start building without understanding what's in the box, you'll run into problems."
Joel explained that there are two types of SharePoint deployments: commodity hosting and application hosting. The commodity model views SharePoint as an application, consisting of "vanilla, out-of-the-box functionality, [and is] easily moved into Office 365, [due to its] very simple sites." On the other hand, the "Application model is SharePoint as a platform … on premises, high-value, customized dev projects built leveraging SharePoint as the platform."
Admitting that "cost is always an issue," Joel emphatically warned that you "Don't skimp on the test environment! Who suffers if there's no test environment? I would say everybody." Continuing this line of thinking, Joel said in no uncertain terms that "If you don't have enough money for a test environment, you don't have enough money for a production environment." Explaining that "You need a place for developers to test," Joel said that "What's unique about SharePoint is it introduces a lot of content coming into production" (i.e., when users add documents to a library), and that "for the devs, we need to make sure we get copies of the prod environment and we get them into the test environment." What this approach does is give developers a window into the "real world database, so when they build code, it's a lot cleaner."
One last bad practice principle Joel shared was that "one site collection can fit everything." Speaking from experience, Joel said that "A lot of failed deployments come from people not planning their information architecture." This is problematic when you reach a point of site collections going so deep that it "creates a problem of depth," and when you then start breaking up site collections, you lose all sorts of data (last modified by, auditing, etc.), all of which could have been avoided if the IA had been planned upfront.
Joel wrapped up with some thoughts on service apps, saying that "There are a lot of them in SharePoint 2010," and they can be overwhelming. Joel said that one mistake some admins make is to turn all service apps on by default, even if they'll never use them. As a result, "RAM will get tight, and performance will suffer… [and then the] best way to reclaim some of that performance is to dial it back" by removing some of the service apps. Of course, it's easier, and more sensible, to install only the service apps you need upfront via planning, rather than having to scale back later. Joel advises that "Of all the apps, you need to determine what you really need on day one, and build a roadmap for the future." As a personal preference, Joel said that "I highly encourage you to deploy managed metadata and profiles."
As a final message to the audience, Joel concluded by saying that "What I want to leave with you guys is 'dream big.'"