How We Do It
We talk with a large number of Microsoft customers, partners, and consultants to understand the commonly occurring scenarios and the technical challenges associated with them. Then we discover and harvest the solution patterns and engineering practices (including anti-patterns) that have proved successful in addressing these scenarios.
Once we understand the scenarios and technical challenges, we work with product and technology teams across Microsoft, industry experts, and with customers and partners, to build guidance that reflects both the current, practical state of the technology and that is also aligned with future Microsoft technology plans. Often, the underlying scenarios and solutions guidance ends up influencing future Microsoft product direction.
All of our projects are run in public CodePlex communities. This allows continuous input from the development community at large and keeps us honest. We call this approach, “customer connected engineering” and it ensures that what we deliver actually meets the needs of our customers. We also ship the source code to nearly everything we deliver, usually along with a license agreement that encourages source level adoption and customization.
We employ an Agile software engineering process is a combination of SCRUM style project management with XP development practices. Our work area is a mix of collaborative development rooms, where entire teams sit and work together, augmented with private spaces and offices. The layout allows us to run many projects simultaneously. Each of our collaboration rooms is equipped with a projector (used for ad-hoc code reviews, bug triage meetings, and other group activities), and has glass walls that function as giant white boards. We use the wall space to draw and discuss design ideas, as well as to sort sets of Post-it note user stories. We use Visual Studio Team System to track and report on work progress internally.
What To Do Next
We recommend that you explore these links:
There are also several p&p community projects on CodePlex, where the patterns & practices team shares their progress on projects as they proceed. You can participate in these community projects and provide feedback that helps shape the final p&p release.