13 things I did in 1 hour with Microsoft Teams

Microsoft Teams went GA this week.  I took it for a test drive Wednesday night, and I couldn’t believe what I got done in just an hour (be forewarned: the screenshots were taken Friday when I wrote this blog!)…

1. Created a new Team

…And with it got a shiny new Office 365 Group, Exchange Distribution List, SharePoint Site, Exchange calendar, etc.

This is the typical case for Microsoft Teams: collaborate with a team (get it?) on a business process.

I work with our other directors, our partners and our sales team to collaborate on sales pursuits.  Our current process uses SharePoint document sets, but it’s a little cumbersome, so I built a new process in Teams.

We’re all on the team– the 4 other directors, the partners and the sales team.  Different sub-groups of us collaborate on different pursuits, so we create a channel for each pursuit.  This automatically creates a folder in the SharePoint Documents library on the Team site, accessible in the Files tab for each channel.


The same files appear in SharePoint when clicking the Open in SharePoint button.



2. Chatted with my team and @mentioned team members by name

Another cut-and-dry use case here, but it’s smooth as butter.  Anyone I @mention gets a notification.

I also downloaded Teams app for iOS.  Works as expected, and I get notifications when someone @mentions me.

3. Got silly

I can send images, gifs and smileys right inside the rich text message editor.  There’s even a handy meme generator for putting my coworkers in their place:

I saved the “Broke the build” sticker for my dev channel.

4. Pinned a document for quick access & chat

With a proposal due Friday, I decided it made sense to pin our roadmap presentation to our pursuit channel to make it easier for everyone to find.  Teams let me choose the document to pin and added the tab (which I renamed to “Roadmap Deck”).  Clicking the tab shows the presentation and allows me to edit it in PowerPoint or PowerPoint Online.

choose presentationdeck.png

The possibilities here speak for themselves: if you need to collaborate around a document for a short period of time, or you use something like an Excel workbook to manage a team process, pinning a document as a channel tab just makes too much sense.


You can even chat about the document right in the tab.



5. Created a Wiki to help the old fogies learn how to use Teams

This is one of those features I didn’t know I needed until I used it.  When I created my Sales Pursuits team, I noticed a Wiki tab was created in the General channel (in fact, a Wiki tab gets created for every channel by default).  I renamed the tab to “Using Teams for Sales Pursuits” and began filling it with how-to instructions to help some of my less-technically-inclined coworkers learn how to use Teams for collaborating on pursuits.

I created two pages, each of which appeared in the Wiki navigation with sections on the page listed beneath it for easy navigation. I imagine this being even more essential when Microsoft opens up Teams for external users.


6. Cut the clutter from my list of Teams and Channels

One.  Hour.

One hour is all it took for me and the other geeks at PSC to start creating teams an inviting everyone and their brother to join them.  So I favorited the teams and channels I cared about and hid the rest.

Favorite teams are shown at the top of the Teams list, with non-favorites hidden beneath the “More” button until it’s expanded.

Hiding a team channel is easy, too. Just remove it as a favorite (by default, channels you create are marked as favorites):

Manage clutter 1

Non-favorited channels are hidden in the “{n} more channels” button and can be opened or re-added as a favorite by clicking the “{n} more channel(s)” button.


7. Connected my team to a different SharePoint document library

I already mentioned that we had a document-set-based collaboration process for sales pursuits.  I know that introducing new technology without a change management plan is bad practice, so I added a tab to our General channel so my team can easily find all the documents in our “legacy” SharePoint site.

Adding a tab for a SharePoint site is easy: just paste the site URL, click Go, and select the site after Teams verifies that it’s actually a SharePoint site (hint: don’t hit Enter, because that triggers the back button :-O).

Add sharepoint site
Adding a SharePoint site as a tab in my channel is easy… unless I hit Enter on my keyboard.

Once the site is loaded, I picked the document library I wanted in my tab from the list of site libraries:

Pick library


I even got the option to rename my tab and post about it in the conversations for the channel:



8. Added a new Team on top of an existing Office 365 Group

We recently began using Office Groups for each of our client projects; when we start a project, we create a Project Group for the project team and our clients.

Of course, I wanted to spread the Teams love to my project teams using existing Office 365 Groups.  In Apple-like fashion, it just worked.

When creating a new team, I had the option to add a Team to an existing Office 365 Group:

add team


WARNING:  If you create a Team for an existing Office 365 Group and decide to delete the Team, doing so deletes the whole Office 365 Group! 


Sure, there’s a safety checkbox, but be careful.  You’ve been warned.

9. Created a Planner plan for my project Team

We’ve gotten in the habit of using Planner to handle PM for our small-to-midsize projects because Microsoft Project is just overkill unless the project is large and we’re managing 5+ resources.

After adding a new tab to the project team’s General channel and choosing Planner, I got to choose between creating a new plan or using an existing one (for Teams created from existing Office 365 Groups, chances are you already have a Planner plan created for your group).  This means that Teams opens up the ability to create multiple plans for a single Office 365 Group, which was not previously possible.

Choose a plan.png

Boom! My plan showed up in the Planner tab and I could immediately create and move cards and buckets.


10. Added Kanban board tabs to track features and user stories

This is where Teams’ potential to revolutionize our project collaboration flow really began to stand out.

We decided to use the project team’s General channel for PM work and handle all of our development conversation in a separate, nerdier Dev channel.  And you can’t spell modern development PM without “K-a-n-b-a-n”, right?

Enter the Visual Studio Team Services tab.  In seconds, I added the feature-level work board (you can choose to show epics, features or user stories when adding the tab) directly to  our PM channel.  Doing so was as simple as connecting to Visual Studio Team Services with my Azure AD account and choosing the team project (note: Microsoft Account VSTS boards are not yet accessible in the Visual Studio Team Services work board tab).

I chose to add a Visual Studio Team Services work board, but Jira tabs are supported, too.

And on our Dev channel, I added a Kanban board for user stories:


11. Pinged some code with Markdown

Speaking of our Dev channel, it turns out that Teams announced full support for Markdown (including pre-formatted code!) in chat:


12. Connected a Power BI dashboard

Still on the Dev thing, although the PM in me appreciates this one, too.

We already use Power BI to roll up bug, build, sprint and Git commit/pull request reports from our Visual Studio Team Services projects.  A couple weeks ago, I geeked out about the ability to embed these dashboards in modern SharePoint sites with the new Power BI SPFx web part.

Welp, you can do the same thing in Teams, now, and it’s awesome:


13. Joined a meeting

This next one makes the case for being able to stay in Teams for most of my work day.  The Meetings section in the Teams app showed me all my meetings for the day (and coming days) and let me join Skype meetings directly with a single button click.


This screenshot is from a different day, but you get the point.


What didn’t I do?

That’s the beauty… a lot.

In an hour, I did all this (not the blog, that took longer).  The sky is the limit for Teams, and I get the feeling that I haven’t even scratched the surface.  I played with connectors and some of the other tab apps, but the things I covered in this blog were so stupid simple that anyone can do them without training.

I’m looking forward to peeling back the layers and seeing what Microsoft has in store for extensibility…


New in Office 365: Copy files from OneDrive to Groups and SharePoint sites

This morning, a much-anticipated feature hit our Office-365 tenant: the ability to copy files directly from the OneDrive to SharePoint sites, all in the OneDrive interface.

I was greeted with this message when I logged into OneDrive.

I gave it a test drive, and it works more or less as you would expect.  To copy a file, select the checkbox next a OneDrive file (there is no option yet in the “right click” menu), then click Copy to in the ribbon.


***(I edited this image to protect my clients’ privacy)


By default, you are shown a list of your most recent sites.  Clicking Browse sites displays sites you follow at the top, and recent sites below.  You can click Show more to show more sites.


I was pleasantly surprised that subsites (not just root sites of site collections) were also displayed in my list of recent sites.


I was slightly disappointed at the lack of search functionality or the ability to browse a complete list of sites, but hey, this is a great start.  Selecting a site brings up a menu that allows you to choose a document library; once inside a library, you can even create a new folder.


After selecting a site, you can choose the destination library and even create a folder once a library is selected.

The rest is gravy.


Happy file copying!  If you don’t see this functionality in your tenant just yet, don’t worry– it’s rolling out to First Release customers now, and will be generally available later this year.

Better late than never: 3 takeaways from Microsoft Ignite 2016 for SharePoint and Office 365 (with a developer spin)

I forced myself to wait a few weeks (OK, two months) and let the Microsoft Ignite dust settle before blogging about what’s next for SharePoint and Office 365.  As a rule, it’s best to wait until the conference high subsides before crowning each and every announcement as the greatest thing since sliced bread for {insert favorite Microsoft platform here}.

(Plus, a certain baseball team on the north side of Chicago is in the playoffs WON THE WORLD SERIES…)

I’ve been a bit preoccupied, but better late than never.

But Microsoft Ignite 2016 brought plenty of welcome news for everyone connected to the SharePoint platform, whether in Office 365 or on-premises.

With Jeff Teper and Bill Baer leading the way, Microsoft made it loud and clear: SharePoint is back as the premiere collaboration platform, and the changes we’ve seen lately are just a taste of what’s to come.

1.  Files are finally easy in Office 365

Wait, wasn’t SharePoint designed for file sharing? Well, yes– but as Office 365 and OneDrive for Business evolved, sharing files in SharePoint became just one way to collaborate. Most of us have files in Office 365 Groups, OneDrive, Yammer AND SharePoint, and navigating to each individual app to work on a file is painful.

Now, you can access (almost) all of your files in one place: OneDrive. All of your files from SharePoint team sites, Office Groups, OneDrive for Business and files that have been shared with you from other users’ OneDrive are all accessible via OneDrive and the OneDrive mobile app.

Noticeably absent from this list is Yammer, but don’t worry: the Yammer team had some good news of their own to announce (hint: it’s not dead)!

O365 Groups integration.png
From the right-side panel in Yammer (source: Yammer team blog)!

The Yammer roadmap includes tighter integration with Office 365 Groups, including a Group for every Yammer team created.  You can read the Yammer announcement about Groups integration on their Office Blog, or watch the roadmap video on Channel 9.

Accessing OneDrive files in Yammer (source: Yammer team blog)

Developer spin: welcome to the OneDrive API!

Get used to using the Microsoft Graph to work with files in Office 365 and SharePoint, rather than the SharePoint CSOM.  Announced at Ignite, the Microsoft Graph now officially supports files and folders in SharePoint Online document libraries.

If this sounds confusing (wait, wasn’t the Microsoft Graph Files API recently deprecated?), that’s because it is (at least to me).  It is, in fact, the OneDrive API that now supports REST queries for SharePoint files.  Further adding to the confusion is that the SharePoint team announced on their Future of SharePoint blog that SharePoint files access is coming to the Microsoft Files API.

But this is just further proof that it shouldn’t matter where your files are stored– in OneDrive or in SharePoint Online– working with files in Office 365 is getting a consistent user experience that is backed by a consistent experience for developers, too.

2.  SharePoint UX is ready for the modern web

The SharePoint library and list UX has been virtually the same since 2007, and the new Modern Document Library and Modern List experience (now rolling out to all tenants) has been a breath of fresh air. While not perfect (there were some bumps along the way, and there are still some legacy features missing from the modern experiences), these new user experiences provide a fresh take on the traditional library and list.

Notable features in modern document libraries include new grid views, pinned documents, fast view switching and a powerful details pane that you can open by simply typing “i” on your keyboard.

Modern lists now inherit the same slick new UI and support quick and dirty Flow and PowerApps integration.  In this blogger’s opinion, neither is fully ready for prime time yet, but each provides a ray of hope for rapid workflow development and mobile form creation, respectively.

But the biggest announcement coming out of Ignite is that modern Pages are live.

Configuring the Highlighted Content web part on a modern Team Site page

The Pages experience brings a wealth of new web parts in a responsive grid (well, more like a responsive column– I’m not sure if a true grid is in the works).  Out of the box, Modern Pages support several new modern web parts:

  • Text
  • Image
  • Document
  • Office 365 Video
  • Content Embed
  • Highlighted Content
  • Quick Links
  • Site Activity
  • Yammer Feed
Adding client-side web parts to a new Modern Page in SharePoint Online

I’ll blog more in-depth about each of these options another day, but for now, the big takeaway is that Modern Pages are live, and with them come modern, client-side web parts.

Developer spin: time to learn SPFx

With modern, client-side web parts comes the SharePoint Framework, or SPFx, for developing client-side web parts for SharePoint Online.

This isn’t exactly news from Ignite– modern web parts were announced back on May 4 as part of the Future of SharePoint event– but we got a taste of actually developing them during a few developer-focused sessions at Ignite.

Donning a baller “$ yo SharePoint” shirt, Chakkarah Deep (PM, SharePoint Developer Platform) led an intriguing session on the SharePoint Framework in which he demonstrated using modern web scaffolding tools such as Yeoman, Gulp, Node.js and NPM to build client-side web parts in SharePoint Online with new eye candy like Office UI Fabric (built with React.js).

What a mouthful!

Got my hands on a sweet $ yo sharepoint shirt. I feel like Superman.

It’s a big mouthful, but it’s an important one for SharePoint developers.

Gone are the days of building web parts that inherit from the .NET WebPart class.  Gone are the (brief, but painful) days of building App Parts for your SharePoint Add-in only to scratch and claw to get something useful to render in an iFrame.

New web parts are:

  • Written entirely on client-side languages: pick a favorite and scaffold the supporting SharePoint classes
  • A brilliant example of the new TypeScript 2.0 (not required, but useful)
  • Environment-aware: run in SharePoint when deployed to production, but can be developed locally with a Node server and Gulp using data from a live SharePoint environment
  • Backwards-compatible: can be added to old web part pages and new Modern pages.
  • Still in preview: you will need a development tenant to deploy and test them with SharePoint connections

3: Every SharePoint Site gets a Group, and every Group gets a SharePoint Site

I saved the best for last.

Now, when you create an Office 365 Group, a SharePoint team site is provisioned (actually, it’s always been this way, but you can finally access the full team site).

And the reverse is true: when you create a SharePoint team site, you get an Office 365 group.

Although the message is still a bit murky and provides an opportunity for thought leadership on what features of Groups and Team Sites to use when, this much is clear: you no longer need to choose between a Group or a Team Site.

The end result is that when you create a site or a group in Office 365, you get a full-blown, people-centric collaboration suite with:

  • A Shared Documents library that is accessible within OneDrive
  • The ability to create additional document libraries with custom columns, permissions, Flows and PowerApps
  • The ability to create custom databases (lists) on your site, again with the full extensibility of Flow and PowerApps
  • A group inbox in Exchange via a distribution group and a team chat that you can access in Outlook
  • A OneNote notebook
  • A Plan in Planner for tracking project goals, tasks and assignments
  • A home page for your team that shows recent documents and team activity, with the ability to create additional pages with web parts that highlight activity, individual documents, or even list items
  • A true modern, mobile experience in the SharePoint app on your phone

Clicking the “Files” tab in any view of an Office 365 Group (from within Outlook or on the team site) will open the Team Site Shared Documents library, but you can then navigate to additional document libraries, pages and lists on your site.

Developer spin: owning the provisioning story is more critical than ever

I’ve been screaming as loud as I can about the incredible work the OfficeDevPnP team has been doing around site provisioning in Office 365 (and SharePoint 2016).

If you’re new to the PnP team, here’s a TL;DR: the Office Development Patterns and Practices team curates open-source, documented code on GitHub that helps you implement best practices for provisioning custom site collections in Office 365.

Owning the site provisioning experience has always been important to SharePoint developers; most of my clients request some means of creating a customized instance of a SharePoint site.

So why is it more important now?  We’ve traditionally used site templates to take more ownership of the large, sprawling toolbox that is a SharePoint site, typically managing customization around things like web parts on pages, navigation, security groups and permissions, default list instances and, of course, site columns and content types.

This toolbox has now grown to include all the Office 365 Groups goodies (see above), which means that administrators wishing to stand up governance around the creation of SharePoint sites now have even more to govern.

For now, the best advice I can give to SharePoint developers and administrators scrambling to govern Team Sites and Groups is to funnel the creation of Office 365 Groups through the creation of SharePoint sites, where you can own more of the experience.  Utilize tools like the OfficeDevPnP Partner Pack to manage self-service site creation and, if you’re especially concerned about content sprawl, turn off the ability for end users to create Groups and instead direct them to a site request list.

As the Office 365 toolbox continues to evolve, common customization requests of SharePoint/Office 365 developers will grow to include standing up custom team sites with custom document libraries/lists, plans, custom navigation, default content, limitations on naming conventions and perhaps even integration with the recently-announced Microsoft Teams.

By owning the provisioning experience with the OfficeDevPnP toolkit, you gain programmatic control over several aspects of the experience, and I anticipate that the list of customizations will continue to grow; Microsoft has already announced that Planner Templates with custom buckets and flags are in development:

Custom Planner templates are coming to Office 365.  Source: FastTrack

Wrapping it up

As I put the final touches on this blog here at the MVP Summit, I’m reminded that Microsoft now moves faster than most of us can keep up– even MVPs like myself who live and breathe this stuff every day.

If you’re overwhelmed, you’re not alone.  But know this: incredible things are ahead for collaboration, and SharePoint is at the center of all of it.

Developer spin: it’s a paradigm shift

Our role as SharePoint developers has undergone a paradigm shift, from shoehorning custom business functionality into SharePoint by hook or by crook, to mastering the ins and outs of the SharePoint and Office 365 toolkit enough to make an educated guess as to:

  • Which Office 365 service to harness for a particular use case
  • When to custom-develop an application, vs. when OOB is good enough
  • How to bridge the gap between OOB and what your customer actually wants using client-side code