Agile Note Summary
Summary of - Agile Development and the Tools to Support It¶
Agile, in one paragraph¶
The Agile Manifesto values individuals and interactions over processes and tools, working software over comprehensive documentation, customer collaboration over contract negotiation, and responding to change over following a plan. “while there is value in the items on the right, we value the items on the left more.” Agile is a statement of priority, not permission to skip things.
Scrum: the pieces¶
Artifacts
- Product Backlog — everything you might build, ordered. Never finished.
- Sprint Backlog (i.e. To Do) — what you committed to this sprint, plus the plan.
- Increment — the working thing at the end. Must meet the Definition of Done.
Events
- The Sprint — a fixed timebox. Ours is usually 2 weeks. Length never changes mid-sprint.
- Sprint Planning — choose the goal and the user-stories.
- Daily Scrum — 15 minutes of coordination. Doesn’t apply with solo project.
- Sprint Review — demo the increment.
- Sprint Retrospective — improve the process. The one that matters most with solo projects.
Roles — you’re all three:
- Product Owner (what’s valuable, backlog priority),
- Scrum Master (protects the process, removes blockers),
- Developer (build it, own the DoD).
Epics, Stories, Sub-tasks¶
This 16-week course uses exactly three levels:
- Epic — a pattern-sized body of work, roughly one per week. “Configuration & randomness.”
- User Story — one user visible capability, finishable in a sprint. “As a designer, I want settings in one file, so that I can rebalance without recompiling.”
- Sub-task — a step. “Add getInstance().” No user-facing value alone, and that’s OK.
How to READ a user story¶
This is the TOP Week 2 skill. INVEST:
| Letter | Means | Failure smell |
|---|---|---|
| Independent | buildable without waiting on another story | “…after story 4 is done” |
| Negotiable | describes the need, not the implementation | “Use a static HashMap” |
| Valuable | someone benefits | “Refactor the utils package” |
| Estimable | you can guess the size | “Investigate options” |
| Small | fits one sprint | “Build the game” |
| Testable | has a checkable outcome | “Make it fast” |
The two that go wrong most:
- Negotiable (implementation smuggled into the user-story) and
- Valuable (a developer chore dressed as a user-story — that’s not a story, its a sub-task).
Acceptance criteria: Given / When / Then¶
1 2 3 | |
The test for a good “Then”: could two reasonable developers disagree about whether it happened? If yes, it’s not a criterion yet.
Story points¶
- ARE: Relatively sized, usually not hours (but we’ere going to use hours this semester).
- Fibonacci Sequence makes a good relative story-proint size: 1, 2, 3, 5, 8, 13. Anchor on one story you understand.
- Compare everything to anchor. Anything ≥8 becomes an EPIC in disguise, so split it up!
You aren’t estimating this semester until at least Week 6, but you are recording actual hours next to the supplied estimates starting now, because that calibration data is what makes your own estimates useful later.
Git: the three trees¶
| Working Directory | files you can edit |
| Staging Area (Index) | what the next commit will contain |
| HEAD | the last commit on the current branch |
git add = working → staging. git commit = staging → HEAD. git push = HEAD → remote.
Branch naming and Conventions¶
1 2 3 4 5 | |
Commit messages (Conventional Commits)¶
feat: fix: docs: test: refactor: chore:
Pull Requests¶
Even solo. A PR gives you a place for CI to report, a diff to review with fresh eyes, a DoD checklist, and a permanent record of why.
Definition of Done¶
Written once, applied every week, never renegotiated mid-sprint. If a story doesn’t meet it, the story isn’t done, it goes back on the board. This is the mechanism that stops a semester accumulating fourteen half-finished patterns.
Vocabulary to own by Friday¶
Sprint · backlog · epic · user story · sub-task · acceptance criteria · story point · velocity · Definition of Done · increment · retrospective · WIP limit · INVEST · repository · clone · branch · commit · staging area · HEAD · remote · push · pull · merge · merge conflict · pull request · CI · tag · reflog