What is a software factory?
A software factory pertains to the factory approach to application development: rapid, efficient, and automated. It aligns with a true DevOps environment, where software developers collaborate seamlessly with IT operations. A software factory is more than just a team of developers and testers. They own interrelated assets that they unbox and use for every project, such as the following:- Recipes. Just like a food factory, a software factory would have automated processes for routine tasks. Developers can perform the tasks with little to no input.
- How-to topics. The procedures and instructions on how tasks will be completed.
- Templates. Ready-to-use application components, code, and features, including placeholders for arguments. Projects are jump started with these.
- Reusable code. Common functionalities across applications that developers reuse to avoid manually coding the entire project.
- Designers. Tools for developers to tackle more complex design hierarchies.
- Factory schema. Documentation of assets used to build and maintain a system, including relationships among them.
- Architecture guidance and patterns. Explains the decisions made in application design and the motivations behind them.
- Reference implementation. An example of a realistic and completed product.