---
title: "Issues modern configuration management must address"
subject: "Software Engineering"
chapter: 10
key: "semester_5/software_engineering:survival-of-fittest"
source: https://www.bctengineer.com/q/semester_5/software_engineering/survival-of-fittest
site: BCT Engineering
---

# Issues modern configuration management must address

Software Engineering · Chapter 10: Configuration Management

- Asked in: year not given, 8 marks
- Answer checked by Claude Opus 5.5 (high effort) on 2026-10-14
- Page: https://www.bctengineer.com/q/semester_5/software_engineering/survival-of-fittest
- Whole chapter: https://www.bctengineer.com/md/semester_5/software_engineering/chapter-10

## Question

"Survival of fittest" is valid to s/w industry. Explain in context of issues modern s/w configuration management must address.

## Short answer

In software, survival of the fittest means systems and companies that adapt quickly to changing requirements and technology survive. Modern SCM must support rapid change, parallel development, dependency tracking, automated builds, and reliable version control to enable that adaptation.

## Answer

"Survival of the fittest" means that only those who adapt best to a changing environment survive. In the software industry, requirements, technology, platforms and markets change very fast. Lehman's law of **continuing change** says that a system in use must keep changing or it becomes less and less useful. Software and companies that can **change quickly without losing quality** survive; those that cannot become obsolete.

**Software configuration management (SCM)** is the discipline that makes this possible. It identifies, controls, tracks and audits changes to software throughout its life. The "fittest" organizations are those whose SCM handles the following modern issues well.

#### Issues modern SCM must address

1. **Version control at scale**
   - Large systems have thousands of files and many versions, variants and releases at the same time.
   - SCM must store every version efficiently and retrieve any of them quickly.

2. **Change control under rapid change**
   - Agile methods and continuous delivery release software weekly or even daily.
   - Change requests must be evaluated, approved and tracked quickly, without slowing the team.

3. **Parallel and distributed development**
   - Teams in different countries work on the same code at the same time.
   - Branching, merging and conflict resolution must be reliable (distributed tools such as Git).

4. **Dependency tracking and component reuse**
   - Modern systems use many open-source libraries and third-party components with their own versions.
   - SCM must track which versions are used, manage updates, and handle security patches.

5. **Build and release management**
   - Systems must be built automatically and repeatably (continuous integration) and released to many platforms (web, Android, iOS).
   - SCM must record exactly which component versions form each release so it can be rebuilt.

6. **Requirements tracing and impact analysis**
   - Each change must be traced to the requirements, design, code and tests it affects, so its impact can be estimated before it is approved.

7. **Configuration auditing and status reporting**
   - Audits confirm that approved changes were made correctly; status reports tell everyone what changed, who changed it, when and why.
   - These are needed for quality assurance and for legal and regulatory compliance.

8. **Content and people issues (web and cloud systems)**
   - Web applications change content often and many people (developers, designers, content authors) change them.
   - SCM must control who may change what, and scale from small sites to very large systems.

9. **Infrastructure and environment configuration**
   - Server settings, databases and deployment scripts must also be versioned ("infrastructure as code") so environments can be re-created exactly.

**Linking the two ideas**

| Without good SCM | With good SCM |
|---|---|
| Changes lost or overwritten | Every change recorded and recoverable |
| Slow, risky releases | Fast, repeatable releases |
| Cannot tell which version a customer has | Exact configuration of every release known |
| Bugs re-appear after fixes | Fixes tracked and merged into all versions |

**Example:** a mobile wallet company must add a new payment method demanded by the market within two weeks while supporting old app versions. With good SCM it branches, implements, tests and releases quickly and safely; a competitor without SCM struggles with broken builds and lost changes and loses customers. In this sense, SCM is a key factor that decides which software products and companies are "fit" to survive.

## Check yourself

The answer's key points as multiple-choice questions, with the correct option and why.

1. How does 'survival of the fittest' apply to software, according to the answer?
   A. The largest software always wins
   B. The cheapest software always survives
   C. Software that never changes lasts longest
   D. Software and companies that can change quickly without losing quality survive
   Answer: D. Lehman's law of continuing change says a system must keep changing; those that adapt quickly while keeping quality survive. (Key point: Meaning in software industry)

2. Which SCM issue arises when teams in different countries edit the same code simultaneously?
   A. Reliable branching, merging and conflict resolution
   B. Hardware procurement
   C. Code obfuscation
   D. Requirement elicitation
   Answer: A. Parallel and distributed development needs reliable branching, merging and conflict resolution, as in Git. (Key point: Parallel and distributed development)

3. Why must SCM record exactly which component versions form each release?
   A. To reduce the number of developers
   B. So the release can be rebuilt and the customer's exact configuration is known
   C. To avoid writing tests
   D. To hide version numbers from customers
   Answer: B. Recording release composition makes builds repeatable and lets you know what a customer has. (Key point: Build and release management)

4. What is the purpose of requirements tracing in modern SCM?
   A. To format source code
   B. To speed up compilation
   C. To trace each change to the requirements, design, code and tests it affects so impact can be estimated before approval
   D. To delete obsolete requirements automatically
   Answer: C. Tracing lets the team estimate the impact of a change before approving it. (Key point: Impact analysis and auditing)

## Related in other subjects

- [Cache management; direct vs associative address structure](https://www.bctengineer.com/question.md?key=semester_5%2Fcomputer_organization_and_architecture%3Adirect-vs-assoc-address) — Computer Organization and Architecture, chapter 6
- [Interpret: publishing industry and electronic media](https://www.bctengineer.com/question.md?key=semester_5%2Fcommunication_english%3Ainterpret-publishing-industry-electronic-media) — Communication English, chapter 1
- [Monitoring, evaluation, control must; PMIS](https://www.bctengineer.com/question.md?key=semester_7%2Fproject_engineering%3Amonitoring-evaluation-control-must-pmis) — Project Engineering, chapter 4
- [8086 RAM/EPROM interfacing with reset address](https://www.bctengineer.com/question.md?key=semester_5%2Finstrumentation_ii%3Arom-ram-8086-fffffh) — Instrumentation II, chapter 1
