Good morning, Happy New Year and welcome to the new decade. 2020 sounds like a year when we should all achieve something significant. But – as we all know – a business career is built over far more than just a year. So let’s use this first blog of the 20s to look even further […]
That’s it – 2019 became 2020 and ushered in a whole new decade. At last we can stop battling with the awkward ‘Noughties’ and ‘Teenies’; the ‘Twenties’ rolls off the tongue more comfortably.
The language may be one of the few things that is comfortable about this new decade. Humanity shows little sign of enlightenment or wisdom. While many of us are fortunate enough to live in nations that are more liberal, accepting and egalitarian than ever before, the global stage amply demonstrates that stupidity, to quote Frank Zappa, remains more plentiful than hydrogen in the universe.
However human ‘stupidity’ is defined, the new decade ushers forth the counterpart, ‘artificial intelligence’. These new Roaring Twenties will undoubtedly be the decade of AI; accelerating what is already cited as the 4th industrial revolution.
I have been contemplating the role of real-world AI for half a decade now. While I, amongst others, am enamoured by Alexa (there are said to be approaching quarter of a billion Alexa enabled devices in use), these consumer level experiences hide the real roles AI is aiming to take on. Be in no doubt: in my opinion, AIs will have profound effects on society over the next ten years, displacing skills (and, thereby, people) who currently believe that their expertise is immunised against the march of technology. White collar workers; professionals such as Solicitors, lawyers, accountants; all manner of knowledge workers and more who make their living by what they do with their brains rather than their hands will, for the first time in history, find themselves impacted, displaced or even superseded by technology. Nor will the arts be exempt from this, despite the protestation of talented artists.
Ironically, manual jobs, especially crafts and trades, will be largely protected; general robotics is very much in its infancy (I love our shiny new robot vacuum, but it can’t do stairs). Equally, (for now), any role that thrives on human interaction will be protected. Noting that AI may support and supplement what these people do.
treat each AI as an employee, with a line manager, objectives and performance reviews
We are going to have to think long and hard about how we want our societies to accommodate these changes. There are the questions of AI ethics, of course; the community debate about how we want our AIs to respond will say much about each society and perhaps allow us to objectively compare different cultures. How we regulate AIs and their impact on the workplace is equally pressing; do we protect workers’ rights or allow a dystopian future where ‘big corporate’ controls most of the wealth; or do we create a new world where a fair standard of living is assured and people find purpose other than through work? How we make AIs accountable for their actions, just as we do with employees is equally valid; with one suggestion shared with me would be to treat each AI as an employee, with a line manager, objectives and performance reviews.
There are big changes coming and it’s going to be profound. However, amidst the tabloid headlines of doom-mongering and hand wringing and calls for public displays of ‘Ludditism‘ to come will be much more subtle stuff. Behind the scenes, AI will help make lots of things just a little bit better; will assist people without the cost of a therapist or personal coach or expensive consultant; will diagnose your health needs better than a human doctor and will drive your car more safely than you can. Amanda, an AI business coach, might help develop a new generation of entrepreneurs; while Microsoft has already quietly introduced an AI powered presentation coach into PowerPoint to stop those awful sessions where slides are read to you word for word (and a bunch of other common failings). What’s interesting is that Microsoft launched this with no fanfare or major publicity; it’s just there as a feature (check the Slide Show menu in PowerPoint Online). These are all happening today, even if you didn’t know about them.
The unremarked creep of AI into our day to day lives is the real insight. It’s not just the stuff of headlines and press releases that we should pay attention to. It’s the quiet, relentless adoption within our day-to-day lives. Like technology revolutions throughout the age, while some technologies are making headlines, it’s the almost invisible stuff that really changes the world.
I spend an inordinate amount of my time reviewing the Microsoft roadmap and the many elements in the Office 365 Admin Center Message Centre; partly because there’s so much new stuff coming out all the time and partly because I’m a masochist like that.
Digital Workspace technologies is my sweet spot; I tend to read up on everything Microsoft is doing around that and play around with them as soon as the chance avails itself. I use this to incorporate the knowledge and features into our products & services and so I can keep our clients up to date (and keep us one step ahead of our competitors). I supplement this with my annual trip to the huge Ignite conference in the US, where I get to talk to some of the Microsoft programme managers and engineers and simultaneously attend every session I can squeeze in over the 5 days (I walked 74.5km during Ignite this year. In brogues). Invariably, I then spend the next couple of months frustrated that the new features that were showcased and promised aren’t available on our tenant for me to evaluate.
So, with considerable excitement, I noticed that the SharePoint Admin Center updates, described in the Ignite 2019 blog, became available at the end of November for us.
This is what the Message Centre announcement promised:
“Replace root site – You can replace your root site with another site from the SharePoint admin center. The original root site is moved to a different URL and can be restored, if necessary. This feature will only be available for limited customers. For more information, refer to Message Center post MC189866.”
Setting the scene “You are sitting in a bar when…”
With only mild trepidation we set about swapping out our internal intranet Classic Site (with a Modern landing page) for our shiny new Modern site linked to an ‘All Company’ Teams Area. This was something we had wanted to do for many months and looked like it was super easy. We used the new PowerShell cmdlet: Invoke-SPOSiteSwap, though Microsoft are promising a Swap site button in the SharePoint Admin Center.
Using PowerShell, it was super easy:
- Connect to SharePoint Online as a global admin or SharePoint admin using the SharePoint Online Management Shell
- Run Invoke-SPOSiteSwap.
Invoke-SPOSiteSwap -SourceUrl https://contoso.sharepoint.com/sites/CommunicationSite -TargetUrl https://contoso.sharepoint.com -ArchiveUrl https://contoso.sharepoint.com/sites/Archive
SourceUrl is the new site you want to use, TargetUrl is the old root site you are replacing and ArchiveUrl is the location where you want to archive the current root site.
Watchouts – challenge rating 1
A couple of immediate gotchas that Microsoft publicise:
- The source and target sites cannot be connected to an Office 365 group
- The source and target sites cannot be connected to a SharePoint Hub site. In the latter case, it’s a fairly simple matter to remove the association, do the swap, and then re-associated with your preferred Hub. Note that this means that the root site need not be a Hub and can be a ‘child’ site (if you want to think hierarchically). Equally you can make the newly swapped root site into a Hub site; this hurts my head less, but it’s still useful that it doesn’t have to be the ‘parent’ n the relationship, just because it is the first thing that people encounter.
So, the site swap happens pretty seamlessly and without initial drama. We just let people know what we were doing and asked them not to mess with things for half an hour. We even provided a nice link to the old home site, which was now to be found at:
End of level boss encounter – challenge rating 9
It didn’t take that long to realise that we had made a mistake…
The first thing I noted was that a document I had open was warning that it couldn’t complete its autosave. Then I spotted the Red Cross Of Dread on my OneDrive sync client icon. The penny dropped…
When we designed our intranet, we valued interaction and sharing of content between sites over the competing view that everything should be a separate disconnected site collection. Consequently, almost everything was a subsite of our master site. This let us do clever things by referencing assets and lists etc. that were mounted at the home level. It worked very well for us for many years. Until we did a site swap.
What happened is this: all our department sites and their content had absolute addresses based on our old root site. So our Sales site, for example, was:
Key documents, many of which we have pinned or wired up to buttons and navigation tiles, have paths such as:
All these instantly became broken as the post-site-swap address became something like:
Even some of our webparts broke
In hindsight, Microsoft did give us fair warning:
“The previously designated root site automatically gets archived along with any subsites that may have existed.”
We weren’t thinking ‘archive’ just new location, but the effect was the same.
Picking up the pieces, healing the injured
We are now enjoying a rapid re-architecture of the site (using the rather excellent Sharegate tool to promote subsites to site collections), while fending off the withering glares of our inconvenienced colleagues.
Learning from other people’s mistakes
I leave you with this helpful advice, in the hope that you cunningly avoid the boss level encounter (and still gain the experience points):
Microsoft provides some pretty decent guidance here: https://docs.microsoft.com/en-us/sharepoint/modern-root-site. We really should have read it carefully and thought about it first. In our defence, we may have made the same mistake, since the only real warning was a single bullet point, hidden in plain sight under Limitations:
All subsites contained with the source and target sites will be swapped.
Subsites were always going to break, regardless of how much we read. Before doing the site swap, promote all your subsites to new site collections. You could just recreate them and copy the content across if your environment is simple.
Warn your staff of the pain to come
Favourited links, pinned documents, local sync, shortcuts, inter-document links; they are all going to die, horribly (except where you made them relative links). Prepare your staff for the pain, get your support desk doubly ready.
Remember people mostly have multiple devices, so the pain is multiplied (using Edge or the new Edge Chromium helped, as at least browser favourites synchronise across all devices).
Make sure that you force the indexing process so that Search very quickly finds all the stuff in its new location – it’ll save your bacon when staff can’t remember where the things they linked to actually were.
Permissions and governance
Think about what permission inheritance might now be broken. It’s not just user permissions; any ‘up the tree’ references to master lists etc. are going to be in trouble.
SharePoint’s global navigation is rubbish. It’s also very easy to lose sites as the only place to see every site collection is from SP Admin, and that’s going to be full of random Microsoft Teams sites etc. Make sure you document all your sites and design a replacement global navigation before you start (we were lucky; our navigation was embedded as a termset, plus we have a rather excellent global navigation megamenu we built for our Hadron product that we could simply update with the revised URLs).
You are going to have to walk everyone through how to fix their locally synced content, since all their synchronised libraries are now broken. Firstly, make sure that they DO NOT save anything to the local drive as they will no longer update to the cloud. They will also see a bunch of errors in the OneDrive sync client in the tool tray (bottom right). To sort those out:
- Open Windows Explorer and click the company’s Sync group, the one with the building icon. This shows the sync’d libraries in the right pane. Note any that don’t have a status icon as these are the ones that are now broken:
- Open the OneDrive sync client settings (right click and choose settings). On the Account tab, click Stop Sync on the folders identified in step 1. This should remove the sync errors.
- Now go back to Windows Explorer and delete the folders
Another new feature is the ability to edit SharePoint site URLs. This is handy when you find you have conflicting site names, probably because of Microsoft Teams again.
Now that you have survived the site swap and dealt with the snagging, it’s time to ensure all your classic pages are converted to lovely, shiny (and fast) Modern pages. At Ignite 2019 I asked lots of Microsoft people and migration people (Sharegate, AvePoint et al) if there was any way to do page conversions. It was a resounding no.
This morning I came across this, just announced by Microsoft (post Ignite):
Transform classic pages to modern client-side pages
Automatic conversion of classic pages to Modern, via Powershell, .NET and (Preview) user UI. https://docs.microsoft.com/en-us/sharepoint/dev/transform/modernize-userinterface-site-pages
Maybe you don’t need to get a student in after all.
Please drop me a line or comment if you have feedback on this. If you just want to comment on the RPG references in order to reveal your inner geek then that’s good too.
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)
It would be fair to say that I have become something of a Teams convert. Maybe even an evangelist. With that in mind, here is a round up of what I consider to be some good and best practice for use with Microsoft Teams. Teams is so new that new features are emerging all the time and use cases and associated practice are also emerging, so any of this is subject to change.
- Turn it on! You can do this in the O365 Portal and you can assign licences to all users or a selection. PowerShell scripts can help if you need to be selective.
- Call each team in Teams the ‘Teams Area’ or ‘Area’ for short. The language gets really messy otherwise.
- Have a naming convention for each Teams Area. At the minimum this should include the owning department or function and the purpose of the Team, e.g. Sales – Tenders
- Have a clear naming convention to differentiate between Live and Test Team sites. You could add -Test on the end or add an asterisk or other character to indicate temporary or test Areas
- It’s also useful to add the date it was created, so dormant Areas can be removed.
- Remember that each Area also gets an email address. Make sure these group addresses don’t conflict with existing email groups.
- If you need extra control, only let new Areas be created via a Flow, with approval. See the screen shot for what you might want to capture; you then need to use a Custom Connector (as there isn’t a direct option in the Teams connector yet), but there is a useful option already on Github for this
- If you want a SharePoint Site, but also use Teams then make sure that you create the Teams area first; it will create a group and a Modern SharePoint site for you.
- You can do it the other way and link a new Area to an existing site, but only of that site has a Group already.
- Ensure that someone reviews the range of Teams from time to time and ensures that they meet the naming convention, as well as removing dormant or duplicate Areas.
- Create a Flow to notify an Admin whenever a new Area s created
- Check that every Area has more than one owner, just in case one of those knocked over by a bus scenarios happens; or that the Area owner is on leave.
- Use Channels to separate out different workstreams, topic areas etc.
- Remember that there is currently security at the Areas level but not at the Channel level. Anyone in a specific team can see all the content of all the channels in that Team Area. Don’t share sensitive Areas; consider having a second Area for each external person or group you share with. Use the Move or Copy function to shift files etc between the two.
- Get to grips with tabs
- Remove the Wiki tab – it’s hopeless. Add a link to your own OneNote pages, tabs etc instead
- Add pages, applications and SharePoint libraries and Lists as tabs in channels, to create a joined up working environment.
- If you use Dynamics, read this: https://community.dynamics.com/365/sales/b/d365forteams/archive/2018/12/07/best-practice-using-microsoft-teams-with-dynamics-365
- Add metadata to the libraries (via the SharePoint site), even though it doesn’t currently appear in the Files tab in Teams. It will at some point and you’ll be glad you have the extra control, filtering etc.
- Learn about Guest access
- Guests users have a bunch of restrictions – make sure people (and your help desk) know about them: https://docs.microsoft.com/en-us/MicrosoftTeams/guest-access
- Remember that you can only have 5 guest users per real user – actively remove dormant guests from time to time
- An Admin can invite up to 2000 guests at a time, via a CSV file and using Active Directory B2B (https://docs.microsoft.com/en-gb/azure/active-directory/b2b/what-is-b2b)
- You need to turn on and manage Guest access:
- Sign in at Office 365 global admin portal; in the navigation menu, choose Settings and select Services & add-ins; Select Microsoft Teams;
- In Select the user/license type you want to configure, select Guest; Click or tap the toggle next to Turn Microsoft Teams on or off for all users of this type to On; Choose Save.
- Global admins can choose, who will be able to invite guest users to an organisation:
- Directory admins and users in the guest inviter role;
- AAD members;
- Don’t forget that every Area has an associated SharePoint site.
- Make sure users know how to easily access those; ensure that these sites are discoverable from within your intranet (i.e. add them to your navigation), and encourage Area owners to update and format their sites.
- It’s a good idea to create a SharePoint Hub site and associate all the Teams Areas sites to that hub.
- Establish some Chat etiquette. Area owners should help police this and remind users of the etiquette
- Use @name in a team chat to ensure someone gets a notification
- Always use Reply to add commentary to a thread
- Keep conversations focused in the right channel and Area.
- Don’t say thanks etc to every chat; you can hover over the chat and click the Like icon if you want to acknowledge someone.
- Consider setting up some policies for how Teams should be used
- Review the audit log for events etc. from time to time (https://docs.microsoft.com/en-us/MicrosoftTeams/audit-log-events); you need to turn it on though. It can tell you about:
- Team creation
- Team deletion
- Added channel
- Changed setting
- Review the audit log for events etc. from time to time (https://docs.microsoft.com/en-us/MicrosoftTeams/audit-log-events); you need to turn it on though. It can tell you about:
- Get familiar with the Security and Compliance Centre, so you can check that you users are following the policy.
- Get users to learn the Search box. E.g. Type @name in the top centre search box to start a chat with someone
- Check out all the add ins and connectors – there are many. Take a view on which add value and provide guidance to staff on these.
- Consider writing Flows to inject messages, updates and even email into the Chat streams in channels – you can probably reduce email by 10% or more
- ‘Favourite’ teams and channels for people, so that they can find the Areas they want more easily.
- Try to keep the number of Favourites to no more than a dozen
- Link to Teams Areas from SharePoint (and anywhere else relevant), especially for less commonly used Teams
- Consider keeping a log /directory of all your Areas.
- If you have less than 1000 staff, create an All Staff Area and use it for general communications etc. similar to how you might have with a discussion group or Yammer. Consider adding your Company News feed to a tab or as a channel
- Create a Feedback channel in the All Staff Area
- Decline to travel to meetings; suggest that they can be done via Teams instead.
- Ensure the New Teams Meeting button is enabled in Outlook for 1-click online meeting creation.
- Do the same with your clients
- Ensure users have access to headsets.
- Consider using video too
- Turn off Skype for Business
Find out more: