It’s got all the rumblings of being the “next best thing” in software, but according to some people in the industry, Microsoft Corp.’s software-factories approach to development could take some time before momentum around the strategy starts to build.
Software factories are based on a concept whereby programmable building blocks are created from domain-specific knowledge about an industry or a particular operation. Those building blocks can be re-used and slotted into new applications in an automated manner that resembles a factory assembly line, hence the name. Microsoft is aiming to have the technology included in Visual Studio 2005 and Longhorn.
“What we are looking for is a methodology that tells you specifically how to build a certain kind of system and deals explicitly on reuse of large chunks of [code] that you know you are going to need,” said Jack Greenfield, a Microsoft Corp. architect who is also on the Visual Studio Team System at the Redmond, Wash.-based company. “It focuses the development team on what’s unique about the particular system under construction.”
In a nutshell, Greenfield said, software factories recognize that there is a tremendous amount of repetition in software development, causing developers to have to start at the beginning each time they want to create a new program.
“We ought to be able to come up with some recipes for building things that people do — kind of like a package pancake mix,” Greenfield explained.
“We know what these things look like that we build over and over again. Maybe we could just articulate what are the parts that you need, what are the tools that you are going to use, what are the processes that you are going to follow and how can that be used to leverage rapid development.”
Developers don’t want to do the repetition each time they build code; they want to focus on the stuff that’s new and exciting, he added. For example, it could mean not having to rewrite a graphical user interface (GUI) library each time a programmer has to build a GUI application. Striving for reuse is something that many enterprises strive for, said Keith Short, architect at Microsoft and co-author with Greenfield of a book about software factories.
“It’s very rare to find an organization that would claim an economic benefit from reuse…it’s been like an elusive Holy Grail for the software industry over the past few years. But the fact is, we, as an industry don’t and as long as we strive for reuse on the basis of what we call, ‘build it and they’ll use it,’ then that is doomed to failure.”
Andrew Brust, chief, new technology at Citigate Hudson Inc. in New York, said code that gets written and rewritten tends to sour people on IT projects and can even raise the price and development time of an application “This has been the hallmark of Microsoft tools,” Brust explained. “The gist of it has been programmers should be spending time on programming the specifics of what their application needs to do instead of the plumbing,” he said. “So the concept, all the way to version one of Visual Basic, is that you shouldn’t have to write the plumbing to paint a window on the screen or you should be able to drag and drop and design [a program] visually and write a few simple lines of code to store it.”
Brust said the software factories concept takes this one step further.
“If successful, I think it will be a pretty radical piece of change, just like the first word processor and the first spreadsheet application,” he added.
A potential sticking point is that various industries and companies do things in very different ways, said Brust. “Just because a software factory might exist for the health insurance industry, for example, doesn’t mean that every health insurance company would find it useful. The software factories have to be targeted in the right way and also flexible so that they don’t force a paradigm.”
Brust said software factories could mitigate the rigidness of an off-the shelf application, but still be loose enough to be used as building blocks to allow an organization to assemble the application themselves.
“I’m excited about it,” Brust said. “But to get from a utopian ideal to an implemented solution — we got awhile to go.”
Microsoft’s Greenfield said the software industry has not had any major changes for about 20 years and that software is, in essence, still be developed the way it was many years ago. “We think software fac