July 30, 2015

Component-Based Development with Perforce Helix: Some Assembly Required

Version Control

Component-Based Development (CBD) is a development workflow that emphasizes re-use of modules or components across larger development projects. To do CBD right, it’s crucial to track the specific versions of the components of your configuration. Helix Enterprise has powerful features for versioning components and workspaces that are well suited to solving the complex challenges of CBD.


CBD adopts production line techniques for software development. A complex product may be composed of tens or hundreds of component building blocks. Each component may be developed by a specialized team, working on an independent iteration cycle. A product architect defines how the complete product is assembled from specific versions of the necessary components. The CBD process provides insulation from the vagaries of scheduling such a complex effort, for example a car may be shipped with the latest stable version of a GPS navigation system in order to maintain the overall delivery schedule.

Just as changing manufacturing specifications require close coordination of the production line, the components of a complex software product must be compatible at some interface level. Additionally, in many industries a finished product can be configured in specific ways for particular customers, For instance in the cellular communication industry, a chip set may be tailored for different networks and carriers, resulting in a complex feature matrix.

Perforce Consultants have helped several customers implement CBD, each with their own set of unique requirements. The fruits of that labor are available in the Perforce Workshop as a framework that allows you to assemble a set of versioned components via a component configuration file, some workspace management, and “magic sync”. Help yourself to the artifacts in the workshop, and feel free to contact us in Perforce Consulting should you need a hand with implementing this framework in your own environment.