O'Reilly logo

Making Software by Greg Wilson, Andy Oram

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Conclusions

A single experiment in a complex situation such as programming says little, except perhaps for rejecting a hypothesis. But for confirming hypotheses, more testing needs to be done. Three experiments, two of which were replicated, gathered evidence about the effectiveness of software design patterns. The first pair of experiments showed that merely documenting design patterns can already lead to an increase in programmer productivity and reduce errors during maintenance tasks. Another pair of experiments, conducted with professional programmers, compared design pattern solutions with simpler, ad hoc solutions. In these experiments, introducing design patterns caused a certain overhead, but in most cases this overhead was justified because it simplified maintenance. The final experiment showed improvements in communication when team members shared design pattern knowledge. In the first and third experiments, there was also some evidence that weaker designers catch up with more experienced ones when using patterns.

Taken together, strong empirical evidence emerges that software design patterns are an effective approach to improving software quality and productivity in a maintenance context. The trust in design patterns was not misplaced!

Whether patterns have a positive effect during initial development is still an open question. A first experiment in that direction examined Abstract Factory from an API usability point of view [Ellis et al. 2007]. It found that programmers ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required