- what has been done in the past
- Ability to automatically augment files with source history from the CM
- Ability to do on-line code reviews of a completed change package with just one or two mouse clicks.
Each of these things simplify the life of a developer. ALM/CM tools should provide most of these functions, and more. Again, it's not one thing, but a lot of little things (or not so little things) that add up to provide significant benefits and help to reduce complexity.
It's a real sign that they've got a good process and good tools to support them. Good management tools gather accurate and timely data that reflect your processes.
Good processes, when supported by good ALM/CM tools, help to ensure
productivity and lower administrative overhead. The two work hand in hand.
Your ALM tools and processes should be the nervous system of your product development, not a burden. Up-to-date status
information, high-level impact analysis, good communication, instant
traceability - these are a few of the benefits when tools and processes are
well implemented. I've mentioned them before, but some of the key ingredients of such environments are:
- Well defined processes
- Integrated solutions with good traceability
- CM strategies that minimize branching, merging and labeling
- Change management rather than file management
- High availability, high reliability tools with low administration
- Tools that can be easily customized to your processes rather than vice versa
The Customer Comes First
The software development business demands that we know our customer. Whether it's a single contractor, an internal customer or a market segment, whether it's a unified voice or an assortment of variant requirements. We need to understand the customer. Many common mistakes are made here:
- Not fully understanding the customer requirements
- Not understanding the impact of your changes, especially on the customer
- Inability to tell your customer how a new release will affect their operations
- Not knowing what version each customer has installed
- Not focusing on the customer first
Because of this, we'll see a stronger move from CM tools to wider ALM tools. And if the
tools are well integrated, developers will start to gain an appreciation for the customer and will start to develop a customer centric view. Then everyone will be in the business of
supporting the customer.
In the end, it is the flexibility of software that the customer likes. If a good job is done on architecture and process implementations, the flexibility can be realized without exponential costs due to product complexity.