Developing multi platform services with Microsoft Office 365 and Sharepoint online
16 January 2016 by Hans Baumhardt & Keith Drew
The Matter-Center business founders have participated in the corporate technology industry for over 25 years each, experiencing the evolution from command line mumbo-jumbo to out of the box business solutions that empower users without the need of technology specialists. It has consumerised or democratised, along the lines of the seminal 2003 HBR article by Nicholas Carr “IT doesn’t matter” (business processes do).
Today we live the dream with tools such as Slack, Join.me, Trello, Xero (Accounting) and Clio (legal PMS) which just work, helping us to get more stuff done when we want. Better. Faster. Cheaper.
Our founding hypothesis was that we could do the same for Microsoft Office 365 based solutions. Office 365 is a rich feast of front end applications along with back-end communication and collaboration services in a global cloud. Unfortunately with the richness comes the encumbrance of fine-grain complexity which can be insanely frustrating to work with as a user, or around as a software developer.
Market research found an addressable gap of professional fee earners with a desire to retain the rich, familiar Microsoft Office front end applications, but “work with matters anywhere, when I want”. For technologists we can add “securely” but that’s, like, a given these days.
To deliver something that works at low cost on any device, our design principles were grounded in “less is more” simplification and minimalism, for which we refer to a wonderful quote:
” Perfection is attained … when there is no longer anything to take away ”
Antoine de Saint Exupéry
Starting with a Microsoft framework it took us 6 months to create the core (MVP) product, a simplified legal document and email management solution based on Microsoft Office 2016 clients and Office 365 services. It invisibly provisions an individual customer solution in less than 60 minutes, and then works out of the box with no specialist IT input needed. Of course it’s an ongoing journey of continuous improvement for us, but the core is done and delivering.
The Microsoft software development tools are best-in-class and we love them. The Microsoft Azure cloud development environment is straightforward, but the Office 365 platform and dev frameworks need to mature as there are some holes that have caused many and varied engineering challenges along the way. Some of the compromises, kludges and scars are still with us. The hangovers and tattoos mostly faded with time.
All software has defects and limits, its part of the definition. If you are interested in building elegant self-provisioning document services with Microsoft Office 365, our list of shame may be helpful to avoid or work around such issues.
The list of shame at January 2017
This section is for technologists rather than civilians.
There is no CSOM API to publish content types for SharePoint Online Contenttypes are the heart of a Sharepoint based information architecture so we use them. The only manual step in our fully automated provisioning is having to click “publish” on several web pages. It sounds minor, but its inelegant and adds opportunity for error and omission.
Replication of SharePoint Online content types can happen in 5 mins or 24 hours. Seriously, our deployment scripts have to take a break and poll for up to 24 hours to wait for a replication before completing a client provisioning. We schedule our “less than 60 minute provisioning process” for 25 hours. Efficient it is not.
API to attach files in Sharepoint Online to Outlook Web Access emails is inconsistent. PC OWA add-ins can save received attachments to Sharepoint Online, but the reverse of attaching from Sharepoint online to OWA to send is inconsistent. Possibly due to unintelligible documentation, or a broken API that drops an auth token. 12 months of asking around and no one seems to know. We have written a workaround that proxies a browser download via local storage, but we are not proud and it’s not super-robust on all browser + platform mixes.
Office 365 client Office.js add-in web panels can’t “Save As” a new file. We use Office.js web add-in panels where we can for a seamless works anywhere experience. Unfortunately GetFileAsync cant “save as” new file stream or name, so new documents cant be created to fork a version. We have created Visual Studio Tools for Office (VSTO) local PC client installation components which adds to complexity, reduces the platforms we can support (no VSTO for MAC) and is a poor user experience having to install and update stuff. No one wins. We really need that API.
Sharepoint Online 5,000 list row query limits. Creating a business application on a platform that limits table queries to 5,000 UNSORTED (even with index) rows is our new paradigm for “out of the box thinking”. There’s an amusing tech marketing book called “In search of stupidity” …
There is one more elephant in the room. But that’s ours to feed, unless you ask nicely.
The finish & prestige
We are exclusively a SAAS product company, not a consultancy (as we believe that the day rate is dead) so we wont step on your toes or eat your lunch with our experience.
If you are a founder thinking of developing product in this space, and would like to find out more about the challenges before investing, we are happy to share for the price of a cuppa. Alternatively if you think we are doing it wrong, are barking mad, or just know better, why not tell us ?
You can get us through the contacts on our /about page, let’s start a conversation.