In his CM: the Next Generation series, Joe Farah gives us a glimpse into the trends that CM experts will need to tackle and master based upon industry trends and future technology challenges.
From my perspective, the two most important guidelines are to keep it simple and to automate. But how do you keep CM simple? And how much effort do you spend automating? What's the most effective marching strategy? Let's take a look.
Process and Team Work
Take a fresh development team who have been working away for weeks or months without any CM tools. Now tell them that they have to start using a CM tool and put all of their existing work into the CM tool. The complaints begin: There's not enough time to introduce a new tool. Designers will balk at the idea. They don't want to lose focus and we've got a deadline to meet.
Your development team may have some valid points. If you try the approach: "I know you'll take a hit, but it will improve product quality," you may make some inroads, but you may not get very far. Rather than imposing a CM tool on your team, take a different approach. "I want to make everyone's job easier. The result will be a better product." Now you'll get a bit more attention. So how do you deliver?
You have to get your product from the start line to the finish line. Not only that, but you have to make sure that what you finish with satisfies the requirements you started with. And you have to make sure the result is of high quality. Walk through the steps. How are you going to accomplish this? Well you'll need to test the product at the end. You'll also need to ensure that all of the requirements are covered by the tests. And then there's everything in between:
· You take the requirements of the customer/market and turn them into a product functional specification
· You take the functional specification and create a design around it
· You take the design and you structure your code base accordingly
· You fill in the modules of your code base using the best available integrated development environments
· You integrate the modules and do some sanity testing
· You do you full verification testing
That's one way: the waterfall method. Or perhaps you prefer a more agile, iterative approach. The big difference here is that you have various iterations running through these steps in an overlapping fashion. You