|
software factories one step too far?
Date : 03/04/2008 While software component factories are increasingly being hailed as the answer to the capacity crisis in software development, they could be one step too far. That’s the view of Karl-Heinz Wessinger, from The IQ Business Group’s Software Engineering division, who believes a more appropriate solution to the quest for faster, less expensive delivery of reliable, quality software lies rather in software patterns. Wessinger explains that software component factories are about the industrialisation of software development – turning what is largely a “craft” methodology in which developers build every application as though it was the first if its kind, into a “manufacturing, assembly-line” methodology in which software systems are built by integrating already existing software components. “The problem with the ‘craft’ approach to building a software application is that developers spend a lot of time figuratively reinventing the wheel. Meanwhile demand for software development and maintenance is insatiable. Clearly, a significant improvement in software development productivity is an absolute necessity,” he says. A compelling solution would therefore be to significantly increase the level of automation in application development by establishing software factories in which previously built software components are assembled into a new product. “At the foundation of this approach is the assumption that certain parts of software applications reappear with sufficient regularity to allow for common parts to be written once, rather than many times, and that common applications can be assembled through reuse rather than rewritten over and over. But Wessinger believes that while there is little to fault the theory behind the software factory concept, the reality is somewhat different. “Firstly, software component factories presuppose a level of commonality between applications that seldom exists: even the e-commerce application requirements of one e-commerce business are unlikely to be identical to that of a second e-commerce business. The level of customisation required to produce fit-for-purpose software could well negate the benefits inherent in the software factory approach,” he explains. “And, of course, there’s the ongoing problem of obsolescence. Business changes so quickly and software development tools are upgraded so frequently that a carefully constructed software component could rapidly become outdated.” Another problem, he believes, is the high, upfront investment required to establish a software component assembly line, along with the time and expertise needed to develop the right tools that will enable developers configure the assembly line. “It has been said that software factories can empower developers by giving them more tools and by automating much of the rote work associated with all software development. However, we have many highly specialist developers in South Africa who may feel threatened and disempowered by the process,” he adds. And that, Wessinger continues, is why he believes software patterns offer a more appropriate solution. A software pattern can be defined as a general reusable solution to a commonly occurring problem in software design. It provides a way to describe best practices and good designs, and to capture experience in a way that makes it possible for others to reuse this experience In effect, a software design pattern is not a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that can be used in many different situations. Patterns give developers a level of freedom. They can see upfront what has worked in the past and learn from the mistakes of other developers. “By developing software patterns libraries, developers can quickly and easily leverage the experience and reuse the IP of others. Technology changes so fast that it’s better to understand how to build and improve the building process than to actually build the coded components. “There are those who believe that it’s just a simple step to move from the documentation of patterns to automation by developing component-based software factories. At The IQ Business Group, we believe it’s a step too far,” Wessinger concludes.
|