Refactoring, which is an efficient method to improve the quality of the existing code, has been widely used in practical software development and maintenance activities. The current refactoring researches are more focus on the technical aspect of refactoring but pay little attention to its use in real software development environment. However, software development and maintenance, in their nature, are human-centric activities. The lack of systematic empirical studies has resulted in the gap between current refactoring researches and industrial practices. To bridge this research gap, we conduct this exploratory study to learn more about the actual use of refactoring in the industrial context. Using a series of semi-controlled interviews as our major research method, we gathered first-hand information on how the refactoring is used by practitioners. We built a three-stage framework to describe the overall refactoring process. 19 basic factors are identified and categorized. We also identify the most important ones and the factors that may trigger potential conflicts between developers and the managers. Some related issues such as this study's implications are also discussed. © 2009 Springer Berlin Heidelberg.