With each release of SharePoint since its debut, Microsoft has delivered a range of new end-user features, development capabilities and “core plumbing” enhancements. Microsoft has continued this trend with SharePoint 2013, and IT professionals and end-users alike have found the new additions pretty exciting.
Not all of the excitement has been positive, however.
Some of the platform changes have been met with a bit of concern and head-scratching; others have even been met with distrust and outright hostility from some of SharePoint’s most notable and long-standing community supporters. In particular, SharePoint 2013’s new Cloud App Model, or simply “App Model,” seems to be drawing some of the most extreme criticism - from members of the SharePoint development community.
Over the last year or so, I've read quite a few posts and articles (and written one or two myself) on the App Model, presented at user groups and conferences, and engaged in deep conversations with developers, administrators, IT managers, and people with various levels of experience, interest, and commitment to the SharePoint platform.
“Always with the negative waves, Moriarty …”
So why does there seem to be so much acrimony and angst regarding the new App Model on the part of some SharePoint developers? I've seen and heard a variety of reasons. Some feel that there’s nothing wrong with the traditional full-trust solution model where custom code runs on SharePoint servers, so why bother with the new approach? I've also heard it said that the new App Model “doesn't solve any real problem” and thus isn't worth the time needed to learn it. Still others have concluded that the new App Model isn't as capable as the traditional full-trust solution model and lacks the depth for “real” application development.
I believe that there are elements of truth in some of these assessments, but the reality isn’t that clear-cut. Speaking from my own experience, I can say that it took me a fair bit of time, thought, and actual development work before I came to see the many positive aspects present in the App Model.
In the Beginning
My first introduction to the App Model was on Microsoft’s campus in May of 2012. During that week in Redmond, I learned about the App Model, how it was implemented, how to develop for it, where it had issues, and a whole lot more. I knew nothing about the App Model going into the week, and although I knew a lot more about it when the week was up, I had just as many questions as answers.
In fact, I left Redmond more confused than confident. I remember feeling a mix of emotions. I wondered if I really understood where SharePoint was going and how my own life as a SharePoint developer would change in the “new App world.” At times, I was angry that Microsoft seemed to be messing with something (i.e., the full-trust solution model) that didn't require fixing.
I was also depressed because I was concerned about my own skill set and whether or not I’d survive trying to build solutions that integrated so much client-side scripting, CSS, and other web technologies with which I wasn't particularly well-versed. There were many times when I thought, “Microsoft just doesn't get it; this App Model thing isn't going to go anywhere. Developers aren't going to buy into this -- they’ll just ignore it and keep developing full-trust solutions.”
When I was being objective and truthful with myself, though, I could see value in the new App Model and what it attempted to accomplish. It enabled SharePoint custom development for multi-tenant and Cloud-based implementations. It addressed a number of operational issues related to code isolation. It also simplified a very common and painful roadblock that rears its head during upgrade – namely, how to upgrade a SharePoint farm without re-compiling and/or re-writing all custom solutions.
So, if I saw value in the new App Model … why was I struggling so much?
Watching the Water Level Rise in the Bathtub
I spent several weeks going through a mix of emotions and trying to figure out what was going on inside my own head – the anger, the denial, and even the depression. And then it clicked: I was grieving.
My wife is a licensed clinical psychologist (and no, I don’t get analyzed … much), so I’m familiar with Elisabeth Kübler-Ross and her model on the five stages of grief. You've probably heard of the emotional phases described by the model; they include denial, anger, bargaining, depression, and acceptance. According to Kübler-Ross, a person may experience and go between these stages anytime they are faced with the impending reality of something they consider particularly extreme or horrible, like death.
I’d been doing SharePoint development for the better part of the last decade, and I’d gotten used to building full-trust solutions against the SharePoint server object model. As funny as it may have seemed at the time, the new App Model was so foreign and represented such a departure from what I’d come to know and expect of SharePoint development that it left me sort of shell-shocked.
In observing current discourse about the App Model, it seems to me that some of its loudest detractors are “old guard” SharePoint developers. I have to wonder if perhaps they’re experiencing the same phenomenon I did; after all, they've gotten used to developing for SharePoint using the server object model. They’re used to that skill set being highly valuable and sought after.
Getting to App Model Acceptance
Although I have become a firm believer in the potential of the new App Model, I’m not blind in thinking that it will be all things to all people. In its current form as it exists in SharePoint 2013, it is still a 1.0 implementation. It has gaps, limitations, and more than its fair share of warts. It also isn't as capable as the full-trust solution model, and there are certain development tasks the App Model simply can’t tackle.
There is one thing I’m certain of, though: SharePoint 2013’s App Model is here to stay. Capability gaps between the App Model and full-trust solutions will narrow. Bugs will get fixed. And developers who are holding out will eventually move towards acceptance of the App Model in some form. They’ll have to for one important reason: full-trust solutions aren't “cloud ready.” They don’t work in Office 365, and they’re impractical in the majority of multi-tenant SharePoint implementations.
There will always be some need for full-trust solutions in on-premises environments, but the growth opportunities for App Model development will increase tremendously as more and more SharePoint usage shifts to the cloud. Taking advantage of those opportunities requires developers to work through their feelings and misgivings to the point of acceptance. Developers who can’t reach a state of acceptance on the App Model today risk their own relevance with regard to SharePoint development tomorrow.
Title image courtesy of Onion (Flickr) via a Creative Commons Attribution-NonCommercial-NoDerivs 2.0 Generic License
Editor's Note: Read more of Sean's thoughts on SharePoint in Will Office 365 Change SharePoint?