Jump to content

Software factory

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by 212.23.126.20 (talk) at 12:45, 27 December 2006 (→‎Implementations). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

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 prebuilt, 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. The canonical definition holds that if there is ANY code in the application layer, you are NOT assembling and therefore are NOT manufacturing, though most current implementations (circa 2006) do not hold strictly to this practice.

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.

Since the software factory approach is based on the integration of many components, it probably requires a high level of inductive reasoning aptitude for its workers.

Of course, any software company who promises to build enterprise applications in far less time than the industry standard using the concept of a Software Factory as its sole reasoning is likely employing a scam. The old adage still stands: If it sounds too good to be true, it probably is.

References

Implementations

Microsoft Patterns & Practices Team is developing four software factories:

Project Glidepath is a MicroISV-oriented Software Factory, also from Microsoft.

Enterprise Framework (EFx) Factory from Microsoft Services was one of the first pioneering architectural software factories to use a unique combination of model driven development, and integrated runtime environment tools to build Service-Oriented Enterprise Applications and Services.

.NET Database Application Developmnet

See also