As I was (and still am) working on a post to explain What’s happening to DSC, I found it was necessary to explain the context around it, or at least my interpretation of it.
This is from a traditional IT Infrastructure point of view, so only looking at what would a traditional IT Pro see within Microsoft’s offerings, communication and especially in the PowerShell ecosystem.
It’s meant to help understanding the changes in products (especially DSC), and the impact it may have on your day to day job, by looking back at what happened in recent years.
Disclaimer: I’m not a Microsoft employee, but as a Windows Automation and Cloud consultant I follow the evolution with interest. This is my interpretation, and you should not believe what you read on the Internet – make your own opinion.
I’m also active in the community, and am a recipient of the Microsoft MVP Award (for full transparency – I might be biased – let me know).
With Microsoft investing essentially in their Cloud technologies (from an Infrastructure perspective): Azure, Azure stack, and services on top of it, they’re embracing the “Cloud First, Mobile First” promoted by Satya Nadella since 2014. Microsoft hitting refresh means re-focusing on their long term game by innovating in ways that will help make their customer successful, and for that they need to reduce the overhead of developing solutions with limited potential for impact (simply put, create bandwidth).
By listening to their customer, Microsoft is trying to understand what they need to deliver, how, and when. Let’s make it clear that it does not mean “doing what the customer wants“, but listening to what the customer wants, understanding what they really need, and validating that assumption quickly and cheaply to provide the solution (what the VSTS teams have been doing in this area is a brilliant example).
Over the past 4 years, they’ve challenged their old ways, and now, “this is not your parent’s Microsoft“. They’re not dropping the ball and deprecating everything “legacy” from the point of view of new technologies: what they’ve built so far still solves problems and they need to (and will) maintain it. After all, it’s still a revenue stream, and it will help no-one to abandon customers.
My interpretation is that they will not be going out of their way to make it easy for customers to maintain the status quo, far from it. It sounds that Microsoft deeply believe their customers will have to evolve (we’ve heard several times Jeffrey Snover quoting Deming’s: “[It is not necessary to change,] survival is not mandatory“).
Microsoft wants to be the supplier of the companies that are transforming and are thriving from the changes. Why? Simply because Microsoft is betting that those trying to maintain the status quo by just keeping the lights on will lose the fight for survival, disrupted by new technology and by those able to react faster to the market.
For (some of) those transforming will come success, and from success, growth. This is where the $$$ are, in the long game growth for successful customer, is growth in revenue for their suppliers. If no success, no growth, no $$$ for suppliers. Hence Microsoft is “focused on making their customer successful” (as repeated many times by Microsoft Executives). Simple, yet Microsoft only found the courage to embrace this stance since Satya Nadella took the lead, and they had to pay that late entry in the game by changing themselves, fast, to the risk of creating confusion for their traditional customers or competitors.
Here’s what Adam Jacob, CTO for Chef, says about those scared of the (potential) acquisition of github by Microsoft.
If you were comfortable with GitHub pre acquisition, but you are uncomfortable with Microsoft – I think you should’ve paid more attention to GitHubs own struggles, and Microsoft’s transformation. I’m *more* ok with Microsoft, not less.
— Adam Jacob, CTO for Chef (@adamhjk) June 4, 2018
Addressing the Customer Segments Dichotomy
This new Microsoft is investing to create the solutions supporting the new model for tomorrow (Cloud, SaaS, Microservices, cross platform, Container and Serverless).
Their historic customers may be on a more traditional model (Windows-only, Virtualisation, PaaS, on-premises, on-tin), and they will need time to transition to a new model, and phase-out the old.
This is where the risk is for Microsoft and existing customers of the traditional offerings, or those going down the scary path of bimodal IT.
What, When, and How to change towards a new model, while tackling this Digital Transformation beast.
Since Microsoft is convinced their customers – as much as themselves and the non-customers – will have to embark and invest in their own Digital Transformation journey (to survive), they’re trying to take the lead in this transformation by changing themselves, be resolute and focused to deliver solutions for the future they envision, and support their customer through the change.
In practice, you can see the effects of this re-alignment to their core mission:
- Reducing/removing investment in new features for solutions that won’t help the transition (Windows PowerShell 5.1, Windows ISE),
- Creating Solutions for the new model and address more customer segments (Private Cloud with Azure Stack, AKS, Cross platform & PowerShell 6, OpenSSH-Win32),
- Supporting and maintaining the old model’s solutions during the transition (PowerShell 5.1)
- Filling gaps and ease the transition (Porting Windows PowerShell modules to PowerShell 6, such as the ActiveDirectory module, DSC Pull Server update).
If you noticed that my team hasn’t been as active or responsive on GitHub, that’s because most of them have been working on porting existing Windows PowerShell modules owned by other teams to work in PSCore6. I showed a demo at the last Community Call for ADModule in PSCore6…
— Steve Lee (@Steve_MSFT) June 1, 2018
At a high level you could roughly define Microsoft’s operations like so:
- Free resources to create bandwidth
- Build the Future (Invest in R&D for what differentiate you)
- Support and maintain what the customers depends on, to not create new pain/friction with current model (reduce customers’ overhead to focus on change)
- Help them to transition to new model by making it as seamless as possible
The difficulty is in the execution: such as How they transition from Windows PowerShell to PowerShell 6. It’s not about whether to do it or when, but how to do it as soon as possible, and being brave, focused and committed.
Yes, they know some customers won’t be happy about it, as people are often resistant to changes, especially when they have been successful in the old ways, but they are resolute.
They needed .Net to be cross platform (.Net Core), when that finally happened they:
- Stopped investing in Windows PowerShell features
- Made PowerShell 6 for cross platform
- Windows PowerShell is still supported and maintained
- Now that PowerShell 6 is GA, they’re improving the transition from 5.1 to 6 (better compatibility with existing modules, adapt or rewrite modules relying on WMI or other Windows Components).
If you tried to move to PS 6 when it went GA (generally available), you probably struggled with incompatibilities. On the other side, if your company (or you as an individual) is ignoring PS 6 now, you are kicking the can down the road, and will have to pay off that debt eventually. Same as Microsoft ignored cross-platform scenarios for years, and had to stop working on new features for PowerShell for more than a year to port it over to .Net core to make it cross platform. Remember, PS 6 can be installed side by side, yet some companies are still dependant on PowerShell 4 or 3!
If you struggle to understand the evolution of certain products, remember to look at the bigger picture. Microsoft has made its purpose and vision statement clear, and this ultimately drives the changes to the product you use. If you are not using Azure or other of Microsoft’s products, you should still keep an eye on what’s happening, because it influences the tools you’re using and depend on. As an individual, or a company (say with less than a billion dollar contract with Microsoft), you’re unlikely to make them deviate from their plan. You can, and should, influence the priorities and explain the need for improvements where they’re investing, but you have to be aligned with their long term vision (if you depend on their products), or you will go against the tide.