I'm a big fan of automation (especially via MSBuild and CodeSmith), so I'm very interested in the Software Factory community. I recently finished Practical Software Factories in .NET by Gunther Lenz Christoph Wienands. As I understood it, they emphasized four main parts for a software factory:
- Product Line Development - emphasis on a specific type of software (web apps vs. 3D-shooters vs. winForms)
- Reusable assets - class libraries, controls,
- Guidance in Context - this could be as simple as instructions in the comments of generated code
- Model-driven development (i.e. Domain Specific Languages) - working at a high level of abstraction.
A lot of this boils down to standardization, automation, and reuse - things already covered by classic books (like the Pragmatic Programmers). However, the software factory methodology provides a structured way to achieve those things.
I also found this book interesting because it discussed concepts at a much higher, and more practical level. for example, there are plenty of "syntax" books out there, like How to Program Technology X. There are also lots of conceptual books that address the theory and problems of software engineering, like Code Complete, The Pragmatic Programmers, Joel on Software, or The Mythical Man-Month. These transcend individual, and are therefore still relevant as new technologies come out.
Practical Software Factories is different because it both address concepts, yet refers to the current technologies, websites, articles, and open-source projects to achieve those concepts. So even a year or two from now, when the current crop of tools and articles are replaced, its concepts will still be relevant, and likely implement-able with a new wave of tools.
Living in Chicago and interested in a great company? Check out the careers at Paylocity.