Name of the blog

Short description of the blog

New Blog Series: Solving Development Challenges (SDC)

The last PureCM 2010-1 release has added some very powerful features to PureCM. But how do they relate to day-to-day development? And how to get started? These questions are at the core of our new ‘Solving Development Challenges’ (SDC) blog series that kicks off with this one. So watch out for our SDC blogs to learn about how you can facilitate your software development with PureCM! 

One challenge, one blog

The next blog in a few days time will look at project planning from a project manager’s perspective. Then we’ll take the development manager’s view on configuration management before looking over the shoulders of a developer working on his tasks. Each blog will cover a specific issue and conclude with 3 key lessons. If you are missing a challenge you’d like to know more about let me know by commenting any SDC blog or starting a discussion in our forum

Covered topics

We’ll initially focus on challenges within the scope of PureCM Professional, which is quite a bit since the release of 2010-1. The following diagrams give you a quick overview about what’s supported by each PureCM edition. Note that fully included functionality is highlighted in red, while PureCM can also integrate with ‘blue’ tools:


                PureCM Professional                                             PureCM Standard


To complete this first SDC blog, let me clarify some glossary that will be used throughout the series. This is particularly important when covering the development lifecycle as a whole, with project and development managers working from the same UI in PureCM Professional. These issues will of course be revisited in more detail throughout the blog series.


Understanding each other


Project Manager

Dev Manager

Create or define a release

I define releases to plan (and track) the scope of the next project version that gets shipped to our customers.

Thus, I need to be able to schedule the features and fixes that it will contain, typically based on team members' high-level estimates. 


è PureCM calls this action ‘creating a version

When I create a release, I take a snapshot of the current configuration of the project files and folders that was built and shipped.

This snapshot (or label/tag) is static, so I can retrieve and rebuild a release at any time.


è PureCM calls this action ‘creating a release

Using high-level work items such as features or stories

I want to be able to define high-level features to describe new functionality.

Development then defines the sub-tasks that are required to complete that feature.



è PureCM uses ‘features’ or ‘folders’ to represent high-level work items. Which one to choose depends on the needs of the development manager.

I want to be able to isolate developer(s) working on a feature on their own branch. That gives me the choice when to integrate it back, i.e. with which iteration or release to ship.

But that should be possible with minimal overhead for developers and myself.


è PureCM uses a branch to represent each 'feature' by default. To group multiple tasks without creating a branch, use ‘folders’. Of course, folders can be made features at any time.

Working on multiple releases in parallel

I just need to be able to plan and track multiple project versions at the same time.

I might want to distinguish between maintenance and development, but typically I'm more interested in development.


è PureCM allows creating multiple versions for each project, so work items can be scheduled accordingly.

è  Version naming is fully customisable.

To be able to support parallel development, I need to work with branches.

Typically, I’ve got at least two branches: one for maintenance on a live release, and one for development on the next release.


è PureCM uses a branch to represent each version by default. Of course, this is fully customisable.

è Work items scheduled against a specific version automatically populate the developer workspace with the correct project configuration to facilitate communication and avoid errors.


Add comment