The Problems of Large-Scale Refactoring: Learning from Eclipse RCP
Date
2015-02-23
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
Investing in planning big refactoring changes prior
to implementing them has been promoted as a positive practice
that guarantees a high quality code change process. However,
there is no empirical evidence of the potential risks that may
degrade the quality of such a change process, even if changes are
planned in advance. This paper identifies and categorizes potential
risks based on a real-world case of large-scale refactoring:
that which produced the Eclipse Rich Client Platform (RCP).
This case is interesting because it is industrially relevant and
three publicly available data sources exist for it. We analyzed
these data sources in retrospect, and found that when expert
engineers were mapping out changes, (1) they were uncertain
about what the code does, (2) they were unclear about what it
affects if the code is changed, and (3) they misunderstood each
other when changes were described. If such lack of knowledge,
and miscommunication among the expert engineers were not
resolved via peer discussions prior to applying the changes,
we anticipate that such changes would result in a later wrong
decision or action. We also found that (4) many small changes are
enacted in the code for which the sequencing matters and that
were poorly-communicated while planning. Thus, these changes
cannot be reviewed by other engineers until after they are fully
implemented. We hypothesize that such lack of knowledge and
miscommunication would adversely affect the quality of a largescale
refactoring task, especially when the complexity of the task
increases and the level of expertise decreases.
Description
Keywords
Large-scale Refactoring