I wrote a review of SharePoint 2010 a few years back and concluded that it wasn't ready for WCM. I've never had the pleasure of working on a SharePoint project .... until recently...
We have a recent client that had an existing Sharepoint 2007 implementation to do content authoring as well as a large amount of custom .NET functionality for features for logged in users. This is not a judgement on the architecture in any way and I understand SharePoint 2007 is significantly hampered and worse than 2010.
Even so, we encountered the following issues that seem incredibly foreign to someone who has been working in the WCM world for a long time:
- Editors need to understand how to build web pages with web parts based on templates. While this might seem similar to most CMS's, the level of technical complexity for the editor is significantly higher with Sharepoint 2007. Editors need to use Drop Down lists to choose templates and web parts. The web parts don't necessarily have great names and there are at least 2-4 more steps required to put together a functioning page than is required in normal WCM. The Content Editor Web Part (the one they are most likely to need) is found by default under "Miscellaneous". This isn't very intuitive for editors. Most WCMs have determined that their software is only successful if the editors adopt their system and have made editor usability the highest priority. SharePoint has not done this.
- The release process is challenging. This project used TFS and all the tools for MS BUILD in exactly the way Microsoft prescribes. Yet, the release does not behave the same way each time. It's difficult to trace assets from source control out to the live environment. Changes aren't updated 100% of the time as expected.
- Caching. There seems to be some caching of files in a database that is not flushed properly when releases happen. This makes debugging issues significantly more difficult and take longer amounts of time. Also, to make matters worse, there isn't really a way to remove specific items from cache. It is necessary to kill the entire system cache which causes a time-consuming refresh.
- Error messages - they are not clear and don't give you a decent indication of the problem. This is one of the most fundamental responsibilities of any piece of software. We saw errors that ended up taking hours to resolve and when solved, the actual fix had nothing to do with the error.
- Building a new site. This seemed to be much more difficult than I would have expected. Since most of the "site building/configuration" is done through the Admin UI, I expected this to be fairly seamless and consistent. However, it ended up being quite brittle and not the same between environments.
- Keeping environments in sync, especially development environments, was a major challenge and a major cost of developer hours. We lost days because our environments were different and what worked in one did not work in the other, subsequently, our confidence that it would work when released was diminished.
- Validations firing in SP Edit mode cause the page to not be able to be submitted. This was really perplexing. A developer doing what they SHOULD be doing by creating validations and an editor attempting to do what they SHOULD be doing by editing content is not able to save/publish the page b/c the validations on the dynamic content/form was causing the page to not be publishable. The workarounds found on google did not work. The only thing that worked was using JS to pre-fill the fields in Edit mode so the editor could save the page.
It's entirely possible that some of these issues are resolved in SharePoint 2010 or that some of these issues are caused by the implementation of SharePoint; however, I've not seen a WCM environment that is so inconsistent, brittle and challenging.
Even the developers who KNOW SharePoint are frustrated with it. Typically with a WCM, the new developers will slam the software, but the developers that know the software will say "yeah, but I know how to work within the chaos". In this case, that was not even true.
I'm sure I'll get some responses from SharePoint people telling me specific ways to solve my above challenges so bring them on.... I'm listening ... I need the advice for the next time I do a project with SharePoint :)