Software Factory Definition
A Software Factory is defined as a facility or process that assembles (not codes) software applications to conform to a Specification following a strict Manufacturing Methodology. By utilizing the fundamentals of industrial manufacturing – standardized components, specialized skill sets, parallel processes and a predictable and scalable level 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-effective 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 through configuration – not code. A Software Factory uses a Software Manufacturing process and productivity tools which enable this process.
Software Manufacturing is a horizontal process for the code-less assembly of any Business Software Application from 100% proven / reusable components, exactly to specification for an end user, that are delivered in consistent and predictable timeframes. The Software Manufacturing process is only achieved through the use of a set of productivity tools that allow existing components, applications, services, and systems to be easily consumed, integrated and orchestrated into the end product without the use of custom code. If there is any custom code in the application layer, it is not assembled and therefore it was not created using a manufacturing approach.
Software Factories, assembly processes and true software manufacturing are enabled through the use of Productivity Tools. Simply defined, Productivity Tools allow non-developers / non-programmers (or, in the industrial manufacturing analogy, non skilled craftsman) to use easily acquired skills that enable them to leverage drag and drop, snap in, or point and click methodologies to create either specific deployable pieces of functionality, or, fully customized solutions that conform 100% to any horizontal software specification.
Today, most organizations have adopted and utilized Software Productivity Tools across their enterprise. This has led to dramatic cost savings as well as the achievement of new levels of vendor, product, back-end and end-point independence. Productivity tools are paving the way for software factories.
Popular Productivity Tools:
Software Factories can be used to produce output for a single productivity tool or can combine several productivity tool outputs to produce an entire solution.