All good things must come to an end, and the reign of Windows 7 as an actively supported, good-enough operating system is no exception. While it may feel like you just finished the heavy lifting of migrating your Windows XP machines to Windows 7, it turns out that Windows 7 is now almost nine years old, at least two and a half versions behind Windows 10 (depending on whether you consider Windows 8.1 to be a version of Windows all its own), and approaching end of Microsoft support in 2020.

All of this is to say that you need a plan. Except in some edge cases, it makes little sense to spend the time and money to migrate from Windows 7 to Windows 8.1, since that only buys you a couple more years of supportability. The smart money is on moving to Windows 10, buying everyone expensive Macs, or, gasp, deploying Linux on the desktop. And while small businesses might be able to buy everyone MacBooks or move to Linux, large companies with lots of software investments in the Microsoft stack will continue running Windows, thus leaving Windows 10 as the only option.

Of course, moving any large quantity of users from one operating system to another, especially one with as many differences, shiny new objects and moved cheese as Windows 10, is no small feat. That’s where this guide comes in. I want to help shine light on the considerations and actions you need to take in order to make your migration successful.

A caveat before I begin: While this is not a review of Windows 10, I think it is important to let you know what to expect. Windows 10 is, to me, a frustrating mix of tremendous security improvements and OS enhancements, along with several significant steps back in stability, usability, and overall quality. I have not run Windows 10 without it crashing, hard, at least every 48 hours on any system. My experience indicates that in general you will find that your client machines have more trouble than they did running Windows 7, and you may well have the trouble ticket count to match.

What’s in this guide?

Let’s start with a list of things to consider:

Which releases to choose. Windows servicing these days is unlike Windows servicing has ever been, with Patch Tuesdays, patch rollups, security-only rollups, quality-only rollups, security plus quality rollups, semi-annual channels, long-term servicing channels, and more. Understanding which Windows 10 train to sign up for and board is more than half the battle.

How to manage the update cycle, including automated management tools to create update rings, controlling membership of machines in those rings, and how to defer feature upgrades so you don’t get caught on the bleeding edge of updates and instead maintain a prudent, supported update cadence.

Application compatibility. While at this point most versions of popular, off-the-shelf software have been proven safe to use with Windows 10, internally developed software and web applications may be incompatible with parts or all of Windows 10 clients. Rigorous compatibility testing is necessary, and I will include some tips and tools to help you achieve that in this guide.

User training. In my estimation, the Windows 10 user interface is about 70% the same as Windows 7, but that last 30% can be a real killer, especially when it comes to wireless networks, control panel settings locations, joining domains, and the Start menu and attendant searching. In this guide, I will provide some links to good user training materials that ought to serve you well as a baseline resource.