>They encourage a design attitude that everything has to operate like the flight deck of a 747
I agree. If you have ever done any development using SharePoint or Dynamics CRM API's and SDK's you will know how much of an overengineered mess these applications are. The unnecessary complexity of these applications does however create demand for thousands of developers to untangle the mess.
I feel very sorry for my friends who are actively writing projects in the latest .NET Whiz-Bangedness.
They're all so optimistic, with regurgitated Microsoft marketing-speak about how this bell or whistle is going to magically solve this or that problem, and how easy everything is to do now. They've been eagerly awaiting a new customer to try this stuff out on.
Then, sometimes just within days, I start hearing the pain. It's always the same -- the damned development ecosystem is a freaking nightmare and some little gotcha somewhere is killing hours (or days) of time.
I used to teach .NET. Everything is awesome as long as you go down 7 or 8 pre-defined paths. But nothing ever works like that in the real world. There's nothing like watching a new developer drag a control onto a form, take a look a the properties page with it's 40-thousand item madness, and be utterly and completely at sea. Lost. Bewildered and rendered ineffectual. Their stuff is full of experiences like that.
Absolutely spot on, and I have exactly the same experience.
What completely baffled me when I did quite a bit of SharePoint development of late is, that you are essentially doing web application development, except everything you know about web development is somehow not valid anymore because it has been buried under layers and layers of abstraction.
So you have to go on at least one SharePoint development course, to re-learn web development as you know it.
Several years back I had a friend with a small business who wanted to do some SharePoint stuff, so I picked up 3 or 4 books on it and read them all.
Oh. My. God. That tool will solve world hunger, land a fighter on a carrier deck at night in a storm, and compute the answer to life, the universe, and everything. It does frickin' everything.
So it also does nothing. You end up having to digest a huge learning curve, creating all these specialty libraries to handle workflows, understanding that you need a view for this, a link for that. It's like having to learn Klingon just to get a cup of water.
Whenever I hear SharePoint any more, I just smile. It's a great tool, and it can do an incredible ton of stuff. I just know the pain that's involved with it, and unless I have no choice I want no part in it -- except for maybe using it as a document repository, and even then Dropbox does all I want with zero learning curve.
Microsoft is constantly distracting me with the coolness of their tools instead of enabling me to quickly solve somebody else's problem. The developer has become the market for them -- and that's really bad for both developers and end users.
Thank you very much, those comments made my day :). I very much share the sentiment. I am developing in SharePoint and I am sometimes impressed at what it can do; however lately I have been thinking of jumping ship and start developing small business applications (in Golang) that solve user problems quickly and iteratively.
I agree. If you have ever done any development using SharePoint or Dynamics CRM API's and SDK's you will know how much of an overengineered mess these applications are. The unnecessary complexity of these applications does however create demand for thousands of developers to untangle the mess.