Software Factories: The Next Generation


First, a little comic relief about factories and meta-factories.


In case you haven’t noticed, the patterns & practices Factory Factory assembly line is well and truly moving! Last month saw the release of the Smart Client Software Factory. Last week we followed this up with the Mobile Client Software Factory. And, Real Soon Now, we’ll have the first official release of the Web Service Software Factory (note that I’ve been here long enough to know not to promise exact release dates, and even if I hadn’t, you should know better than to ever believe Microsoft on this topic 🙂


So why are we spending so much time and effort on this “factory” idea? Quite simply, we feel that software factories have the potential to revolutionize the way that software gets built, much as “real” factories once revolutionized the manufacturing process. Despite all of the advances in hardware, platforms, tools and languages, developing software is still far too unpredictable and costly, and far too often the quality of the result is below par. Software Factories provide a new approach to development via an integrated set of tools and guidance that are optimized towards building a certain type of application. By using an appropriate factory, you should be able to get a more consistent, higher quality result with less effort. And if the factory wasn’t designed to build applications quite the way you want them, you should be able to customize it to meet your needs.


Now before you accuse me of being delusional, I don’t think we are close to realizing the full potential of this idea with our current generation of factories or the enabling tools such as GAT, GAX and the DSL Tools. We do believe – and hope you agree – that our first crop of factories are valuable – but we know we need to produce more factories, include more features and flexibility in the factories we have, improve usability, simplify authoring and customization, and make it possible to combine multiple factories in different ways.


As we continue to release new and improved factories, we hope to start making progress in a number of the areas listed above. However in addition to the incremental updates for factories on the current platform, we have just started a new initiative aimed at defining what our “next generation” factories, runtime environment and authoring tools should look like. By “next generation” we are thinking of those that will run on the “Orcas” release of Visual Studio, which will be released after Windows Vista and Office 2007. At this time we have a whole bunch of ideas about what kinds of capabilities should be included in these factories and tools – but as always we need you to keep us honest!


Even though our current factories have not been out for long, I know a lot of you have been participating in the communities and have evaluated technology preview builds, or have built your own factories or other automated guidance using GAT or DSL Tools. If you have any ideas on what it would take to bring our factory initiative to the next level, we’d love to hear from you. And if you or your organization is making a big bet around factories and are interested in having a deeper dialog with our team, please drop me an e-mail via this blog. We plan on setting up an “expert advisory” community with regular conference calls and discussions as this project progresses, and if you are in an exotic enough location we’d love to pay you a visit 🙂


Let the industrial age begin!


 

Comments (5)
  1. John Askew says:

    The Software Factories are excellent and I intend to use them at every turn.

    How can a self-appointed evangelist for SCSF like me promote these technologies? I am a member of a very good .NET user group and am willing to present SCSF, but I am looking for guidance to do just this. The ‘Hands-on-labs’ at the Boston event, yet to be released, may be enough… I know enough to present to my group, but what other effects and props can be found and used?

    Care to come to Little Rock? 🙂

  2. I’ve been focusing on web development – ASP.NET 2.0 & Atlas – the last couple of weeks. I also had…

  3. KK says:

    Tom,

    This is a very nice entry and we are eagerly waiting to c the interesting factories tht r going to come out of P&P. It would be really useful if you can clarify a doubt that i have in mind: Where does DSL fit in; in the whole software factories scheme of things. I am getting a lil confused with DSL and GAT :). Thanks.

  4. Hi KK –

    DSL and GAT were developed more or less independently, but they are both great ingredients for building software factories. It’s possible (but not trivial) to use them both together in a factory today, but we’re currently discussing what we can do to bring these technologies closer together in the future.

    Tom

  5. ncsuwolf says:

    I was wondering if there is any plan for a factory that would ease the implementation of the MVP/MVC patterns for web-based solutions as the SCSF currently does for windows clients.  This may not be needed, but I was just curious if there were something similiar in the works to automate and standardize Pattern implementations for web-based solutions.

    Thanks,

    Scott

Comments are closed.

Skip to main content