Recently, Microsoft held a Windows Community call for partners that featured Chris Jackson, The App Compat Guy. During the presentation Chris provided insights and best practices for testing Windows 10 compatibility.
Principals for Managing Windows 10 Compatibility
- Test commensurate risk
- Maximize deployment velocity
- Mitigate App failure
Test commensurate risk
Understanding the risk of the applications in your portfolio is the first step. “If you ask most business owners to identify the criticality of the software they are using, we have found that the most typical result is to discover that 85% of all software is defined as business critical.” That is really high, especially for enterprises with thousands of applications. Most organization have at least 20% that are high and critical apps. These are often complex custom developed or heavily customized commercial products. In the highest risk categories, failure can lead to severe harm to the business, significant loss of productivity or ability to execute on the business mission. Workarounds can take days or weeks to implement, and come at a significant cost.
Maximize deployment velocity
The recommended approach for enterprise IT teams to deploy Windows Updates and commercial software security patches and upgrades, was explained similar to how Microsoft uses “rings”:
Deploy to Team → then to Floor → then to Building → then to City → then to Country → then to World
This approach can significantly accelerate deployment of critical security patches, and risk is managed by containing the users impacted making it easier to roll back in the event of an issue.
Mitigate App failure
“If you find that you have a higher than normal failure rate, you probably want to test even more, promoting more apps into a higher touch testing scenario.”
With no room for error critical apps should always be 100% regression tested. Whether you choose to regression test high and medium apps will depend on your organizations risk tolerance. This approach requires a significant project effort, of finding, prioritizing, and testing critical and high risk applications across your environment. It can be automated with the right solutions and may be well worth it.