Change control: These are tools that help you document, manage, and track changes. This may often be called change management although this term is often applied to a broader meaning of the word change (e.g., organizational change management). These tools offer the capability to identify a change and then establish a workflow by which the change can be tracked along a change lifecycle. In addition, there is an expectation that there is the ability to identify and report on the status of configuration items known as a baseline. This helps in identifying baselines for requirements, design, code, build, test, and release and the capability to audit each. More details include:
· Tools in this category typically live throughout the project lifecycle if changes that impact the project baselines of are being managed.
· Sometimes requirements management, change control, and defect tracking tools are included in this since each provides similar capabilities.
Build management: These tools offer the capability to identify a code baseline and then generate executables. More advanced tools in this space offer bill-of-materials reports and dependency and traceability checking that help with integrity and audit. Some people see tools in this space as separate from CM tools but are very closely aligned. More details include:
· Tools in this category typically fall into the development phase of the project lifecycle.
· This category may be divided further into build management and continuous build.
· Build management has a broad focus on providing an automated approach to the full build process (tagging code, setting up build space, executing build, logging build results, and sometimes even some smoke tests).
· Continuous build has a narrower focus and more specifically on an automated approach to build every time someone checks in a code module to ensure that everything builds together therefore reducing large merge conflicts.