bestThere are a couple of things I have said about SharePoint now for many years, which i think still hold true. SharePoint is like a chainsaw – its a tool – A chainsaw is great for cutting down trees, but misuse it and you can cut both your arms off. This is true of SharePoint.
Microsoft have done an excellent job at selling SharePoint, and given that investing in SharePoint as a platform can be a significant investment I have seen some companies insist on its use even what it doesn’t necessarily make sense. I am an architect, a developer, and a SharePoint advocate but i am also an IT Consulatant, which means sometimes even though i have several nice shiny SharePoint platforms i will say no if i don’t think SharePoint will benefit a project. When architecting any SharePoint solution you should be thinking about how to leverage the out of the box functionality, rather than redesigning it, which can be a costly exercise in time and money; things can get complicated fast. As a SharePoint consultant i tend to focus on the data, the information flow and the business case and recommend not only how to customise SharePoint but also how to change a way of working; customers wont always want to change their workflow but its something that should be considered. A few days back a customer who had development done by a third party said to me –
“I looked at our site, i looked at MOSS 2007 and it was completely different. Why didn’t anyone tell us we were being so heavily customised?”
With the economy being the way it is i am seeing large companies wanting to not customise and enter into long development projects, but to use out of the box functionality more and more often; and its an approach that makes sense – leverage out of the box 90% and customise the last 10% – if you need to customise at all. If you are thinking of customising any more than that stop and ask yourself really hard why you have chosen SharePoint; of course the benefits may still outweigh the negatives, just don’t take the decision blindly.
Microsoft has put a lot of effort into making SharePoint easy to customise by designers; theres a trend to move UI development away from code development on all manner of platforms and the Microsoft takes that approach as well – you don’t need specialist SharePoint skills to design a site layout in SharePoint 2013. Prior to that customising design and CSS could be a real nightmare. Their approach to branding now lends itself well to mobility, and customising look and feel is significantly less challenging than it was
Of course, designing a large scale SharePoint solution is about a lot more than that; to do it effectively you need to be knowledgeable about many things, including architecture, the business needs, security, development, infrastructure, and maintenance. Ive seen a lot of bad SharePoint implementations out there that have been because not all people that call themselves SharePoint developers understand SharePoint. A person who is good at .net may have a head start when it comes to SharePoint development but doesn’t know the theory behind it, may not be aware of everything the framework gives you, or may work against it. Ive seen solutions out there that have done some really bad things – like changing configuration files directly in _layouts – the solution will appear to work great but as soon as you decide you want to have several solutions deployed on the same environment suddenly things start to not work as well as expected.
Its worth also noting that not all .net developers make good SharePoint Developers, even though they both code using C#. From a resourcing perspective I’ve been asked before how long it will take a .net developer to become a SharePoint developer, and its a question that drive me nuts for a few reasons – Firstly people learn in different ways and different rates, secondly understanding a little infrastructure for a large scale project i have found to be fairly important, and a few other skills that not all developers have or want. I cant just put a .net person on a training course and assume they will come back share point competent. Third is because developers aren’t familiar with the framework they tend to default into what they know. Ive seen projects before that have used databases rather than lists – not because of any specific design reasons (because there are definitely good reasons to do this) but because they knew SQL, and just weren’t happy with Queries and CAML. The chances of successfully converting .net people to SharePoint people are radically increased with mentoring, and leveraging experience and the SharePoint way of thinking is important. There are many good SharePoint developers out there, but i think its the fact they think from a SharePoint mindset that makes them good rather than just a pure ability to code.
A SharePoint Solution Architect has an obligation to make sure that a development team is working in the correct fashion; it is not enough to design a solution and assume developers are thinking of the same approach as he is; even if not directly involved in the projects, the approach to the solution design should be clearly documented.
SharePoint is an awesome product that can be an excellent return of investment, and it may seem from what i have written that i think SharePoint is a dangerous technology – and to an extent is is; but then to an extent all technologies are! In life its possible to abuse just about anything, but if you don’t realistically look at the risks, you will never avoid them!