Files
010-calc/docs/business-case.md
2026-10-04 20:23:31 +08:00

108 lines
3.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Business Case
## Metadata
| Key | Value |
| --- | --- |
| ID | BC-001 |
| CrossReference | [SA-001] |
## Version History
| Date | Status | Author | Reviewer | Change | Commit |
| --- | --- | --- | --- | --- | --- |
| 2026-10-04 | Accepted | Jens Tirsvad Nielsen | S01 | Initial version | [8ccefff] |
---
## Executive Summary
Day 10 of the Udemy course "100 Days of Code: The Complete Python Pro Bootcamp" asks for a console calculator that uses functions, a dictionary of functions, user input, a loop and recursion. This project delivers it as a small, tested and documented Python 3.13+ program with no runtime dependencies.
## Methodological and Standards Foundation
The SQA and QC framework in `framework/` (plan first, then code), ISO/IEC 25010:2023 for quality characteristics, and the Python conventions of the `coding-conventions` skill.
## Problem Statement
The assignment needs a finished, verifiable result with setup and run instructions, not a single untested script.
## Business Opportunity
A compact reference project that shows the lecture concepts and can serve as the template for later course days.
## Objectives
1. Add, subtract, multiply and divide two numbers from console input.
2. Store the operations as functions in a dictionary and call them through it.
3. Let the user continue with the previous result or start a new calculation, restarting by recursion.
4. Cover the behaviour with automated tests and document setup, run and tests in the README.
## Scope
### In Scope
Console program under `src/`, tests under `tests/`, `pyproject.toml`, `Doxyfile`, README, ASCII title and calculator, repository description and topics.
### Out of Scope
Graphical or web interface, further operations, packaging for PyPI, runtime dependencies.
## Expected Benefits
### Tangible Benefits
A working, tested calculator and a reproducible setup with a local `.venv`.
### Intangible Benefits
Practice with the plan-first process on a small project.
## Strategic Alignment
Supports completing the Python Pro Bootcamp with reviewed, portfolio-quality projects.
## Success Criteria
| # | Criterion | Target | Measure |
| --- | --- | --- | --- |
| 1 | Operations and loop work | All tests pass | `python -m pytest` |
| 2 | Setup is reproducible | README steps work on a clean `.venv` | Manual run of the README |
| 3 | No runtime dependencies | Empty dependency list | `pyproject.toml` |
## Risks
| Risk | Impact | Mitigation |
| --- | --- | --- |
| Doxygen is not installed locally | Docs build not checked | README names it as optional |
| Token in `.env` leaks | Account compromise | `.env` stays git-ignored and is never read by the project |
## Assumptions
- Python 3.13 or newer is installed.
- The git host is reachable for issues and pull requests.
## Constraints
- Python 3.13 or newer, `venv`, folders `src/`, `tests/`, `docs/`, constants in `constants.py`.
- No commit or push without the Product Owner's request.
## Cost–Benefit Assessment
| Costs | Benefits |
| --- | --- |
| A few hours of the Product Owner's time | A finished, documented assignment and a reusable project skeleton |
## Stakeholders
| Stakeholder ID (SA) | Interest in this project |
| --- | --- |
| S01 | Owns the assignment, does the work and accepts each milestone |
## Recommendation
Proceed — the scope is small, the cost is low and it completes the assignment.
---
[SA-001]: ./stakeholder-analysis.md
[8ccefff]: https://git.tirsystem.com/Tirsvad-Udemy-100_days_of_code/010-calc/commit/8ccefffef7ec1f9ecbf548085a5c92fae75e1341