Blame
|
1 | <!-- Generated from applied-computing-au vic/unit3-4/sat/C08-2026/C08-Reference-Godot by port-reference-godot-to-wiki.py — do not hand-edit; re-run the port. --> |
||||||
| 2 | # Contingency Planning |
|||||||
| 3 | ||||||||
| 4 | *The 9–10 rung of C8-2: contingencies documented, and solutions to mitigate them documented. Specific beats plentiful.* |
|||||||
| 5 | ||||||||
| 6 | **Definition.** A contingency is something that could still go wrong with your project, paired with the mitigation you'd apply if it did. This isn't about evaluation scores — it's about whether your software will **actually work as promised** in your SRS. |
|||||||
| 7 | ||||||||
| 8 | ## What a contingency table looks like |
|||||||
| 9 | ||||||||
| 10 | | Potential issue | Evaluation factor | Likelihood | Mitigation strategy | |
|||||||
| 11 | |---|---|---|---| |
|||||||
| 12 | | School network fails during demonstration | Efficiency (speed of processing) | Medium | Offline mode with local data storage | |
|||||||
| 13 | | Users forget login details | Effectiveness (usability) | High | Password reset + clear instructions | |
|||||||
| 14 | | Different screen sizes break the layout | Effectiveness (accessibility) | High | Responsive design, flexible containers | |
|||||||
| 15 | | Software crashes on large datasets | Effectiveness (accuracy) | Low | Input validation and error handling | |
|||||||
| 16 | ||||||||
| 17 | **Likelihood:** **HIGH** — likely during normal use (typing mistakes, typical hardware) · **MEDIUM** — needs specific conditions (unusual input, particular devices) · **LOW** — exceptional circumstances only. |
|||||||
| 18 | ||||||||
| 19 | ## The 4-step analysis |
|||||||
| 20 | ||||||||
| 21 | Take one requirement from your SRS and: |
|||||||
| 22 | ||||||||
| 23 | 1. **Identify what can go wrong** — decompose it: *"scores (0–100)"* → what if someone enters 150? letters? nothing? |
|||||||
| 24 | 2. **Rate the risk** — likelihood plus one sentence of *why that likelihood*. |
|||||||
| 25 | 3. **Create a mitigation plan** — prevent the problem (validation), handle it gracefully (clear error message), guide the user (keep their input visible to fix), and check the cost (validation must be instant). |
|||||||
| 26 | 4. **Design your test method** — how you'll prove the mitigation works: can't submit invalid data, message is clear, tested with someone who hasn't used it before. |
|||||||
| 27 | ||||||||
| 28 | Do this once for a **functional** requirement and once for a **non-functional** one (e.g. a speed target: test on the *school's* older computers, not just your laptop, and build in a performance buffer). |
|||||||
| 29 | ||||||||
| 30 | ## Success tips |
|||||||
| 31 | ||||||||
| 32 | 1. **Be specific** — "make it faster" isn't a plan; "reduce clicks from 8 to 3" is. |
|||||||
| 33 | 2. **Test early** — don't discover the school-computer problem on demo day. |
|||||||
| 34 | 3. **Plan for real users** — people who didn't build it will use it differently. |
|||||||
| 35 | 4. **Focus on high-likelihood risks first.** |
|||||||
| 36 | 5. **Document your testing** — evidence of mitigation attempts is what the 9–10 band reads. |
|||||||
| 37 | ||||||||
| 38 | One well-planned mitigation with evidence beats five vague strategies. The blank template is in your class repo: `S-C08/C082-Contingency-Plan-Template.md`. |
|||||||
