I have like Kirk also worked with SharePoint since the 2003 beta version and am still liking it. You can of course always wish for something to have been better thought through - but I guess you can say that about almost any Enterprise product. To me, the positives far outweight the negatives when it comes to building solutions on top of the SharePoint platform.
Let me as a developer share with you my top 5 good things and top 5 bad things about SharePoint:
Top 5 Good Things about SharePoint
- It is a comphrensive platform. Makes it a hell lot faster to develop and deploy fully featured, standardized, scalable and high availability Web solutions like a corporate Intranet and Extranet.
- It has huge momentum. Microsoft continues improving it and it gets much better with every release, the community is great and growing, online resources are good and growing, more and more books are coming out, many great free add-ons and good third-party products popping up all the time, and there are also great conferences to go to.
- Very modular platform where you can package your own stuff into Solutions, features, Web parts, Templates, Content types and more.
- It leverages standard Microsoft technologies like .NET, ASP.NET, IIS and SQL Server. So you will not get stuck with one specific skill set.
- In the current job market, you are much better off with .NET + SharePoint skills than just .NET skills. It is something like saying you have SAP experience or are a BI specialist.
Top 5 Bad Things about SharePoint
- Steep learning curve. It takes at least two years to become a good SharePoint developer - even if you are already good at C# and .NET. You will need the first year to just understand all the concepts in the platform and then another year to get really familiar with them.
- Inadequate development tools. Visual Studio hardly knows anything about SharePoint - but I hear this is going to change big time with VS 2010 :-)
- Not always possible to use the latest and coolest .NET features. It always takes SharePoint a few years to adopt the latest and greatest stuff from the .NET platform teams. Just think about Linq and AJAX. I am curious to see if/when SharePoint 2010 will support .NET 4.0.
- Often a need to find work-arounds to quirky problems/inconsistencies in the platform.
- Changing APIs. Well, at least this was a pain moving from SPS 2003 to MOSS 2007. I hope the transition to SharePoint 2010 will be a smoother ride.