Daniel Cazzulino recently wrote a nice article called “Building Software Factories Today” where he outlines some of the challenges and techniques you can use (and we will be using) to make effective factories on today’s platform. Here’s an excerpt:
First and foremost: this article is NOT about the grand vision (still underway, rest assured, but nevertheless in the realm of the future) outlined in The Book: Software Factories: Assembling Applications with Patterns, Models, Frameworks, and Tools by _place_holder;Jack Greenfield, Keith Short et all. I will talk about technologies that are ready for production today. This also means that the strict concept itself of a SF outlined in the book needs to relaxed for what’s currently possible with the available tools. You can think of today’s factories as infants that will grow with features as times goes by and the end-to-end SF vision becomes a reality. That doesn’t prevent the “infant” _place_holder;from giving you a big boost in terms of productivity and software quality.
You can build SF today by using a combination of the following two tools:
- DSL Tools: or Domain Specific Language Tools. This is a toolkit for creating VS-integrated graphical notations for a given model that you basically make up. It allows you to construct a custom-tailored designer for a model for your problem domain.
- GAT/GAX: or Guidance Automation Toolkit/Extensions. This is a toolkit for extending VS with solution, project and item templates, code snippets and so-called recipes (or developer use cases) exposed as context menus within VS, that guide the developer in completing a complex task.
The problem is that integrating the two is not a trivial task. Why you may ask? Aren’t they both coming from Microsoft? And how does GAT/GAX fit in the SF vision? After all it’s not even mentioned in The Book!