The Problems of Large-Scale Refactoring: Learning from Eclipse RCP

Journal Title
Journal ISSN
Volume Title
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.
Large-scale Refactoring