This is a guest post by Patrick O’Rourke, director within the strategy, planning and communications team in Microsoft IT.
From the planning stages until today, Microsoft IT has taken a three-pronged approach to developing applications on Windows Azure
- Identify existing applications that aren’t mission-critical, that have reliable fallback positions, and that have workload patterns that are suitable for the cloud. These are the first applications that Microsoft IT will migrate to Windows Azure, and are used to develop best practices and reusable components for other, more-complex migrations.
- Ensure that new applications that developers can write or deploy on Windows Azure indeed are written and deployed on Windows Azure. Make Windows Azure the default application-development platform.
- Create multi-year plans, and then begin moving some of Microsoft IT’s biggest and most-critical applications to Windows Azure.
One of those first applications developed using Windows Azure was the Giving Campaign auction tool. This online auction tool allows Microsoft employees to donate items and services for other employees to place bids on during the annual Giving Campaign in the month of October. Back in the fall of 2009, a small team of volunteers within Microsoft IT moved the application from a traditional Web application to Windows Azure, and ported the 2008 online auction site code to a modern development framework. You can read more details in this Microsoft IT Showcase article.
Since that first year of the auction tool in the cloud, the number of donated items has grown 18% and the funds raised via the auction tool has grown 18%. More than $800,000 (before company matching) has been raised via the auction tool in the past three years.
Recently CIO Tony Scott said that the auction tool is his favorite line-of-business application that IT has moved to the cloud. It’s a classic low risk, high reward application. We know for the employees donating time, services and goods, and the charities that benefit from the campaign, the auction tool plays an important role in the annual giving campaign so it’s important to get it right.
Like other IT projects, the 2012 online auction tool can be viewed across the “people, process and technology” to lifecycle. Each of these aspects has changed over the years, and I’ll provide an overview below.
People The first three years of the online auction tool was run by a volunteer team from the IT and finance departments. The IT employees participated because the project represented an engineering playground – an opportunity to try new things, learn new skills. It represented long hours of volunteer time for the team of 4-to-20 people. Read here for more history. This year the online auction tool is a formal IT project owned by the Corporate Functions team within IT. The change was made because the online auction tool has become more important to the campaign, and we want to share the app with Microsoft subsidiaries around the world for their local campaigns. The team was a mix of new and veteran auction tool people, with roles such as solution managers, program managers, developers and testers. Process While the auction tool is only open for the month of October, the project actually started 6 several months prior with the vision, scope definition and strategy. The team used an agile software development method, called Scrum, for this project. In this process, the team is tightly-coupled across development, test and project managers. The first sprint stage began in May, and the sprints lasted between 3-6 weeks, concluding 3 business days before launch of the auction tool. The main stakeholder review and sign-off at the end of July before our final three sprint stages. The most positive impact in terms of the process was the IT team’s alignment around internal Microsoft business processes. We’ve discussed this move before [here]. With IT aligned to business process, IT resources were better aligned to the business and the cross-group partnership between IT and the business resulted in succinct feedback loops, lower costs and fewer mistakes. And this was across an expanded project scope this year which included 3 platforms: web, mobile phone, and Windows 8. TechnologyThis year’s auction tool is optimized for mobile bidding and searching. As background, we have over 1 million devices that connect to our corporate network worldwide on a monthly basis. We also know that roughly half of Microsoft’s workforce is mobile, to include the more than 40,000 employees in the Puget Sound area of Microsoft’s headquarters. So this year’s design approach was to view the auction tool as a framework that could apply elsewhere in our business and apply to a breadth of device styles. In doing so, QR tag technology was used via the BING vision app to install the auction tool phone application.
When it came to Windows 8 devices, the team needed to think differently about delivering the auction application for both mouse and touch, and to shift the way they thought about the way employees would use the auction application. For example:
- Application users would be swiping left and right on tablets
- The application is always up in the background and doesn’t need to be opened and closed
- Preserving users’ “keep me signed in” settings so their security token is up and available
- Hovering wasn’t possible and help text went away; it instead needed to be a button with a lightbox
The combination of mobile and cloud also placed a high emphasis on secure payment transactions. Security is pervasive throughout the app development cycle. The team used Windows Azure Access Control Service (ACS) along with Active Directory Federation Services for single sign-on to the auction tool across all three platforms. Keep me signed in feature means it no longer matters whether an employee is signed in internally or externally, they’re just signed in. The employee can connect to the corporate network internally and then go home and they’ll still be signed in.
As for the development environment and infrastructure, this year’s online auction tool used Windows Azure prototypes developed by the Microsoft product team, as well as production features. Here are some examples of how Windows Azure helped:
- Quick deployment time
- SQL Azure Data Sync made secure connections between on-premises and cloud servers to provide the team the flexibility to push updates into production
- Windows Azure web role allowed the team to use a familiar environment, course correct and install hot fixes quickly, and then go into production merely by swapping IP addresses
- Easy to scale up and adjust the size of web roles
The internal IT team enjoyed the work on this auction tool and will apply what they learned to future projects. Reaction from internal business partners has been favorable, to include one comment that no other online auction site “has the same elegance, experience, flow and app support that this has - I would say we have something to be very proud of here.” For IT employees, that kind of business partner feedback is gold. We’re expecting other Microsoft subsidiaries to adopt this year’s online auction tool for their local campaigns.