Software variability is the ability of a software system to be customized or configured for a particular context. In this paper, we discuss our experience investigating software variability implementation challenges in practice. Eclipse OMR, developed by IBM, is a set of highly configurable C++ components for building language runtimes; it supports multiple programming languages and target architectures. We conduct an interview study with Eclipse 6 OMR developers and identify 8 challenges incurred by the existing variability implementation, and 3 constraints that need to be taken into account for any re-engineering effort. We discuss these challenges and investigate the literature and existing open-source systems for potential solutions. We contribute a solution for one of the challenges, namely adding variability to enumerations and arrays. We also share our experiences and lessons learned working with a large-scale highly configurable industry project. For example, we found that the “latest and greatest” research solutions may not always be favoured by developers due to small practical considerations such as build dependencies, or even C++ version constraints.