Tom Hollander Solution Architect Solutions Development Centre Microsoft Australia ARC308
What is a Software Factory? Software Factories Today Software Factories in Visual Studio 2008 Software Factory Futures
Microsoft Confidential
General Purpose Platform Unique Solution Requirements GAP Business Knowledge Requirements Architecture Technology Decisions Implementation Patterns and Guidelines Regulatory Compliance Deployment Unique Solution Requirements Different requirements GAP Different gaps
General Purpose Platform Unique Solution Requirements Different requirements Labor Based Solutions Costs too much Takes too long Poor quality and consistency Poor conformance to requirements Poor traceability Bogus budgets and schedules High ramp up time High maintenance costs Minimal reuse
General Purpose Platform Unique Solution Requirements Different requirements Labor Based Solutions Software Factory Targets a specific type of solution Easy to customize and integrate Projects jump-start from baselines Quality and consistency improve Requirements are traceable Teams know what to do and how Assets help them do it faster Maintenance is easier Changes are easier to understand New people ramp up quickly Accurate budgets and schedules Factories capture experience What if we Package… Business Knowledge Requirements Architecture Technology Decisions Implementation Patterns and Guidelines Regulatory Compliance Deployment
Structured collection of tools and assets for building applications of a particular type (or significant components of such applications) When enabled in the development environment, it provides a guided experience to the members of the development team
Microsoft Confidential
First-generation platform and factories Emphasis is on: Project and item templates Wizard-based user input Code generation Separate written guidance and reference implementations Some rough spots, but very high customer uptake and satisfaction
Four major p&p factories available today: Web Client Software Factory Smart Client Software Factory Mobile Client Software Factory Web Service Software Factory Applications built by each factory all adhere to a service-based model and can be combined into larger systems
Extensibility of Visual Studio 2005 provides the foundation of today’s factory platform Additional extensibility layers were created to make building and executing factories feasible Guidance Automation Extensions Guidance Automation Toolkit Domain Specific Language (DSL) Tools
Microsoft Confidential
Minor revision of GAT/GAX (Just Released!) Support for VS2005 and VS2008 Installer improvements Visual Studio Experimental hive support VB template support Tighter integration of DSL Tools DSL diagrams as an alternative to wizards for capturing user input
p&p Software Factories refreshed over time Web Service Software Factory “Modelling Edition” will be first major update Extensive integration of DSL models (Data Contracts, Service Contracts, Hosts) Extensible “technology mappings” (WCF, ASMX) Scheduled to be released in November
Microsoft Confidential
Planning is underway to deliver an improved Software Factory platform in Visual Studio Team System “Rosario” Plans are still evolving and are subject to change! Key themes: Supported, productized factory runtime Out of the box DSL Based Designers Enable Designer integration and extensibility Logical product architecture VSTS Work Item integration
Application/ System Design
Service Interaction Sequence Designer
Factory Entry Points
Factories create TFS Work Items
Logical Product Architecture View Factory- Specific Activities Factory- Specific Models
Software Factories enable systematic reuse of proven practices, resulting in better software Microsoft’s approach is to Provide an extensible factory platform Provide a portfolio of factories targeting common application types We have a great software factory story which will add value to your projects today Microsoft is committed to building a software factory platform, common software factories, and software factories community
patterns & practices Software Factories Web Service Software Factory: Smart Client Software Factory: Web Client Software Factory: Mobile Client Software Factory: Factory technologies: us/teamsystem/aa aspx
A fully equipped project delivery environment hosted within Microsoft Australia A specialist engineering facility for delivering high quality software quickly A way of tapping into external skills and resources while using your own team The SDC is a unique way to reduce project risk, get the job done and pick up skills or
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.