A glimpse at Microsoft's internal development tools

I suspect a lot of people wonder how Microsoft does its software development internally.  Does Microsoft use the development tools we sell such as Visual Studio?  Do we use custom internal tools?  or (gasp) Open Source tools?

The answer is ALL OF THE ABOVE.  There are hundreds of teams in Microsoft, and nearly every team does things a little differently.  Long ago, everything was very custom and proprietary.  But increasingly, the tools created by our own Developer Division are becoming widely used by internal teams.  Visual Studio Team Foundation Server is one such tool; TFS brings together key resources such as bug (issue) tracking, source code control, and builds.  It's also a platform for creating other development tools!  One major advantage to creating custom tools on the TFS platform is they immediately scale.  TFS features such as an extensible backend and data warehouse, and unified security administration make custom tool development highly efficient, and greatly reduce maintenance costs.

This week, you are offered the chance to see one of the internal tools that Microsoft uses; eScrum is now available from the Microsoft Downloads site.  eScrum is an increasingly popular tool used by over 50 teams within Microsoft . It is a combination package that includes a template for Visual Studio Team Foundation Server, as well as an Ajax based web application.  The eScrum template provides users of TFS the ability to create and track scrum artifacts such as product backlogs, sprint tasks, retrospectives, and burndown reports.  The eScrum web application allows users to access their scrum artifacts from any machine with an IE6 or IE7 web browser.  In addition Visual Studio users can access their data via Microsoft Excel or Microsoft Project thanks to the integration layer provided by Visual Studio.

Scrum project management is gaining a foothold within Microsoft, especially among smaller teams who want to take advantage of the benefits offered by an Agile development process.  Teams often start learning the Scrum process by using index cards or post-its, or perhaps using Microsoft Excel to organize their tasks.  However, after some time many teams outgrow these techniques and search out more comprehensive tools that give them greater visibility into their own behavior.  One of the key principles of Agile development is that participants are self motivated and have a desire to improve their productivity and overall efficiency.  eScrum provides comprehensive reports that track metrics such as velocity, estimation accuracy, cumulative flow, and burn down. 

For internal Microsoft teams, eScrum is a hosted service managed by the IT department.  Unfortunately, this is not the case for the rest of the world.  If you want to download eScrum and install it, be sure to follow the instructions carefully.  You must have Windows Server 2003 and a licensed installation of Visual Studio Team Foundation Server (2005).  There are several dependencies which must be installed separately from eScrum in order for the web application to function.  These dependant packages were not included in the install package due to licensing restrictions or company policy.  The external release of eScrum also has a few configuration steps that must be performed manually.  This includes modification of web.config as described here.  

The team that originally developed eScrum has been monitoring the MSDN Power Tools forum and is interested in the community response.  As a result of customer feedback this week, the team is currently working to improve the setup process and plans to post an update to eScrum in the next several days which will include a fix for the aforementioned issue.