So I have been getting to know SharePoint lately as the project that I have been working on since December was sold as a SharePoint solution. Now I have no doubt that what we are building is going to turn out but it just seems that too often SharePoint is sold by some as a Silver Bullet where everything should go. I love the product for its document Sharing abilities and for how easy it is to just throw up a wiki or a blog if you need an internal place to put some information. It is also nice if you need to set up a place to track information for your organization as long as you don't have too much information or it isn't too complex.
Where SharePoint is oversold
As I mentioned above SharePoint is nice for throwing up a wiki but if you need a good wiki for somethink a bit larger I wouldn't use SharePoints wiki as there are better wikis out there. Same thing with the blog there are probably 50+ blogengines that do a better job. As for storing your data SharePoint can get you up quickly but if you have more than 2,000 records in a list it is going to start bogging down.
SharePoint has a good calendar that integrates with Outlook but if you want to put something other than tasks on the calendar you are going to have to build your own Calendar. There is a lot that SharePoint does but often there is a better system designed specifically for what you need to do. An example of this would be a bug tracking system that integrated with your Source Control System. There are a lot of free systems that do a good job at this though with a lot of configuration you could use SharePoint to accomplish the same task.
Webparts aren't the only way to go
Many systems do a better job than SharePoint at their specific task but don't do the other things that SharePoint does which is probably why SharePoint gets used so often outside of scope. that is some organization is already using it and just want to add additional functionality outside of what it was meant for. The silver lining that I have found is that very often you can just use the master pages of SharePoint and add your own ASPX pages/User Controls/JQuery etc and get past some of the defecencies of creating a UI without a designer/html page to envision what you are creating.
A Waste of time?
So to rap up this poor post(as it has no code. all good posts should have some code). I have been finding that you can get the job done in SharePoint and if you have a simple application then you might save some time leveraging the Authentication/UI of SharePoint but as the project grows you will find yourself taking longer to create the same functionality as I would have to say that 30-40% more time is thrown away developing in a SharePoint environment as the deploying/debugging iterative development cycles take longer in SharePoint. Why couldn't all of our government clients ask for ASP.NET MVC?
--Just a note. My experience/opinions noted above are about SharePoint 2007. I have heard that debugging and storing more complex data is much better in SharePoint 2010 but I don't foresee our clients getting SP2010 for a couple years.