Tuesday, November 15, 2016

The Problem with SharePoint

I've seen it time and time again - a given company needs some sort of easy, content management solution, they buy into SharePoint thinking it will solve all their wildest dreams, and it only brings misery and frustration.  Why?  What is wrong with SharePoint?  Is it the product itself, or is it the idea of a pre-built CMS?

Well, the core problem with SharePoint (and similar products) is that it ignores a fundamental truth in software development: End users don’t really know what they want. They may think they want content management. And, if that were true, SharePoint might be a decent (albeit unnecessarily expensive) option. But typically, end users don’t just want content management. They actually want content management, pretty bells and whistles, the ability to print counterfeit money and the ability to order pizza with their car horns. Problem is, they don’t typically realize that until after they’ve run their credit card. Suddenly, they need SharePoint to do things that aren’t as simple as clicking a few links in the UI, they don’t have the time or expertise to figure it out for themselves, and that’s when they dump their implementation off on their IT team to figure it out.
Your IT team may have a developer. But, he’s not a SharePoint developer. How do I know? Because “SharePoint Development” is a fairly niche skillset. It isn’t like jumping from Java to C# where concepts are relatively similar. It’s not like grabbing your SQL Server Admin and getting him to look at your MySQL solution. SharePoint development requires an in-depth knowledge of how all the different parts and pieces interact with each other. It’s extremely temperamental, and a good deal of massaging is required to get it to cooperate. Simple tasks like preforming site collection backups or implementing custom web parts are an incredible pain in the ass. They rely on everything existing in an ideal state (from database options to Windows updates to minor variations in SharePoint builds). If you’re like the bulk of business owners who buy into SharePoint because Microsoft told you it was an “easy solution to content management,” then you probably didn’t know that. And, if your IT department doesn’t know that now, they will soon find out.
Your developers are going to become extremely frustrated because, not only are they dealing with the typical aggravation and frustration that comes along with software development, they’re doing it while struggling with the SharePoint framework itself. They’re fighting with the environment, the server, user permissions, features… All the while, they’re cursing you under their breath because they know that your requirements would be much more manageable had you come to them in the first place for a custom application. It's a lot like asking a contractor to build a garage, then handing him a pile of Legos with which to build it. This is where Microsoft has completely failed. The very existence of SharePoint rests on a marketing strategy that intentionally takes core fundamentals of the Software Development Life Cycle and tosses them out the window. SharePoint is made for the sole purpose of making your boss think he can implement a complex solution with minimal investment in IT. The requirements gathering stage is where your development team determines what you need an application to do. If you need to order pizza with your car horn and SharePoint can’t do that, THIS is the point where your development team will drag that out of you, stand up and inform you that you should probably seek options that don’t involve SharePoint. Microsoft’s marketing strategy for SharePoint is specifically designed to skip this crucial step. It’s designed to sell you a lemon, then when you drive it off the lot, it’s your mechanic’s problem.
So, you bought SharePoint as a round hole for your round peg, you realized your peg is actually square, and the hole you bought is in a mold of Jell-O. You passed it along to your IT team, but they can’t do anything with it unless you pull them off of their current projects and send them to special training classes to learn all of SharePoint’s little bullshit nuances. What do you do?
Enter the SharePoint Developer. This guy makes a living by going into organizations who have bought into the SharePoint lie to fix their implementations. Oh, and by the way, this is a full-time developer who you’re probably going to pay around 150% what you’re paying your in-house developer. You know, the one who could have built this application himself using a reasonable solution had you just consulted with him beforehand… seeing as how that’s his job and all?
SharePoint Developers make a lot of money because they’ve pretty much relegated themselves to SharePoint development – a fairly lucrative skillset that your current developers haven’t bought into because they’re real developers who know that SharePoint’s existence pretty much relies on the ignorance of business owners who don’t know what they’re doing, but bought into the flavor of the week.
Now, your SharePoint guy is gonna get the job by telling you the sky is the limit and that he can accomplish anything. Once he’s in the door, he’s going to accomplish half of your tasks, and then tell you the other half of your tasks are impossible with SharePoint. When you question his expertise and/or call out SharePoint’s limited capacity, he’s going to get defensive and put the blame on you because you bought a solution to accomplish tasks that are outside of its scope and that your implementation sucks, not SharePoint.
Get used to that line. It's part of a pretty convenient little web of bullshit that the SharePoint community has woven. They tell people “it can do anything,” then when you get into it and find out you can’t accomplish tasks that you would think should be fairly easy, they blame it on “your implementation” or “your expectations.” To them, it's never SharePoint's fault. It's your fault. It's your systems' fault. It's your IT teams' fault. It's George Bush's fault. It's everyone else's fault but SharePoint's. This doesn't make sense for several reasons; but if nothing else, you bought a pre-built, cookie cutter solution to accomplish a specific task a specific way. Does it NOT make sense that some things just won't be possible? How/Why the hell did Microsoft convince you that "you can do anything?"
The very first step of software development is requirements gathering and analysis. This step is crucial for obvious reasons, but most important because it gives developers the opportunity to remind end users of particular restrictions and potential requirements they haven’t thought of. This is where the feasibility of requirements is studied and analyzed. This is where a GOOD development team brings you back down to earth. If SharePoint is not a viable solution, THIS is where that needs to be determined. You NEED an experienced developer present to analyze your requirements and give you the best options for your needs. A promotional video from Microsoft is NOT a good alternative to this step. It simply is not. It’s not your fault for not knowing what SharePoint can’t do. But, it is your fault for not actually consulting with someone in your company (someone you pay to have your best interests in mind) to find out what your options are.
Implementing SharePoint and then passing it off on your IT team is like inviting a reformed sex offender to live with you and then expecting your kids to play nice with him. It is a curse upon your house. In theory, SharePoint is a great solution. It provides a reasonable means to achieve strategic content management... as long as you stay within the SharePoint box. In practice, it becomes overly complicated and clunky, and by the time you've decided to take it out behind the barn to shoot it, you're in over your head. You've invested way too much money and manpower, and it's now an integral part of your system.

Friday, August 12, 2016

How to Adjust your Attitude on Message Boards

Do you know why you're here?
If you have been pointed to this page, it is not because someone is mad at you, but rather because someone is concerned that you may be (or are becoming) an elitist, Nazi asshole.

Answering questions is great.  The best thing about the internet is the ability for those who seek answers to find those who have answers!  I know what it's like to become an expert in something in which we were once beginners.  All experts started out as beginners.  So, I get the satisfaction that comes when you can use your expertise to help those who may be struggling.  It makes the world a better place.

I also know what it's like to hear the same questions being asked over and over.  It gets annoying.  And, sometimes we get burned out on rehashing the same answers over and over.  It's perfectly acceptable to want to take a break from regurgitating information, and you may feel the urge to be a smart-ass so that people will get a clue.

So What's the Big Deal?
Well see, there comes a time when, thinking you know everything and thinking you're too good to give someone a straight answer without being a complete asshole becomes a problem.  If someone is asking a question on an internet forum, it's most likely because they've exhausted all their resources.  They're frustrated, they're probably on a deadline, they have someone breathing down their necks... the last thing they need is some jackass on the other side of the country/world lashing out at them over stupid, trivial shit.  Most people have better things to do than peruse the rule book at [insert the place you were redirected from] to learn all the little bullshit nuances about making posts or asking/answering questions.  They just want to get in, find an answer and get out without a whole bunch of unnecessary, bullshit hassle from your dumb ass.

How Can You Help Make the World a Better Place:
The first tip should be fairly obvious: Just answer the damn question without all the fucking attitude.  Not being a dick is a great way to help others.  Even if you're not actually answering their question - simply not being an asshole is a huge help!

It's also good to understand why a person might be asking a question that you don't like:

Cross Posting:
Perhaps you're seeing a question that person already asked on a similar forum.  Why would someone do that?  Well, it's entirely possible the person posted a question in one place, and because they're under the INSANE impression that
not everyone looks at every fucking forum on the internet ALL THE GOD DAMN TIME... perhaps they would like to expand to a broader audience.  What should you do in this situation?  Well, answer their question!  Why?  Well, consider this scenario:

Let's say Bob posts a question on ForumA and ForumB.  Smart-Ass Bill notices this and, rather than answer the question on ForumB, he posts a smart-ass stock answer about cross posting, with a link to the question on ForumA.  The question gets answered on ForumA, and now Bob has an answer.  Great, right?  Well, let's say ForumA gets shut down for whatever reason.  Now, the only answer on ForumB has a dead link to an answer that doesn't exist and a bunch of smart-ass bullshit about cross posting.  So, when Dave comes along 5 years later looking for an answer, all he can find is a bunch of smart-ass bullshit left by Bill's dumb ass, because he was just too good to help Bob when it mattered.  I see it ALL the time.  Someone asks a question similar to a problem I'm having, and the accepted answer is a dead link to a page that doesn't exist anymore.  Great, huh?

Duplicate Questions:
Let's say Bob posts a question.  That question gets answered and everyone's happy.  Now, let's say Dave comes along 8 years later and asks the same question.  Smart-ass Bill notices the same question was already answered 8 years ago, posts a link to that question and gives Bob a telling off about not searching for answers before he posted.  Why would Bob do this?

Well, there are several reasons this could happen.  One, it's entirely possible that Bob saw the question Dave is referring to, but because his situation is slightly different, it poses the need for a new question.  It might be reasonable for Dave to offer up a link to the old question (since it's on the same forum), but if Dave makes the assumption that Bob's situation is identical, then gives Bob a telling off because he re-posted a question, then Bob's situation isn't identical, Dave is now a dumb-ass and asshole.

It's also entirely possible that, since some forums get dozens of questions and comments every single day, it's totally unfeasible for someone to read through 10 fucking years of God damn posts looking for an answer to a particular issue just so that smart-ass Dave doesn't have to go out of his fucking way to help someone without being a fucking asshole about it.

LMGTFY Questions:
The worst... absolute worst asshole move you can make on an online forum is to give someone a LMGTFY link.  If you're going to give someone a LMGTFY link, in 99.99% of all cases, you would do more good to just shut the fuck up.

Nobody... nobody... asks a question online without Googling it (or Binging it or Yahooing it) first.  Why would they?  Why would someone go through the time and effort to go to a forum, log in (or sign up and log in), lay out their entire life story to explain their particular scenario, ask a question and sit around waiting for an answer that might come when they could have just fucking Googled it?  That makes no sense.

So, why would someone post a question on a forum that you can easily find in a quick Google search?  Well, smart-ass, it might be because, since you're an expert and probably know the answer, you probably know what to search for.  The person seeking the answer might not.  Perhaps they don't know of a keyword that could help in the search.  Whatever it may be, you can pretty much rest assured that anyone posting a question on a forum HAS googled it.


Vague Questions that You Don't Understand:
Someone posts a question, they didn't give enough detail, so you can't provide an answer.  Why would someone do that?

Well, if someone doesn't know how to FIND an answer, they probably don't know (or realize) what is required to find it.  Ergo, it makes perfect sense for someone to post a question that seems vague or incomplete... they just don't know what you might need to solve their problem!  Have you ever taken your car to a mechanic and tried to describe a problem?  You end up using vague terms like "shaking," or "squeeling," which are completely useless to an educated mechanic.  Wouldn't it be rather frustrating if you had some kind of a car problem, you were trying to get help, and you're relying on a complete smart-ass who's being a dick?


In Closing:
A lot of this is basic, Kindergarten manners.  Remember the Golden Rule: Do unto others as you would have done unto yourself.  Also remember the age-old saying: There are no stupid questions.  If people are asking a question, they're asking for a reason.  And, if they're asking in an annoying way, it's for a reason.  They're not trying to annoy you.

Thanks for reading!

Now's the time for me to disable comments so you assholes can't say anything back.