Determining ‘modernity’ for SharePoint

Over the past 12 months, Microsoft have been steadily increasing the scope of the Modern UI for SharePoint. The reach and maturity of the Modern UI and it’s accompanying Development Framework has extended to the point whereby we are making the switch from “classic” to “modern” SharePoint. I know that Microsoft state that:

We’re not deprecating the “classic” experience, both “classic” and “modern” will coexist.

but it is hard to really believe that “classic” SharePoint will remain in the long-term. A key driver for us is that modern sites are the only type available to Groups and Teams and we believe that Teams is the future of collaboration in Office 365. Therefore as part of our drive to Groups and Teams we need to modernize our existing templates. As part of this drive I have been working on a definition of modernity for sites.

Determining ‘modernity’

We consider new sites to be Modern when:

We consider pages to be Modern when:

  • Pages can be created using the “modern” page functionality through the “Site Pages” feature
  • Pages cannot be not creating using Publishing or Wiki features
  • The SharePoint Framework and Office PnP is used for customization

We consider our own apps to be Modern when:

  • They are created using and compatible with the SharePoint Framework and Office PnP

We consider sub-sites to be Modern when:

  • They are successfully transformed from a classic sub site to a modern team site
  • The welcome (home) page uses a modern page

We consider existing sites to be Modern when:

  • List and libraries use the “New experience” by default
  • Pages can be created using “modern” page functionality through the “Site Pages” feature
  • Pages cannot be not creating using Publishing or Wiki features
  • The welcome (home) page uses a modern page
  • Customizations are applied using the SharePoint Framework and Office PnP
  • Our own included apps are modern

We consider the Tenant to be Modern when:

  • User initiated site creation results in the creation of Modern sites
  • List and libraries use the “New experience” by default
  • Comments are disabled in Site Pages as Yammer is our preferred solution for comments




Goodbye faithful survey app

Microsoft Forms is now in Public Preview. It’s mobile ready and accessible by external users. For me this means the end of the line for the faithful SharePoint Survey App.

survey form org

Coupled with Flow, Forms can handle basic automation. It can be connected to Yammer!

form flows

The solution for Forms with ‘sophistication’ is ‘PowerApps + Flow + SharePoint’ as stated in the FAQ article:

Microsoft Forms is not a replacement for Microsoft InfoPath.

Microsoft InfoPath is being replaced by SharePoint Lists, Flow, and PowerApps – modern solutions for digitising traditional company forms, automating workflows, and transforming business processes.

Additionally, I can see the ‘Forms + Flow’ or ‘PowerApps + Flow + SharePoint’ combinations taking workloads away from the Access App which is also on the path to retirement.

Finally, testing Forms in our Tenants has revealed that:

  • The entire Tenant needs to be in First Release to access the Preview
  • All users are licensed for the product by default
  • External access is enabled by default










Embedding Yammer threads into SharePoint pages

Recently I was asked:

Can you tell me if it is possible to embed a specific conversation in a site? I’ve tried every combination on the “Open Graph” possible to get a specific conversation thread to embed. I can’t seem to figure it out. And I’ve read your blog post and I don’t think you answer that here.

Questions like this one arise as ‘Threads’ are not exposed through the Yammer Embed widget or mentioned in the embed documentation. Hacking at some embed code to change the ‘Feed type’ to ‘thread’ and the ‘Feed ID’ to the ‘threadId’ of the specific conversation would be the logical approach. Alas this does not work. If you are a developer and fancy rolling up your sleeves there is a REST API item for threads but you’ll need to handle and style the resulting JSON payload which feels like too much work.

My recommended approach is to use Topics as they can be easily applied and surfaced in an embed feed. Topics themselves are a relatively undocumented feature but are immensely useful. For example we have their use embedded in our business process.

mm use case

I digress, let’s get back to the answering the question.

When using topics to embed a specific thread I recommend that you use the threadId as the topic label as that saves you from inventing a word that describes the thread. Topics are also useful as you can then easily aggregate threads together at a later date.

  1. Obtain the threadId
    • Locate the thread you wish to embed
    • Selecting the date is a quick way of getting to the thread and its Id
    • Grab the threadId of the thread from the address bar
    • The URL of the thread in the address bar will be something like: You need the last part e.g. 751952638
  2. Add the threadId as a Topic label.
    • Threads are a view of a single conversation
    • Select the first message in the thread and add the threadId as a topic label
  3. Get the feedId of the Topic label
  4. Use the feedId in your embed code (remember to set the ‘Feed type’ to ‘topic’)


Yammer and Teams – better together for communities and knowledge

I firmly believe that Yammer and Teams are complementary products. As an example, consider our situation.

How we use Yammer

We use Yammer as the focal point for our 80 or so communities of interest aka Practices. These communities represent the combined knowledge and talent of the 16,000 staff at Mott MacDonald. Those communities can be large, with in excess of 1000 members, whilst others are small. Every community is treated equally as their common goal is to open opportunities through connected thinking. Within these communities, we see three collaborative patterns:

#1 Communities work out loud

The community works out loud sharing their hopes, fears, aspirations and knowledge in the Yammer Group. They make the most of serendipitous discovery. i.e. the ‘classic’ Yammer use case. They use an associated SharePoint site to manage their content which in turns enables wider discovery through Search and Delve.

#2 They form teams to get things done

Teams form within the community that focus upon particular ideas, topics, activities or events. More often than not they need somewhere to meet, work and converse away from the main community. As their work progresses they share progress back into the main community until finally they are ready to publish the results of their efforts. Sometimes these teams are incubators for new communities and we allow them to undergo their own virtual Darwinism with the survivors emerging as new communities. For events, the group responsible need to establish communications streams and areas to share that allow them to focus upon preparation and delivery of the event.

#3 They govern as a network

We require that each community be supported by a small team – typically a pairing of senior influencers and emerging stars. Their role is to coordinate, manage and cajole the activities of the community. Each team feeds into a network of Champions and an overarching Board of Group Sector Leaders responsible for the entire community ecosystem. The teams, champions and board need somewhere to occasionally work, say to plan a new initiative, meet, or develop reports but most of their time is spent within the communities themselves.

It works but could benefit from improvement…

Before the arrival of Teams and Yammer integrated Office 365 Groups we would have catered for patterns 2 and 3 through a hotch potch of spaces. Some teams would use separate Yammer groups, others combinations of SharePoint and Yammer or a mixture of collaboration over email with a SharePoint site or someone’s OneDrive for the content. None of the modes has been particularly productive or effective. Though it has been a struggle to put a finger on why. Perhaps this was down to a shift in the style of the conversations (to faster, more clipped, less formal), a shift in the team dynamic, reduction in size or the dilution through distribution of the content and conversations.

Capitalising on teams

The arrival of Teams gives us the opportunity to take a different approach

#1 Using Teams to support community governance

We could form a single private Team for the management of the communities. Privacy is considered important for this team for operational reasons but we will encourage them to be more open. Using a Team has the advantage that it is easy to switch from being private to public. In the Team, we could create a Channel per community to act as dividers for the content and conversations but with 80+ to look after coupled with low volumes content and conversation we might not need to be that granular. In fact, clustering the teams together into sectors would be more likely and easier to adopt. We could form a channel for the Champions and one for the overarching Board. In doing so we would reserve the General channel for any other business. By placing the management teams, Champions and Board into one large Team they should find it easier to share experiences, coordinate activities and become more cohesive as a unit. The shared OneNote with a section per Channel will help establish divisions (where required) and they can use it for their meeting notes, knowledge capture etc.

#2 Using Teams to bolster teamwork

On demand, we will form a public Team per community to host the team. If the activity is particularly detailed we may even create a Team for that specific purpose. Each team will be given a Channel and members can take advantage of the awareness features like the publishing of Team Meetings and group calling to stay in touch and keep up to date with other related items or areas (teams) of interest. The awareness features and shared permission model will help to reinforce the binding through the community. The simplicity of the SharePoint site associated with the Team will help people focus on the work in progress. In turn this will serve to reinforce the position of both the communities SharePoint site and our global Document Centre as the repositories for approved, published knowledge and information. This will allow the communities to review and augment content at the most appropriate time with structured metadata to enhance its discovery.

#3 Connected communities and teams

We will add to each Team a tab that displays the associated Yammer Group for the community. This is possible using the website tab option and adding the URL to the Yammer Group. (It would be easier if Yammer was one of the published tabs). This will provide Team members with an easy way of pushing information into and pulling from the Yammer Group as well as keeping them in touch with wider conversations. Similarly we will include a SharePoint Document Library tab that links to the Yammer Groups SharePoint site. Finally we will wire up the Yammer Connector to push both announcements and relevant topics into the conversations. An added benefit for those normally trapped in Outlook is that they could then use the Team app as their ‘single pane of glass’ into the communities which will help them transition away from closed email centric collaboration.

We will continue to use Yammer for the communities and in doing so use Yammer in the way it is intended. It also overcomes two key sticking points:

  1. the scale issue faced by Teams as a team is limited to no more than 999 members.
    • By being consistent with our architecture our staff should find it easier to understand the “how” and “why”.
  2. the need to share the Office 365 Group identity between the Team and Yammer.
    • By using the connectors and tabs we overcome the invisibility of the Team’s Office 365 Group to Yammer and it also neatly focuses the team on not competing with Yammer.

Overheads will remain

Introducing Teams will generate an overhead three manual requirements to:

  1. manage the membership of the Team
    • We will look to link up our dynamic groups service which is driven from staff profiles in Delve.
  2. manually add Yammer as a tab and set up the connector
  3. persevere with the currently sub-optimal push-pull of content from the Yammer Groups associated SharePoint site
    • The possibilities for management, push-pull etc. will improve with the third wave of Yammer’s integration with Office 365 Groups. At that point we will look to upgrade the Yammer Group to a connected Office 365 Group, adjust the membership mechanism to use the Office 365 Group identity etc. In doing so we might need to conduct a one-off migration from the existing SharePoint site to the new connected site as this would reduce friction around the push-pull and user experience.

Yammer and Teams – better together

Through combining Yammer and Teams we should be able to form a neat constellation of communities and supporting teams that connect our thinking.


(I’m sure there is a more artistic way to represent this. A management ‘Team’ as the Sun at centre, orbited by a ring of Yammer Communities, each with a moon or several moons of ‘Teams’ and it’s SharePoint site.)



What Transitioning to the Cloud Means for IT Organisational Structures

I’ve produced this post as response to one in the Microsoft Tech Community titled “What Transitioning to the Cloud Means for IT Organizational Structures (And why you should pay attention)”. It’s worth looking at the Tech Community post and adding your contributions. I agree with the themes of decentralisation, customer centricity and the need for a strategic steering arm described in the post. My response is more around the overall experience and observations.

Observations of a Civil Engineer

In a prior post, “It’s not an Oscar but…” I describe how I made the relatively late career transition to IT.  With hindsight, I believe that I joined IT at a significant point in the transformation of the industry. 4 or so years ago, the “cloud” was a relatively immature proposition (some may say it still is). Services like Office 365, G Suite, and AWS where starting to gain traction with early adopters. Products like Slack and Workplace by Facebook where still twinkles in the eyes of their developers. At the time the talk was of how the cloud would be transformational but it lacked real use cases or substance. Fast forward 1-year: the use cases started to emerge and as growth in the cloud really started to pick up (as an aside check out this SlideShare for an insight in how the numbers changed). Soon after more conservative organisations started making and executing plans to “get to the cloud”. Returning to the present day and the cloud is well established and the numbers tell a compelling story.

There is now an almost relentless push towards the cloud. Vendors are describing themselves as “mobile first, cloud first” and their on-premises applications as “legacy”. As a relative newcomer to the industry I can see the challenges this presents and in particular in the organisational structures of IT services. IT is a relatively immature industry – it’s only been about 75 years since the first commercial computer was developed. Its immaturity is compounded as the rate of change and demands placed upon it can only be measured with exponential curves or theory’s like Moore’s law. With exponential growth, there is limited opportunity to pause, reflect and mature. Exponential growth promotes a reactionary mindset.

Reactionary environments are difficult for organisations to sustain (IT is not an emergency service!). IT’s struggles with this can be seen in the waves of offshoring, outsourcing, nearshoring, and insourcing undertaken by many organisations was well as the constant flux and application of new process models. A move to the cloud creates a new sourcing model which resembles a mash up of offshoring, outsourcing, nearshoring, insourcing and traditional. The model is heavily influenced by new requirements that have emerged specifically in reaction to the cloud e.g. data residency, sovereignty, and privacy. The mashup presents a fresh challenge to the IT organisation and the process models they operate. However, this challenge need not be hard if the IT organisation looks beyond its industry and peer groups for answers.

An IT organisations move to the cloud should be easy, liberating and empowering. From a civil engineering perspective, it is like building a skyscraper but you only need to worry about the planning and transportation to it. It is the cloud service provider who provides a turnkey service, sinking its foundations, building the skyscraper, installing, and maintaining its services, and extending it when you run out of room. Your staff become customers and consumers who occupy and work in it. Once built the IT organisations responsibilities shift to efficiently and securely transporting their customers to the building, empowering them so they can operate the lifts, know what is available on each floor and how to use what they find. When constructing the skyscraper, the cloud service provider would have installed flexible floor layouts and from time to time they’ll rearrange them, introduce a new bits of furniture or even take them out of use. The IT organisations role is to be aware of these changes and communicate them to their customers.

The transition to the cloud requires a change in mindset and organisational structure. The cloud opens doors to a building full of ever changing possibilities. The IT organisation is no longer in complete control and needs to trust others when it comes to security and availability. Change occurs on a schedule defined by the cloud service provider. The IT organisation takes on the role of Foreman training staff under their supervision, ensuring the appropriate use of equipment, communicating, changing schedules based on availability and maintaining safety and access to the worksite. As Foreman, they will also develop, evaluate and support plans for each item of work to be carried out by their staff.

Sticking with the engineering analogy, in the construction industry we have procurement and delivery mechanism called DBFO. It stands for Design, Build, Finance and Operate. Naturally there are variations on the theme and DevOps can be seen as one of those variations. I think the modes that DBFO represent are really useful as a frame for the organisational structure to provided by IT when it comes to transitioning to the cloud.


In the skyscraper analogy, design is about planning and transportation.

When making the move to the cloud the design team will be focussed upon unpicking the legacy e.g. hub and spoke network models, on premises servers and services and migrating key infrastructure like Active Directory to the cloud. This does not need an IT organisation to change as they normally have people in place to maintain those services. They do need some education and support around security, comparable cloud workloads etc. and that is where a cloud partner can help. Like any good mechanic as they know how the service works they should be able to take it apart and reassemble elsewhere.

Thereafter design for the cloud is all about enablement, user experience and usability. It’s about enabling your staff unfettered access from anywhere, at anytime, on any device. User experience and usability is not about the cloud services themselves as the cloud service provider will have that covered. It is about how your customers interact with the services in the context of your organisation, apply organisation specific use cases and as well as the “what to use and when” whilst satisfying the “what’s in it for me”.

With perhaps the exception of the infrastructure needed to connect to the internet it is not about physical hardware. It is about knowing how and when to use, say, a virtual machine, Docker container or blob storage. Design is focused upon providing on-ramps to cloud services, security, data models and configurable solutions that can be handed to customers. Designs need to be applied in a more holistic way as every organisation is becoming a digital organisation where their knowledge, content and networks are their unique selling point.

In order to support the production of designs and react to changes the IT organisation needs to take a new approach to servicing design and in doing so look to change its mindset. A mindset of “that’s how we’ve always done it” will become a barrier as the solutions and services offered by the cloud are in a constant state of flux. Designers need to be holistic, open-minded and up to date. Their designs need to be lighter, faster to implement and ideally based around configuration rather than bespoke code. Given the pace of change IT projects cannot afford to run for many months or worse still a year or more as solutions designed now and implemented next year may find that the code has changed or worse still deprecated for the latest shiny new toy. The shiny new toy will become the designers friend and enemy… Finally designs need to be integrated holistically so that the user experience and usability of the entire set of IT services is coherent, frictionless, and accessible.


It is the cloud service provider who actually builds and provides the services for you to consume. Therefore, in the move to the cloud, the focus of building shifts away from hardware and services to consistency, configuration, and applications. Crucially cloud services are designed to shift the focus away from IT and empower the end user to build through configuration and no-code solutions. Building is also about allowing staff to exploit knowledge, content, and networks to increase their speed to market, ability to deliver and innovate at their pace.

Empowering staff to undertake their own builds requires empowerment, not just through permissions but knowledge. This requires the IT organisation to change its approach to permissions, trust, and knowledge sharing. It also means that they need methods to ensure consistency in configuration and the ability to industrialise a configured solution so it can be deployed many times e.g. as a containerised app in Azure or a site template in SharePoint.

I find the skyscraper analogy useful as it highlights the role of IT organisation to transport their customers to the building. An example of transportation is that customers should not need to know how to set up the Engineering Simulation service in Azure. I believe it is the role of the IT organisation to have the set up ready (a clear path to the service, firewall exceptions etc. in place) and waiting so that all the customer has to do is add their content.

Finally, by empowering through configuration and transportation routes requires the IT organisation to take more of a continuous delivery approach. This changes roles in an IT organisation as staff become more customer facing and responsible for the design, build and operation.


Finance is an area that is already changing in IT organisations through a shift from perpetual licenses to subscription models. A transition to the cloud introduces another set of subscriptions to manage as well as on demand charging and app stores. On demand charging is likely to be an area that is new to the IT organisation and one that they may be uncomfortable with. The discomfort arises as to the predictability and scale of the likely charges. Hard work then follows in the process to recover the costs from the appropriate internal cost centre.

In making the transition to the cloud an IT organisation can expect the teams responsible for Software Asset Management (SAM) and Governance to grow as their scope increases. A move to a cloud service like Office 365 can introduce a dozen or more licenses to manage. Services like Azure and it’s ability to support applications in virtualised environments will challenge the SAM team in areas like knowing what software has been used, whether it is permissible to run the application in a virtualised environment, how to provision a packaged application into a virtual environment etc.

The availability of apps through an app store stoked by the familiarity of customers with consumer app stores increases the scope and demands upon the IT organisation. App stores empower and encourage devolved purchasing. However, customers are unlikely to check the terms and conditions of the app or calculate the financial impact, you can imagine the conversation “But it was only £9 to install”, “But that’s £9 per person per month and you’ve opened it up to 1000 people”. IT organisations need to be wise to this and scale their SAM, Governance, and Finance teams accordingly with staff who are comfortable face-to-face contact and with backup from their legal or purchasing experts (to wade through items like Terms and Conditions).


My observation is that IT used to be good at operations and in particular keeping the lights on. It’s a mode that IT have successfully delivered since the first machines. However, the move to the cloud has instigated a change in the operational model and mind set. The result is that career IT Pro’s are struggling to catch up or adjust.

The struggle arises through the change in expectations set by the cloud. Moving to the cloud opens possibilities of services on any device, anytime, anywhere. That shifts operational support to helping users with their own devices, safeguarding and securing data across an infinite range of devices, reacting to tickets outside of office hours etc.

Our personal consumption of high availability services like Facebook and Twitter has raised our expectations of operational performance when we are at work. Our customers want internet connectivity that matches or betters what they can get at home or on a 4G device. This places an operational strain as corporate networks are typically hub and spoke with internet breakouts located at the hub. The hub and spoke model worked well a couple of years ago, when the majority of traffic would remain within the organisation. With the shift to the cloud we are seeing total inversions of traffic flow with the majority of traffic now needing to leave the confines of the wide area network. We are also seeing increased volumes of data being transferred as the digital organisation emerges. This increases the operational pressure at pinch points like Datacentre breakouts and firewalls. In turn this places pressure on IT to change the topology, which is easier typed than done! Our consumer based expectation is that this is a quick process. Anyone in IT who has had to unpick a network, convert it to using local internet breakouts and right sizing those connections knows that it is not an overnight task. The delay merely ramps the pressure up on the operational team.

Once converted a new challenge emerges in that staff who are used to maintaining a network that they had complete operational control over no longer have that control. Their network is now in the hands of the local ISPs etc. and they are limited to what they can do. In one respect this helps as it delivers an operational cost saving as there are fewer flashing lights and wires to maintain. However the shift is more profound as their operational focus is now relationship management with their consumers and ISPs. This may need a different type of person.

Opening more doorways to the internet also means opening more doors to bad people. The effect is that the IT organisation needs to develop, and develop quickly, increased capacity in the dark arts of cyber security. Operationally this is challenging given the pace of change and shortage of skilled staff.

Operational challenges do not stop at the network. Operate largely becomes the challenge for the cloud service provider. It’s the cloud service provider’s role to keep the service secure, the servers up, the data flowing etc. As mentioned earlier in the skyscraper analogy the operational role of IT shifts to a mode of empowerment and enablement. Operationally this means keeping a finger on the evergreen pulse of the cloud services and supporting customers in understanding the capability and appropriate use cases for different solutions.

Operations will be a long-term partnership between the IT organisation and the cloud service. If the relationship is not managed like partnership, then it will fail. The partnership may include a third party cloud services partner to whom you may outsource a number of activities (even if it is to get you over the initial transition).


In my opinion what transitioning to the cloud means for IT organisational structures is a change in mindset and approach. The cloud is not a static environment where the focus is simply keeping the lights on. I think IT organisations can improve their chances of success by looking beyond its industry and peer groups for answers and staff.

I think every IT organisation should pay attention as every company is becoming a digital organisation. The cloud is the construct that will truly enable the digital transformation. Organisational structures need to change as your companies staff become your customers. Your customers become information managers, digital curators, and configurators. IT becomes an enabler, a guide, a guard, and a teacher. Every member of the IT organisation becomes customer facing and takes responsibility for services from their design through to operations.

In changing the organisational structure of IT to align more with the continuous cycle of design, build, finance and operate you are building the foundations that enable your company to reach for the clouds.

I thought I’d end this post with some strategic thoughts and a concept for an organisational structure.

This slideshow requires JavaScript.

Post script

Konrad Zuse, the inventor of world’s first programmable computer, was also Civil Engineer.

Announcing the death of Site Mailboxes in SharePoint Online

In case you missed it: Microsoft have announced the demise of Site Mailboxes in SharePoint Online. The timeline is challenging. You have around 4-weeks before you’ll be prevented from creating new Site Mailboxes.

We’re removing Site Mailboxes in SharePoint Online

Published On : 31 January 2017
Expires On : 15 September 2017

Beginning March 2017, new SharePoint Online organizations will no longer have access to the Site Mailbox feature, existing SharePoint Online organizations will no longer be able to create new Site Mailboxes; however, any Site Mailboxes provisioned prior to March 2017 will continue to function.

How does this affect me?

You are receiving this message because our reporting indicates your organization has one or more Site Mailboxes available. Beginning March 2017, your users may no longer create new Site Mailboxes.

In September 2017, we will have a process in place allowing you to transition your existing Site Mailbox site to an Office 365 Group. We will communicate again in June 2017, via Message Center, with more details.

What do I need to do to prepare for this change?

If you are using the Site Mailbox feature in SharePoint Online, you should consider transitioning to Office 365 Groups, to support email-centric collaborative scenarios.

I’m not “Doughboy”, I’m a real person (and it’s not Yammer’s fault)

There have been several threads emerging regarding missing profile images in the Office 365 Suite Bar (example thread). The problem seems to centre around the fact that, whilst users add their picture to Office 365, it fails to appear when using services like Yammer or Planner.

To illustrate:


Based on the code, my picture is being obtained using the email variable from:

It’s the same in Yammer. In fact it’s using the same chunk of code.

Planner (Suite Bar)

Hmm… I’m “Doughboy” in Planner yet my avatar just below the Suite Bar shows me.

Planner (Avatar)

Interestingly the code is obtaining my avatar from a different location to the one used by SharePoint and Yammer:

Power BI

From watching the page load using Edge Developer tools, it’s my interpretation that Power BI is obtaining my picture from another location:
Office 365 Home

Finally, I’m “Doughboy” in Office 365 Home. 😦


To me the appearance of “Doughboy” and variable end points is a sign that there is an inconsistency in the Suite Bar wiring.

In some of the threads on the subject, Yammer has unfairly taken the blame for the appearance of “Doughboy”. I believe it is not a Yammer issue and it is all about the wiring behind the scenes. In addition to the examples at the start of my post I’ve seen other mismatches – my current profile image in Office 2016 Apps, with the exception of Outlook, is different to the one in the Office 365 Suite Bar *but* Office 365 ProPlus should be wired up via Azure AD.

Word 2016
Outlook 2016

I guess to some of you reading this you might be wondering why the fuss in the first place, it’s just a picture after all. My argument is that we all readily identify with our own image. Its appearance shows that this is our instance of SharePoint, or Yammer post. It helps us, probably at a subconscious level, to make a personal connection. It also seems a feature of human nature that little inconsistencies, especially in our appearance, can really make us question what is going on. When we are trying to get people to adopt Office 365 we tell them about the behind the scenes magic that wires content to people, people to content and it is a consistent experience on any device, anytime, anywhere. Variability in the profile picture, and the presentation of the Suite Bar for that matter, undermines the consistency point and leads people to question the wiring.

In producing this post, I conducted some research into how it should work. The Suite Bar *should* be getting your profile picture from the Office 365 Directory Service, which in turn goes out to Exchange Online to get it, as that is where the image is stored when you upload it [1]. Once in Exchange, your image is pushed down to SharePoint for use there [2]. SharePoint can use one of three renditions of the image based on the component that needs it. The examples from the start of my post show that the services then call differing end points which in turn *should* all lead back to the image in Exchange Online.

In the case of Yammer, it gets its profile information from the Office 365 Directory Service but it only takes the User items [3] e.g. Name. Avatars work in Yammer, whilst perhaps “Doughboy” might be in Suite Bar as:

“If a user’s Yammer profile does not include a picture, the profile will be updated with the user’s Office 365 profile picture. This update is initiated when the user logs in to Yammer and will be reflected in the Yammer profile within few hours. If the user later updates his or her Office 365 profile picture, the Yammer profile picture will also update after the user logs into Yammer.” [4]

As a side note, I’d definitely raise a support ticket with Microsoft if your Yammer avatars do not have pictures. In this situation, something is blocking the pull down of the Office 365 profile picture. It could be something as simple as deleting profile images in Yammer, waiting a few hours and it should push them back down but best if Microsoft look into it for you.

In my opinion the current architecture does not make sense as your profile image should sit outside Exchange Online or SharePoint Online i.e. treated like the other core Active Directory properties and independent of the service that consumes it. I understand that changes would need to occur if Active Directory where to be used as there is anecdotal evidence of a 100kB file limit. Great for avatars rubbish for Delve, Skype etc. where high definition images are required. Hence SharePoint has a 5MB limit and another end point for those images. Having a single endpoint would help developers and companies who do not want to lead with Exchange Online first etc.

I hope Microsoft can review and revise the wiring.

[1] The image is stored in Exchange – – It can be manipulated by the Set-UserPhoto (which is an Exchange commandlet). It is also why (regrettably) people still need to lead with Exchange Online, or at least license users for it, if they want the most cohesive onboarding experience into the other workloads. Without an Exchange Online license, there is no Exchange account to hold the profile picture. This can be worked around for SharePoint by uploading images directly into its User Profile Service.[back to article]

[2] I’m not aware that the actual sync interval is published by Microsoft but authors of articles like this one go into the details of the inner workings. In SharePoint, images can be stored in – [back to article]

[3] This article has a useful table with the attributes passed through to the various services in Office 365. For Yammer (see the Third Party section) [back to article]

[4] Taken from the FAQ in this article [back to article]

Columns with benefits

This question recently popped up in our Yammer network:

I’m trying to get my head around how tagging and search works in SharePoint.

Within a Document Library, I added a column and used it to add some keywords to each item. I then searched for the keywords but no results were returned. Does search only work with file names? Is the point of tagging like this only for filtering within the library and enabling various views?

I’m kind of confused at the moment. Obviously, what I want to achieve is to give a document a set of tags which would define that document and then use search to find that document based on the tags that it has been given. But if search only works with file names, maybe this approach will not work…

I thought it would be helpful if I published my response:

When you create a new list or library the only column visible to a search will be the “Title” column. (if you use other out of the box apps like an Issue tracker then there might be couple more). As you observe, filters and views will work as they are not reliant on search. Filters and views in SharePoint work like Sort and Filter in Excel as they allow you to slice the list or library through manipulation.

The contents of the Title column are available to search as the column has associated managed properties which are visible to search. I’d add a caveat that you might need to wait 15 minutes for search to become aware of new items added to columns with managed properties (more about that later). So it goes that if you want search to see content in other columns you need managed properties.

Creating managed properties is a dark art, and something administrators don’t enjoy doing (well this one at least!). It’s fiddly and easy to make mistakes. However, Microsoft know it is hard so they have created a safe path that Administrators and Site Owners can tread.

The safe path is to create “Site columns”. These are different to the columns you create when you add a column to a list, say through Quick Edit, as through that route SharePoint will only add a simple column. The scope of a simple column is limited to the list or library to which it is added. The scope of a site column is that of the site collection it was created in (and it can be wider than that). Site columns are used to establish a consistent, reusable definition across lists and libraries but their abilities go further than that.

Site columns are ‘columns with benefits’

Site columns are created via Cog > Site settings > Site columns (its normally the first option under the “Web Galleries heading”).

Now before you do this, there are some rules that I’d like you to follow (for the detailed guide how to create one check out an earlier post of mine “Reusable columns“). Please create your site column with a lower case camel name e.g. prjman rather than Project Manager as spaces and punctuation in internal names introduce unfriendly complexity. For example, if you create a site column with the name DC Project technology the internal would be DC%5Fx0020%5FProject%5Fx0020%5Ftechnology ! You can give it a friendly name once you have created it. If people are syncing content using OneDrive then you can only have a handful site columns per library. (And if your column uses managed metadata then that greatly reduces the number you can sync owing to lookup thresholds). Once you have defined your columns you can add them to your list or library, not via quick edit but only through the list or library settings.

At this point search is still unaware of the new column, you’ve merely created and added a reusable definition. The magic happens once you add some content to the column. So… Create a new item and populate the site column field, save it and grab a cup of tea (or a good night’s sleep) and come back to it later as the magic happens behind the scenes

Every 15 minutes or so SharePoint is looking for changes to libraries and lists in order to update the search index. When it spots a freshly populated site column. It kicks off a separate task to generate managed properties for that column. This task runs on a schedule that we cannot influence. Sometimes 15 minutes is all it needs to create the managed properties sometimes 24 hours.

Once this task completes the values in the column will be discoverable by search with new items discovered and added to the index every 15 minutes or so. If you’ve used the site column to tag documents in a library, you’ll now be able to use those tags in search. Thereafter we are into the realms of display templates and refiners if the OOTB SharePoint results do not present the results in the format you need.

If you are interested in the behind the scenes magic then check out this post “From site column to managed property – What’s up with that?” – the post and the series of posts it belongs to has been an invaluable reference for me on my SharePoint journey.


Reusable columns

The aim of this solution is to demonstrate how to create a reusable column that you can assign to multiple lists and libraries.

Reusing columns is useful if you want to establish a consistent definition across lists and libraries. You can share the definition across multiple lists and libraries so that you don’t have to recreate the column settings each time. A significant additional benefit is that when items are added to a reusable column they discoverable through search (the magic only happens after it has been populated). Reusable columns are called site columns in SharePoint. Site columns can use any of the available column types, including managed metadata, but be careful if you are using them as the source in a lookup function as you can only use either a single line of text, number or date and time as the source!

This solution works for both lists and libraries but it is limited to the scope of the site i.e. a site column in one site collection cannot be used to augment a list or library in another site collection unless they are published by a SharePoint Administrator as part of a tenant wide content type.

For this solution I’ll use the example of where we have number of projects nested under a master project and each one needs a list that contains a definition of the project.


As there are a number of projects we need to ensure that the information being captured is consistent. Each site will contain a list to capture the following Project details:

  • Project number
  • Title
  • Description
  • Principal
  • Manager

The steps in this solution are:

  1. Create site columns for each field
  2. Create a list
  3. Attach the site columns to the list
  4. Modify the list view

Those of you who are familiar with SharePoint might notice that the solution does not include the use content types. Using content types to optimise reuse and search queries is the natural conclusion to the reuse story. I felt that by including a section on content types would make this solution overly long and it is not always necessary to use a content type e.g. where you need to add a searchable column to a single list or library and are happy to add it to an existing content type.

The methods in this solution can be applied whenever you need reusable content in your SharePoint site.  You’ll need the design permission level or higher to implement the solution. If you are creating columns for reuse throughout your SharePoint environment you will need permissions to work with content type hub.

1.    Create site columns for each field

Site columns are created from the site settings page. The site columns item is located under the “Web designer galleries” heading.

Cog > Site settings > Site columns

Site columns are organised into groups which makes it easier to find them when it comes to reusing them. We will create our columns in a new group which we will define when we create the first column.

It is good practice to use short names (lower camel case) and omit spaces when defining site columns, lists, libraries, or sites as SharePoint will use the name as it’s internal name. The internal name is fixed from the time of creation and cannot be edited. If the internal name is long and or contains spaces, you might run into difficulties when trying to reference or rename it. For example, if you create a site column with the name “DC Project technology” the internal would be “DC%5Fx0020%5FProject%5Fx0020%5Ftechnology”  ! It is possible to rename site columns, lists, libraries, or sites after creation to use spaces, long names etc. The act of renaming preserves the internal name and applies a display name as a mask. This means you could repurpose a column or rename it without changing any wiring that depends on it.

For this solution we will create 4 columns and once created rename them:


I’ve assumed that the Project number will be a whole number. If it is a combination of letters and numbers, then you’ll need to use the “single line of text” column type. You’ll notice that a column called “Title” is missing. Every list includes a title column by default and in this solution we will use that to hold the Project Title. In other solutions you might not use the title column. If that is the case, then do not delete it!  Remove the requirement for it to be completed and consider hiding it in views. Be wary if you hide it as users will lose access to the ellipses … right click menu for each item.

As mentioned earlier, when we create the first column we will also create a group. The group is a visual aid and so you do not need to worry about an internal name for it.


We start the process by selecting Create column which is located immediately below the page title. I’ll step through the detail of creating the first column which is then repeated for the subsequent columns.

Column 1 – Project number

1.       Enter the internal name prjnum as the column name

2.       Select Number as the type of information

I’ve assumed that the Project number will be whole number. If it is a combination of letters and numbers then you’ll need to use the “single line of text” column type.

When you select Number the page will reload changing the options available lower down on the page. You’ll see the same reload behaviour if you pick a different type of column.

It’s also worth noting at this point that certain column types cannot be converted to a different type once created. For example: single line of text, multiple lines of text, choice, number, currency and yes/no can only be changed to one of the other listed types e.g. single to multi line and not to a (then) unlisted type like Lookup. Also certain column types like yes/no do not work with lookup queries.

3.       Select New group and enter Project

4.       Add some helper text to the Description field

You’ll notice that I have left “Require that this column contains information” set to No. By setting this option to Yes it is possible to enforce the use of unique numbers in the Project number column but SharePoint will strictly enforce the uniqueness which means mistakes are really hard to undo. I’ve found a more user friendly approach is to guide people to use one row in the list per project.

5.       Set the Number of decimal places to 0

The remainder of the options can be left as their default settings.


Selecting OK creates the new column and assigns it to the Project group.


The final step is to rename the site column to use its display name. The column can renamed by clicking on the column name, editing the column name, scrolling to the bottom of the page and selecting OK to save it. SharePoint will then return you to the site columns page

Before (note the reduced list of types of information)




When you select OK you might be presented with a warning message which is fine to accept by selecting OK.


Selecting OK will save the column and SharePoint will return you to the site columns page.

If you return to edit mode, by locating the column in the list and selecting it, you will see that the value for field name (or internal name) is reported in the address bar:


The next steps are to repeat the process for the remaining columns (remembering to create them with their internal names first) and assign them to the existing Project group rather than creating a new one.


Column 2 – Project description

I opted to use plain text for this column as I felt additional features like hyperlinks where unnecessary.


Column 3 – Project principal

There are options for items using the “People or groups” type of information. Several like Name (with Presence) come with additional data that introduces unnecessary complications for this solution so I opted to use simpler the Name choice.


Column 4 – Project manager

As for the Project principal, I opted for name only.


The next step is create the list to hold the Project details.


2.    Create a List

With the site columns created the next step is to create the list that will ultimately hold the project information. You can have multiple instances of the list throughout the site collection (and it’s sub sites). If you plan to have a large number of lists then I recommend using content types to further optimise the deployment. There are several locations in a site from which you can create a list – the screen shot shows just one of them.

Cog > Add an app


From the gallery we need a Custom list


When naming a list for the first time it is good practice to give the list a short name and then rename to use a display name.


Select Create and after SharePoint has created the list it will take you to the site contents page.


With the list created it is now possible to rename it so it uses a display name. The list name can be changed by accessing the list settings. Select the alongside the list name and then Settings


From the settings page we need List name, description and navigation which is the first item under the “General settings” heading.






Apart from the changing the name it is a good idea to add this list to the “Quick launch”.

Select OK to save and SharePoint will return you to the settings page.

Versioning is not enabled by default for lists. It is a good idea to use versioning on this type of list so changes can be tracked. Once you have saved the changes to the list name you will be returned to the settings page. From the settings page we now need Versioning settings which is the second item under the “General settings” heading.






To add versioning, it is only necessary to change the “Create a version each time you edit an item in this list” to Yes. If you need changes to this list to be authorised, then you could consider enabling Content approval (but be prepared for the friction this option will generate) and change the Draft item security. We do not need to worry about discarding versions or item visibility.

Select OK to save and SharePoint will return you to the settings page. The next step is to add the site columns to the list.

3.    Attach the Site columns to the list

With the list configured it is now time to add the site columns to the list. Hopefully you are still on the list settings page (if not now is the time to find your way back to it!). From the settings page we need Add from existing site columns which is located in the “Columns” section.


From this page you can add any available site column. We can refine the list of available columns by selecting the Project group from the “Select site columns from” drop down.


Now a tip is to add the columns in the order you want them to be displayed in the list (do not worry if you do not do this as you can reorder them at any time). This order will be the default column order and we’ll tweak it in the final step to include the Project title. For our list we need to add all four columns and you can add them either one-by-one by selecting each one and then Add > or selecting all of them (pick the first column, press and hold shift, pick the last column) and then Add >.


Select OK to add the columns and SharePoint will return you to the settings page. The final step is to modify the list view to present the columns in a logical order.

4.    Modify the list view

With the list configured and columns added it is now time to modify the list view to present the columns in a logical order. Hopefully you are still on the list settings page (if not now is the time to find your way back to it!). From the settings page we need Column ordering which is located in the “Columns” section.


We are changing the order in the list Settings as this is the baseline order presented in the New Item form. It controls the top-down presentation whilst the settings in a particular view affect the left to right presentation. We will still create views and reorder them but this helps as it speeds up the editing process and encourages logical relationships (which is good for the user experience e.g. the Project Number will normally appear above the Title in any form the Manager will always be below the Principal once we have set them).


As I had previously added the columns in order, I only need to move the Title column to after the Project number.



To move a column simply change the position number in the drop down alongside it. SharePoint will then renumber the columns based on the move. In my case I changed the Project number from position 2 to 1. The result was that SharePoint changed the Title position to 2 and with the remainder unchanged.


Select OK to save the change and SharePoint will return you to the Settings page.


The top down column ordering is respected in the New Item form.


Whilst we have changed the column ordering it is not reflected in the list view.


The column ordering controls top down presentation. The list view controls left to right presentation. The final step in this solution is to edit the All Items view (which is the out of the box default view). As you can see this view show all columns we need but in the wrong order. The view can be configured from several locations including the Ribbon (in the classic list view), Command Bar (in the modern list view) and the list settings. In the list settings select the view name to access its configuration.



Whichever route you take to access the list view, you’ll end up here.




The list is now configured and ready for use.



That’s it nothing more to do but add content. I hope this solution has given you an insight into the configuration and use of reusable columns.