Cargo Cult Architecture: An Empirical Investigation into the Maintainability Benefits of Design Patterns

Day - Time: 24 May 2024, h.14:30
Place: Area della Ricerca CNR di Pisa - Room: C-29
Speakers
  • Rick Kazman (University of Hawaii, USA)
Referent

Antonia Bertolino

Abstract

There have been many claims for the benefits of using patterns in software design and implementation.  In this research we were interested to understand whether adopting patterns positively affects a project's long-term maintainability, as measured by its feature velocity and bug rates over time.  Our assumption was that the answer to this question would be a resounding ``yes"---that the adoption of patterns should have a positive effect on project quality in general and, specific to our interests, on maintainability.  Our analysis of 11 large-scale, active, mature open source projects revealed a somewhat different picture than what we expected. What we discovered is that relatively few of the projects we studied make heavy use of patterns, and even fewer implement them properly.  There is, in some projects, an apparent ``cargo cult'' surrounding patterns, where project members use the names of patterns, but do not implement the intent of such patterns correctly.  But the good news is that when we do find properly implemented patterns, they seem to have positive effects on maintainability.  We found, in such projects, statistically significantly lower rates of bugs, changes, and churn.