Since the early 1990s, component-based software technology has become an increasingly popular approach to facilitate the development of evolving systems as it promised to address some of the problems of object-oriented development technologies. By reconfiguring components, adapting existing components, or introducing new components it was hoped that applications could be adapted to changing requirements more easily than using traditional approaches. But has component-based software technology succeeded? Have we been able to address the problems identified more than a decade ago? Which problems still need further investigations? In this work, we will review some of the goals component-based development was supposed to achieve, investigate whether these goals have been met, and propose a research agenda of topics for further investigation.