Finding the Right Mix of ALM Processes and Tools for Design and Implementation


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.

Configuration management is complex. As a product evolves, CM gets even more complex, as complexity breeds problems. So how do we continually march our product configurations toward higher and higher quality? You need good people, process, tools, and automation. People define and put the processes in place. Tools are used to automate the processes and to bury the complexity of CM below the user level. Development is a process that takes ideas and turns them into products. There are many techniques and tools to do design and implementation. The right mix is required to effectively develop a competitive product. On the management side of things, the same is true. Application lifecycle management requires the right set of processes and tools to allow the design efforts to be properly leveraged and to yield the best quality.

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


About the author

AgileConnection is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.