REDMOND, Wash. — Nov. 7, 2012 — In every industry, companies are as unique as individuals. Their processes are their secret sauce. And finding the right software to support those processes can create a huge competitive advantage.
Nowhere is this more true than the world of embedded software. Instead of simply building standalone devices, the embedded market has evolved dramatically in the past few years toward the concept of intelligent systems, where devices are connected across a corporate network to software and services running on the back end or in the cloud.
Michael Beck, director of program management for Windows Embedded at Microsoft, says this approach can allow customers to build solutions that drive customer loyalty by offering personalized experiences, help deliver superior patient care, identify opportunities for heightened production efficiencies or suit just about any other business scenario. Examples have already started appearing within the retail, healthcare, manufacturing and automotive industries.
“Connecting devices into an intelligent system results in an end-to-end business solution that generates data, analyzes it in real time and transforms it into business insight,” Beck says. “For partners and enterprise customers, this operational intelligence opens up a whole new range of business opportunities.”
To help companies keep up with the pace of change and build exactly the intelligent systems they need, Windows Embedded general manager Kevin Dallas spoke at length last year about Microsoft’s focus on shortening its own development cycles and releasing new updates and versions at a faster cadence. Communication with embedded developers would be more frequent and clearer. Visibility into the platform and processes would increase. Feedback would be incorporated much more quickly.
But how would the team deliver on this promise?
Behind the discussion was an internal shift in process and culture. The Windows Embedded team was moving from the traditional “waterfall” big batch development model to embrace the lightweight programming paradigm known as agile.
It was a change that would speed up the group’s release cycles and greatly improve the developer community’s ability to provide feedback. It would also require the entire team — program management, development and testing — to come together as a single unit focused on delivering business value.
The change began with Windows Embedded Device Manager. Having recently completed a rather lengthy development process on the first iteration, planning for version two had commenced with the team determined to build a better, leaner product and to do it more quickly.
Beck says Windows Embedded Device Manager represented a real opportunity to introduce a leaner process and transform Windows Embedded to reflect Dallas’ vision and promise to enterprise customers and partners.
“Windows Embedded Device Manager was in a position to start over, which gave us an opportunity to introduce a new methodology,” Beck says. “We were spinning too many cycles on making sure we had the right product. We needed to learn how to build in shorter cycles and get feedback more quickly to respond to this dynamic market.”
Leaders in the Windows Embedded group harnessed experts in agile software development methodologies, including Phillip Cave, who had already helped several other Microsoft teams transition to agile successfully. Cave brought his experience delivering technology products to market and his understanding of the human side of development and team culture and how those considerations affect engineering processes.
“The shift to agile is really about people,” Cave says. “On the developer side, it’s a move from individual productivity to team productivity. On the customer side, it’s about creating real value through great experiences and capabilities.”
Instead of thinking about building a multitude of features spanning the entire product, for example, the focus is shifted to what ultimate users of the product will need to do. The entire product is broken down into those specific experiences, and each one is prioritized, designed, coded and tested before moving on.
Team members pitch in to help finish the highest priority items first, regardless of their title or role. This can allow a tester, for example, to pair with a developer on a task, focusing on quality first while also writing test tools to further streamline the process. Daily meetings are held to assess progress, identify blockages and ensure team members are focused accordingly.
Beck says the big-picture shift from features to experiences allows each piece to be code-complete, tested for quality and even put in front of customers for demonstration and feedback — building quality into the product throughout the development lifecycle and eliminating the traditional last-minute rush to identify bugs and fix them before the product ships.
“Our goal is to deliver value to customers,” Beck says. “Defining and delivering small, customer-focused experiences allows us to accomplish this more efficiently.”
In the case of Windows Embedded Device Manager, the second version was shipped earlier this year, and the product has since been made available with the System Center 2012 Configuration Manager Service Pack 1 beta to provide enterprises with a centralized management portal. For many who worked on the project, the launch was memorable for what it was, as well as what it was not — there was no mad dash to fine-tune the project at launch. In the words of Cave, the team was “not just done, but done done.”
“An outside observer wouldn’t have known that we had reached a major milestone,” Beck says. “With Windows Embedded Device Manager, we focused on productivity as a team and working closely together to get something of quality shipped. In the end, the real beneficiaries are our customers and partners, who can use these products to build intelligent systems, knowing the platform will grow and evolve along with their needs.”
Version two of Windows Embedded Device Manager was completed in nine weeks. The last bug was fixed one week after the first beta launch. Windows Embedded is now using agile programming methods across its product portfolio.