A while ago I wrote a (carefully considered) rant about the evil that is the Folder. I dislike folders so much that I wrote a song about them (well, part of a song, but in this I am definitely allowed artistic license.) Yet I am clearly on record as a bit of a Microsoft Teams convert, and Teams uses folders, not grown up metadata. See if you can spot what’s wrong with this picture…
“Microsoft Teams… the Saviour of the Universe (ah aah)”
If you have had any interaction with Microsoft of late, you would be easily forgiven for thinking that. While I am an ardent lover of the power, sophistication and flexibility of SharePoint, I would concede that it is a complex platform and it’s very easy to develop ‘bad’ solutions on it that do not get great engagement from staff (unless done really well, which is what we do in Cloud2, but that’s a different story). So complex that MS were close to abandoning it as even they didn’t really understand what they had created. Then Jeff Teper came along and painted a new vision and the SharePoint garden is flowering nicely; however, that doesn’t get around the issue that it is a serious application that needs developing into a solution before it can be used. I even wrote a blog on how SharePoint is like Lego, but that was long ago in a galaxy far away. Meanwhile some folk at MS were playing and invented what became MS Teams, which provides a really simple experience for users, combining team chat (like Skype for Business chat, but with Slack like persistence and for persistent groups of people), combined with a Files tab and some other useful stuff. But you knew all that, didn’t you? You probably also knew that the Files tab is actually a SharePoint library and the act of creating a Teams Area spins up a full, linked SharePoint site collection. Teams Areas can have additional Channels, usually orientated around a work stream, activity or sub-team and these also have their own Files tab. However, go exploring these in SharePoint and it’s quickly apparent that each channel’s files are simply in a folder in the SharePoint library, with the same name as the channel. You can add metadata, views, content types etc in the library as normal; however these resolutely fail to appear in Teams (unless you manually add additional tabs that point at the libraries). Instead, the only way to organise your files within a Channel is to create folders and these become sub-folders in the channel folder in the library. Following so far?
In Teams it’s all pretty simple; end users wedded to the noxious horror of folder structures can carry on regardless and no one has to train, encourage/threaten them to experience modern thinking on knowledge management (it’s only been 20+ years after all). Perhaps I’m being unkind; Teams is rather nicely pitched at the ordinary ‘Joe User’ who just needs to have a simple experience and do stuff quickly; there is nothing initially wrong with that. Except that these systems always end up growing to the point of dysfunction as more and more content is added; it’s a sort of Digital Peter Principle. Despite years of best practice, evangelism and dire warning about the issues of folders (and everyone’s’ personal experience of how badly broken all shared drives on file servers are), MS have created a brand-new monster. How we laughed.
One of the cool things about Teams, is that it is fairly extensible; you can add new tabs, link stuff together, use content from other applications via connectors; even fire up workflows and embed applications in tabs. You can also bounce people up into ShrePoint for all the sophisticated stuff about 20% of use cases will ultimately need. But if you allow your information architecture to be screwed up then it’s a nasty, soulless job to fix it for that 20%. What you really need is some way to bridge the gulf between a fast-adoption, simple-to-understand Teams experience and an enhanced, life cycle-managed, compliant SharePoint one. Your users (mistakenly) want folders, your organisation needs metadata.
This issue has vexed me for some time, until a timely conversation with the redoubtable Jon Burton about this exact issue (how he laughed). Being a kind soul, I like to not only offer things to fear, or be intrigued by, but also provide solutions to real-world issues. So, I present to you… ‘Content categorisation based on Folder names’
This is his not actually a new concept. In the Folders blog, I talk about how most folder names are really just a crude and somewhat ineffective way of categorising things. In fact one of our earliest clients, Paul Kendrick, bemoaned that Microsoft had no function that let users drop documents into folders and turned that into metadata. We have even used this concept in Hadron Migrate, our file system to SharePoint rapid migration tool. The trick, in this case, is to write a Flow. It works like this
It is triggered overnight or whenever new content is added to the Teams Area library.
It uses the Is Folder function to identify the Top Level folder name in the folder tree (which will be the Teams Area Channel) and use the Update function to write this into a Channel column in the library for each document.
It uses the same Is Folder name of the immediate parent folder of the file and Update that into a Category and/or Keyword column.
Before this we would deploy content types to the libraries that contain the required columns. We would also create a set of metadata driven views that are set to ignore folders and show content Grouped by Channel. Filtered as needed
Until such time as Microsoft do provide full metadata and view support in the Files tab (it’s coming, they claim) then we would add the library into a further tab, to allow a rich navigation of content as required.
It’s pretty neat; combining the simple and sophisticated worlds. You could even use it in SharePoint without Teams being involved. How about having a Drop Off folder, that users can create their own sub folders in and the content is then tagged, moved, or otherwise processed. If you want to get really sophisticated, then we would use some cognitive services stuff to extract keywords from the document content and use that to further tag the documents. But that a different blog entirely (but like the one on autotagging images)