What to expect when you are expecting (Office 365 Migration) ?

If you are an enterprise or public sector or a university with recent acquisition of an Office 365 tenant, it is highly possible that you are in the same state as expecting couples with both excitement and fear. Office 365 is the fastest-growing product in Microsoft’s history. Core productivity in the cloud offers tempting visions of enhanced business agility, real-time communications, functionality that can be turned on and off at will – and, of course, cost savings. Have executed several migrations to the cloud, here are my tips to plan your Office 365 migration journey.

  1. Establish your goal for Office 365 – What are your collaboration goals ? Is it employee only portal  ? Or would you allow contractors and external partners ? If yes, how will you manage their access ? Do you plan to have the same level of customization on the cloud ? If yes, are you aware of restrictions and limitations that Microsoft has built in for Office 365   ?
  2. Identify your need for Hybrid Infrastructure – Is it temporary hybrid until you move to cloud? Or permanent ? What workloads would function under hybrid configuration? SharePoint? Exchange ?
  3. Plan workloads on Office 365 – There is a very high possibility that any customization that you may have done on your on premises would be available out of the box on SharePoint Online. For E.g one of my customer had built web parts for work management buckets that they were using for their scrum based projects. When they moved to Office 365, they choose Planner as their core work management tool.  I would encourage you to look at available workloads on Office 365 like Yammer, Planner, Teams, Groups, etc with their advantages and limitations.
  4. Determine appropriate licensing – Understanding available licensing helps identify financial implications upfront and may help reduce costs.  There may be licensing impact based on your enterprise agreement with Microsoft where you may end up paying differential costs or buy full subscription license.  Then there is impact on the cost if you wish to use Office desktop as it may not be available with all subscription types.
  5. Plan & Configure Identity & Access Management  – Depending upon your business needs and goals, you can identify if you want to use pure cloud identity and access management, or use directory synchronization using Azure AD connect and password sync, or use federated identity to your on premise active directory environment. In addition to that, you also need to plan how your external users would connect to your Office 365 tenant. Would you provide them identity + license or use the external sharing functionality. Each has its own significant advantages and drawbacks.
  6. Infrastructure Readiness – This is a very critical stage where you need to determine what additional infrastructure you would need to roll out Office 365. At a minimum, Office 365 requires Azure Active Directory, Azure AD Directory Synchronization appliance (DirSync) and Active Directory Federation Services (AD FS) to be deployed if you intend to synchronize your active directory and configure single sign on. If you are using single sign-on tools like Okta, OneLogin or Ping Identify you may need to tweak your architecture accordingly. If you plan to use hybrid, plan web application proxy servers and site to site vpn configuration.
  7. Clean your environment – Just like expecting mothers have nesting instincts, IT leaders managing this initiative also experience the same. They prefer to clean up unwanted content and applications to perform clean migration.  Plan your environment clean up by making an inventory of your content and having the content owner review the last accessed date, criticality, and retention needs.
  8. Plan for data protection – Your users may be happy to use Office 365 on their personal tablets, laptops or mobile devices but your legal team may be throwing fits around data protection and discovery. Consider taking an inventory of user profiles and map them to roles, then categorize the role each user has, the sensitivity of the information and applications they have access to, and whether that user is able to access that information from outside the firewall.
  9. Migration Planning –  Now that you have planned for other things, it is important to plan the migration path now. Exchange migration can be done through one of the three out of the box migration options depending on your mail server or using mailbox migration tools. Assess carefully around what can provide flexibility vs cost effectiveness.
  10. Communicate early & frequently – Let your users know what’s coming? What are the benefits? What is it that they should care about during transition? How will things function differently, if any?
  11. Engage experts – Finally, you wouldn’t want your baby to be delivered by an unqualified professional. Evaluate the background of your vendors and consultants on the lines of their migration experience. Map out the critical paths and look for holes you may not be able to fill with current resources. Engage with experts around different technology area for your migration. E.g AD, AD FS, SharePoint, Skype for Business, Exchange, Web Application Proxy, etc

Addressing these planning elements prior to your migration to Office 365 would help you smoothen your move and reduce your teething issues. If you need any assistance with your migration planning or execution, feel free to touch base with me using the contact me page.

Why is TopTal a futuristic platform for developers!

Why is TopTal a futuristic platform for developers!


When I think of disruption, I think about Uber or Airbnb. And what’s so interesting about their business model is they provide both scale and value which conventional cab companies or hotels couldn’t provide. Applying the same theory to recruiting of software developers and designers, I think it is now imperative to move away from conventional hiring model to the one which supports both scale and quality. But humans are way different than cabs and hotel rooms because there are various quotients associated. Starting from their intellect to communication skills to their ability to work with teams to thinking out of the box, it is very difficult to get a right fit based on an algorithm that recruiting portal use these days. And then there are sites like UpWork and freelancer.com that work on different models which generally zero down to getting a cheap resource in minimal time. But these fail when you try to scale or recruit high-quality talent that works in harmony across the globe.

Then I came across TopTal. A site which claims to recruit top 3% talent. A developer or a designer has to go through rigorous interview process followed by background checks and concluded by documentation to protect the interests of customer, developer, and TopTal. I was fascinated by this idea because having worked on both side of the fences i.e. hiring developers as well as getting hired, I understand how much pain it causes to mis-hire and then search for replacements. I did a basic Google search on what like-minded professionals think about it. And as expected, I found both positive and negative reviews either on the blogs or on Glassdoor. But apparently, most of the negative reviews were from developers who weren’t hired. I filtered my research to find geeks who have worked with them and mostly if not all, I found some great feedback from the community. And based on my research, I extrapolated my life as  a TopTal developer vs working as a generic freelancer using Upwork and freelance.com, and I found TopTal to be hands down winner as my next employer.

I haven’t started working with them, but I look forward joining  their team as full-stack developer working on challenging assignments from the comfort of my home, sitting at the beach or working from shared workspaces. What interests me more is I get to work with a global community that has excelled in the technologies and platforms they chose as their skill set and I am hoping to learn and contribute based on my expertise as well. The community is very active and conducts some fantastic events as well as publishes great write-ups on both tech and soft skills.

Based on how things go with TopTal, I would consider writing a follow-up blog post on sharing my life as TopTal (as long as it’s not covered under NDA :)) . Till then, keep watching this space and shoot me any questions you have using the contact me form.



Connect to Exchange Online using Remote PowerShell

As an administrator for Office 365, you will be required to use PowerShell for various tasks on Exchange Online. While SharePoint Online and Azure Active Directory has their own PowerShell module to download, You use Windows PowerShell on your local computer to create a remote PowerShell session to Exchange Online. It’s a simple three-step process where you enter your Office 365 credentials, provide the required connection settings, and then import the Exchange Online cmdlets into your local Windows PowerShell session so that you can use them.

I would assume you have one of the following version of Windows and have installed Microsoft.NET Framework 4.5 or later and then either the Windows Management Framework 3.0 or the Windows Management Framework 4.0.

  • Windows 10
  • Windows 8 or Windows 8.1
  • Windows Server 2012 or Windows Server 2012 R2
  • Windows 7 Service Pack 1 (SP1)*
  • Windows Server 2008 R2 SP1*

To enable Windows PowerShell to run signed scripts, run the following command in an elevated Windows PowerShell window (a Windows PowerShell window you open by selecting Run as administrator):

Set-ExecutionPolicy RemoteSigned

This is a one time thing for a given environment and you don’t have to run it every time you use PowerShell for Exchange Online. Now let’s connect to Exchange Online using the following steps.

On your local computer, open Windows PowerShell and run the following command.

$UserCredential = Get-Credential

In the Windows PowerShell Credential Request dialog box, type your Office 365 user name and password, and then click OK.

Run the following command

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection

Run the following command

Import-PSSession $Session

And voila, you are ready to use PowerShell for your Exchange Online environment. Once you are done with your activity, its always a good practice to disconnect the session. Run the following command to disconnect the session.

Remove-PSSession $Session

If your account is not configured for remote PowerShell access, you can follow the steps in this article to configure it.