June 7, 2010

The Perforce Directory Standard (PDS)

Perforce Directory Standard
Save a tree! Don't actually print it!

When getting started with Perforce or expanding its scope within an enterprise, it's a good time to establish a formal, documented Perforce Directory Standard (PDS). The directory structure and branching strategy are intimately related with Perforce. Branching strategy and product life cycle are inherently related. A well-designed directory structure intuitively conveys information about product life cycle, the release process, and branching strategy.  Further, simplifies management of The Flow of Change [PDF]. There's a lot going on there!

There is a fairly canned process I follow to help a customer define and capture their branching strategy. First, I try to get everyone speaking the same language, defining terms such as "branching patterns," "branch," "merge down," "copy up," etc. Next, I provide a brief overview of common branching patterns, to give an idea of the molds available.

Then we discuss either their current processes or the process they'd like to evolve to. By the end of that discussion, we have an initial idea of which branching patterns apply to their situation. Most often I see new samples of familiar patterns. In rare cases, I come across a customer with an environment that needs a new mold. But I've been at this game a while, and those are few and far between these days. If you think you have one of those and would like to share, by all means, please do!

audit man
Yikes! Not another CM Audit!

In addition to their intrinsic value, a PDS is handy to have in the event of a Configuration Management audit. Trying to climb the SEICMMI scale? Being audited during contractual due diligence? This helps!

The PDS stands on its own, and can be incorporated into a large document hierarchy. It's best deployed as a living document that evolves as your organization's needs change.

If you're interested in the template, let me know. Disclaimer: It's forever a work in progress, and your mileage may vary as to its applicability to your environment.