The development of "The Software Factory" is a concept that you treat software development as a structured, predicted, capacity that delivers the software code as expected. Many have argued that the concept is flawed because software is a creative process while others have countered this argument with software being a professional discipline that can be managed as any other discipline. The truth is a mixture of the two arguments, software can be managed as a controlled process that is produced by professionals. The insight is that you must understand that software is driven most by human capacity and the management of human output is a complex process that includes creativity, motivation, personality, skills, training, and environment. Here is how you accomplish "The Software Factory," in short form.
You must first identify the competencies of your software resources. This includes what programming languages they understand, what projects do they have experience with, what training has been provided, what level of knowledge is within your organization, and what methodologies are understood. Identifying core competencies is an important first step that is often overlooked but provides the guideline for future needs and gaps in performance.
The optimization of the work components is based on the core competencies being matched against project requirements. Often, platform approaches and reusable software libraries are part of the optimization of the workflow. Good documentation that is searchable is an important step for optimization because if you cannot find the code and use it you are defeating your process before you start to code. Optimization includes ownership within the management team, what can be outsourced, what should be retained, the legacy code strategy, and much more.
In order to get predictable sustainable results you must first implement the "The Software Factory" in your development environment and train your team on what is needed. There are existing process such as AGILE SCRUM and waterfall methodologies that will fit within this new framework. In order to get predictable results you will need to establish the right set Key Process Indicators (KPIs), training, reusable libraries, and management oversight. The process of conversion to a software factory can yield tremendous results but this transition is a 2 to 3 year process with focused experts to guide you along the way. The result will be a much faster development cycle, higher quality, and lower cost that will yield a significant competitive advantage for your business.