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 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access