Software factory
A software factory is defined as a facility that assembles (not codes) software applications to conform to a Specification following a strict Methodology. By utilizing the fundamentals of industrial manufacturing -- standardized components, specialized skill sets, parallel processes and a predictable and scalable consistency of quality – a true Software Factory can achieve a superior level of application assembly even when assembling new or horizontal solutions. Just as industrialization of the automobile manufacturing process led to increased productivity and higher quality at lower costs, industrialization of the software development process is leading to the same advantages. Software factories have gained recent popularity as a cost-efficient way to reduce the time it takes to develop software. Conceptually, software factories represent a methodology that seeks to incorporate pre-built, standard functionalities into software which is typically disaggregated by domain.
The "Software Factory" uses a Software Manufacturing process and a set of productivity tools which enable this process.
Software Manufacturing is a process for the code-less assembly of any horizontal Business Software Application from 100% proven/reusable components, exactly to specification for an end user, that are delivered in a consistent and predictable timeframe. The Software Manufacturing process is only achieved through the use of a set of productivity tools that allow existing components, applications, and systems to be easily consumed, integrated and orchestrated into the end product without the use of code. If there is ANY code in the application layer, you are NOT assembling and therefore are NOT manufacturing.
Productivity tools are tools that enable code-less assembly of software. Examples of such tools include Microsoft's Access, FileNet's Process Designer, Crystal Reports, and ObjectBuilders' LiveIntegrator and LiveModeler
References
- Jack Greenfield, Keith Short, Steve Cook, Stuart Kent, John Crupi, Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools, ISBN 0471202843
- Jack Greenfield, Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools (Microsoft, 2004)
Implementations
Microsoft Patterns & Practices Team is developing four software factories:
- Smart Client Software Factory (formerly know as Smart Client Baseline Architecture Toolkit) (release: June 2006)
- Web Service Software Factory (release: June 2006)
- Mobile Client Software Factory (release: Oct 2006)
- Web Client Software Factory (release: Jan 2007)
External links
- Software Factories (Microsoft .NET Architecture Center)