optional · CSS study notes
I.18 Major Software Issues
⬆️ Back to: P-I.I. Introduction to Computing
🧭
Page Outline — click a heading to jump. No subpages.
📜
Syllabus item: "Major Software Issues" (FPSC CS Paper-I, Section-A, Topic I)
🧠
Key points — 30-second recap
- Software fails more often from bad requirements than from bad code.
- Big issues: quality and bugs, security, cost and schedule overrun, maintenance, compatibility, usability, licensing and piracy.
- Bugs get costlier the later they are found (cheap at design, expensive after release).
- Most of a system's lifetime cost is maintenance, not first development.
- Famous failures: Ariane 5 (1996), Therac-25 (1985–87), Y2K, CrowdStrike outage (July 2024).
- Verdict: software issues are management and engineering issues together, not only programming ones.
1. In simple words
- Think of NADRA's online ID renewal. If the form crashes, leaks data, takes three years longer to build than planned, or stops working after a browser update, those are all "software issues".
- The code may be only one part of the story. Unclear needs, rushed deadlines and weak testing cause most problems.
2. What counts as a major software issue
2.1 Quality and reliability (bugs)
- Bug: a fault in code that makes software behave wrongly.
- Why it matters: in safety systems a bug can kill. Therac-25, a radiation machine, overdosed patients in 1985–87 because of a race condition in its software.
- Ariane 5 (1996): a 64-bit to 16-bit number conversion overflowed and the rocket destroyed itself about 40 seconds after launch.
2.2 Security vulnerabilities
- Weak input checks, unpatched libraries and poor passwords open the door to attacks.
- Example: WannaCry (2017) spread through an unpatched Windows flaw.
- Open-source components with known holes are a supply-chain risk (asked as an MCQ in 2026).
2.3 Cost and schedule overrun
- Projects often cost more and take longer than planned because requirements keep changing (scope creep).
- Brooks's Law (Fred Brooks, The Mythical Man-Month, 1975): adding people to a late project makes it later.
2.4 Maintenance and legacy software
- Most of the money in a system's life goes into fixing, adapting and extending it after release.
- Old systems (for example COBOL in banks) are risky to replace and hard to keep.
- Y2K problem: two-digit years risked dates rolling from 99 to 00.
2.5 Compatibility and portability
- Software that works on one OS, browser or device version may break on another.
- Updates can break older features or drivers.
2.6 Usability
- A correct system can still fail if people find it confusing. Good user interface design is part of software quality.
2.7 Licensing, piracy and IP
- Using software outside its licence is illegal and exposes users to malware hidden in cracked copies.
- Copyleft licences (GPL) can force a product's source to be published.
2.8 Update and deployment risk
- A single faulty update can spread worldwide in hours. The CrowdStrike update of 19 July 2024 crashed millions of Windows machines, grounding flights and disrupting banks.
3. Comparison: issue vs main remedy
| Issue | Main cause | Main remedy |
|---|---|---|
| Bugs | Weak testing, complexity | Code review, unit and integration testing |
| Security holes | Unpatched code, weak input checks | Secure coding, patching, audits |
| Overrun | Unclear or changing requirements | Clear requirements, agile delivery |
| Maintenance burden | Poor design and documentation | Modular design, documentation |
| Compatibility | Platform changes | Standards, testing on many platforms |
| Piracy | Cost, weak enforcement | Licensing awareness, open-source options |
🧠 Formula: right requirements + testing + patching = fewer software issues.
4. 🇵🇰 Pakistan perspective
- Piracy: high use of unlicensed software has long been a trade irritant; the Copyright Ordinance 1962 and IPO-Pakistan govern it.
- E-government systems: FBR's IRIS and NADRA services show both the gains and the pain of large public software (downtime around filing deadlines is a recurring complaint) [verify specific incidents before quoting].
- Skills gap: weak testing culture in small software houses is a known quality issue for IT exports.
5. Way forward
- Write clear, signed-off requirements before coding.
- Make automated testing and code review mandatory.
- Patch on a schedule and track third-party libraries.
- Roll out updates in stages (canary releases) so one bad update cannot hit everyone.
- Prefer open-source where licences allow, to cut piracy and cost.
6. 🔗 Integration
- P-I.V Software Engineering: SDLC, testing, maintenance types.
- I.29 Information Security / I.33 Viruses: security vulnerabilities.
- I.35 Intellectual Property Rights: licensing and piracy.
- Essay / Current Affairs: digital governance and IT exports.
7. 🧠 Memory aid
- "B-SCaM-CUP": Bugs, Security, Cost overrun, Maintenance, Compatibility, Usability, Piracy.
8. ✍️ Outline bank
- Q. Discuss the major issues faced in software development and use.
- I. Introduction: software everywhere; failures costly
- II. Major issues
- A. Quality and bugs (Ariane 5)
- B. Security (WannaCry)
- C. Cost and schedule overrun (Brooks's Law)
- D. Maintenance and legacy (Y2K)
- E. Compatibility and updates (CrowdStrike 2024)
- F. Usability
- G. Licensing and piracy
- III. Pakistan angle
- IV. Way forward
- V. Conclusion
9. 📌 Past paper questions
- No direct question on this item in 2016–2026.
- Related: 2026 MCQ Q20 (open-source components with vulnerabilities) — see I.29 Information Security.
🎯
Exam pattern: not asked directly 2016–2026. Keep one 10-mark answer ready (outline above); it can also feed answers on software engineering and security.
10. 🎯 CSS Exam Perspective
- How to score: define "software issue", list 6–7 issues with one real case each, add the Pakistan angle, end with a specific way forward.
- ⚠️ Common mistake: listing only bugs and viruses. Examiners expect cost, maintenance and licensing too.
- Examiner expects: named failures (Ariane 5, Therac-25, CrowdStrike) instead of vague claims.