Saturday, December 26, 2020

The Death of SharePoint? [UPDATED 3-18-2021]


SharePoint Right Now

For anyone comparing the history of SharePoint, the tool has evolved significantly over the last twenty years, from a very a simple file hosting tool to a powerful automation and content management platform. It can host web pages, collect data, and trigger condition-based workflow automation. It seemed for the last few years that SharePoint hit it's stride, guaranteed to continue forward for years to come. Versions 2016 and 2019 came around, yet an odd twist happened; Microsoft dropped hints that no other on-premises versions of SharePoint would be released. To date, no major developments have been announced for on-premises editions. This would confirm suspicions that any intent to keep SharePoint "in-house" will have a limited future. Extended support for version 2019 has already been set to expire as 7/14/2026 (https://docs.microsoft.com/en-us/lifecycle/products/sharepoint-server-2019). In more recent times, Microsoft announced the deprecating of the SharePoint 2010 Workflow Engine within Sharepoint Online, as well as a warning that the 2013 Workflow Engine will follow suit in the "near future". For reference, the 2013 Workflow Engine is the current standard of workflow operations within SharePoint Online. The intention is to force a shift over to the Power Apps suite. As it is, SharePoint as we know will undergo significant change over the next 5 years. 

***UPDATE 3-18-2021: I had the opportunity during GlobalCon5 to ask Mark Kashman (Senior Product Manager at Microsoft, Microsoft Lists and SharePoint in Microsoft 365) if any new SharePoint Server editions were being developed. He mentioned that Microsoft was not ready to talk about new SharePoint Server releases, but was working on something and expected to make an announcement later in the year. This does indicate that some flavor of "on premises" may be maintained past SharePoint Server 2019, but would have to be a hybrid of sorts, again noting that the SharePoint Workflow engine technology is being discontinued. 

The Future

First, SharePoint Online via Office 365 is still running the same technology as SharePoint 2013 enterprise edition. This is necessary, as SharePoint 2013 is still under extended support until 4/11/2023 (https://docs.microsoft.com/en-us/lifecycle/products/sharepoint-server-2013) and must provide migration paths between the two. Watching the new development trends and reading between the lines from MS Ignite 2020, I'm projecting the following changes:
  • After SharePoint 2013 support formally expires, the SharePoint Online platform core will be upgraded to 2019
  • SharePoint as a formal product will be maintained until SharePoint 2019 support formally expires, at which point, SharePoint will be diminished to a background service within Office 365
  • New apps creating extended interfaces to work as "apps" within MS Teams and other popular high-integration services will be released to replace existing UI and UX from direct SharePoint access. The "Lists" app, "Forms" app, and similar apps already show some of the cards from Microsoft's hand. 


What This Means

SharePoint as a platform will likely not fully disappear, but I do expect the front end experience to vanish within the next five years and be assimilated within the Teams product. With the full integration of Search and AI within Office 365 technologies, it is only a matter of time of until the duplicate functions, once exclusively found within SharePoint, will be no longer needed. Scaled, unified connectors will instead be implemented. The high availability content creation features of SharePoint will remain, but it will no longer be branded as such. With these expected changes coming into focus, at the very least it means that the "SharePoint" specialization will evolve to embrace new integrated approaches, such as building data tools within the "DataVerse"(https://docs.microsoft.com/en-us/power-platform/admin/about-teams-environment) and implementing machine learning models through Syntex (https://docs.microsoft.com/en-us/microsoft-365/contentunderstanding/). This is not meant to be framed as "bad news", but rather inform of how the content management paradigm will expectedly shift. Knowing this, I sincerely hope that it gives the insight to plan for future scalability and build future-focused strategic technology plans. 

I wish you all the best as we approach 2021! 

-Nate

Monday, August 10, 2020

Search Options for Microsoft Stream

The Issue

If you've tried out Microsoft Stream within your Office 365 tenancy, then chances are you've begun to realize that its searching capabilities leave much to be desired (they stink). To be fair, the app offers searching across all videos, but only finds text matches and orders results by most views. This can be somewhat mitigated by organizing the videos into channels and then searching within, but again, results are surfaced by most views, rather than relevance to the search keywords. Do I expect YouTube class results? Certainly not, but it's next to impossible to find meaningful results without refiners who at least some basic algorithmic factors to match results. In my tests, results with vague transcript matches and more views were weighted higher than full text match results in the title, description, and transcript, but had no views, due to the poor searching mechanism. Every "discovery" feature of MS stream is focused on overall viewership, versus quality of metadata or interest. One more shortcoming is that the search results cannot be crawled or queried from SharePoint Online Search. More can be read in the official documentation:

SEARCHING: https://docs.microsoft.com/en-us/stream/portal-search-browse-filter

EXPLORING: https://docs.microsoft.com/en-us/stream/portal-explore-content 


One Workaround

A very simple approach, is to use an html input element to collect search term and apply simple javascript to concatenate a string from a search value, pointing to https://web.microsoftstream.com/browse and using the query string parameter "q" to set the search value. I tried using the built in SharePoint search web parts, but it always appends a extra "k" query string parameter, which breaks the string handed off to Stream. This works as a basic example, but again, is limited by Stream's lack of intelligence search options and compiling results based on popularity, rather then relation to the search terms. On the plus side, this does allow a formulated query to passed from SharePoint Online to Stream. See the following code example for this idea (which monitors keystrokes for a "return" or "enter" key press to execute the inline script):

<input type="text" onkeyup="javascript: if(event.keyCode === 13)window.open('https://web.microsoftstream.com/browse?q='+this.value,'openSearch');" />


Another Take

I looked for a simple way to use the same kind of search by query string parameter in the channel search, but it looks that Microsoft is using an asynchronous API call for channel search, different from result filtering by query string as with the general video search. In looking at it briefly, it seemed to be a JSON result that could be parsed and styled with a little work, but I didn't dig much further as the results will again be fueled by popularity.  


A Mix of Services

In the case of what I was designing, I found I could achieve the best of all my requirements for using Stream to buffer video, then using a SharePoint Online Asset Library, using the embedded video option, to create index-able records with metadata that would be accessible to Search. In this way, I can build pages and content around those results, using Stream only as host service, rather than a content platform. This proved to be the most effective of everything tried. 

Have you tried to tackle this challenge as well? What kinds of solutions did you try out?