Applying Agile and Scrum to a Solo Open-Source MAS Project — A Mentor's Guide
This post is written as a mentor guiding a mentee through the practical application of Agile Project Management concepts learned in the PDWD-APM-0226 course to a real-world project: the headhunter-agent.
Hey — you just completed the Agile Project Management module, and you’re looking at the headhunter-agent project going “how does this stuff actually apply?” Let’s walk through it together.
The course covered Scrum roles, events, artifacts, Kanban, estimation, continuous improvement, and Lean principles. The headhunter-agent is a Local-First Multi-Agent System (MAS) written in Clojure — a desktop GUI + CLI toolchain for job hunting automation. Let me show you how every Agile concept maps to something real in this codebase.
1. Scrum Roles — Who Does What on a Solo Project?
The course asks: What does a Scrum Master do to support teamwork and responsibility? On a solo project, you wear all three hats. But they’re still distinct responsibilities:
On headhunter-agent, here’s how that breaks down:
| Role | Your Responsibility | Headhunter-Agent Example |
|---|---|---|
| Product Owner | Decide what to build next | Prioritising M2M protocol P4 vs. adding a test suite |
| Scrum Master | Remove blockers, keep process healthy | Unblocking yourself when Gemini API rate-limits you |
| Developer | Write code, test, deliver | Implementing the 3-stage evaluator or the Daemon MCP server |
The Scrum Master differs from a traditional Project Manager because you don’t command and control — you serve the team (which is yourself) by removing impediments. When you spend 3 hours debugging a DNS discovery issue, the SM in you asks: “What systemic fix prevents this from blocking next Sprint?”
2. Scrum Events — The Rhythm of Delivery
The course covers five Scrum events. Here’s how they map when you’re building the headhunter-agent:
Sprint Length
A one-week Sprint works well for a solo project. The headhunter-agent has clear module boundaries — you can ship something meaningful each week:
| Sprint | Goal | Deliverable |
|---|---|---|
| 1 | Data Vault extraction | profiler.clj +
data/master-profile.edn |
| 2 | Job evaluation pipeline | evaluator.clj — 3 sequential Gemini agents |
| 3 | Interview prep | interview.clj — STAR story mapping |
| 4 | PDF generation | pdf.clj + Typst template integration |
| 5 | Application tracker | tracker.clj — markdown pipeline |
| 6 | M2M key generation | m2m/crypto.clj — Ed25519 identity |
| 7 | M2M discovery + fetch | m2m/registry.clj + m2m/fetch.clj |
| 8 | M2M submit + verify | m2m/submit.clj + m2m/verify.clj |
| 9 | Daemon MCP server | daemon/core.clj + daemon/data.clj |
| 10 | Testing + hardening | Test suite + CI pipeline |
Sprint Planning
Ask: Given the current Product Backlog, what is the most valuable thing I can deliver this Sprint? For Sprint 9, the answer was the Daemon MCP server — because it unlocks MCP protocol integration.
Daily Scrum
Every morning answer three questions: - Yesterday:
“Implemented tools/list and tools/call
handlers for the Daemon” - Today: “Write the data
content for all 9 tools, then wire up the HTTP server” -
Blockers: “Need to figure out babashka http-server
handler syntax” → unblocked by reading directory.clj
Sprint Review
At Sprint end, run the GUI and demo what you built. Record a screenshot or a short video. The review answers: Does this actually solve the problem?
Sprint Retrospective
The most important event for a solo developer. The course asks Why is continuous improvement important in Agile? Here’s why:
3. Scrum Artifacts — Tracking Value Delivered
The course identifies three artifacts: Product Backlog, Sprint Backlog, Increment. The headhunter-agent already has a markdown-based tracker — let’s repurpose it as an Agile tool:
Product Backlog
A living document of everything the headhunter-agent could become. Prioritised by value:
The Definition of Done for a backlog item on
headhunter-agent: - Code compiles without warnings -
bb <command> runs without errors - D2 diagrams render
correctly in the blog post - Commit message follows conventional commits
format - README updated if behaviour changed
Sprint Backlog
During Sprint Planning, pull items from the Product Backlog into the
Sprint Backlog. Track progress in data/applications.md:
# | Date | Sprint | Item | Status | Notes
1 | 24-Jun | Sprint 9 | Daemon core.clj | ✅ Done | 159 lines, MCP compliant
2 | 24-Jun | Sprint 9 | Daemon data.clj | ✅ Done | 283 lines, 9 tools
3 | 24-Jun | Sprint 9 | deps.edn alias | ✅ Done | :daemon alias added
4 | 24-Jun | Sprint 9 | Blog post | ✅ Done | D2 diagrams included
Increment
Every Sprint produces a potentially shippable
Increment. For headhunter-agent, this means: - CLI commands
work (bb daemon serve --port 8081) - GUI launches without
JavaFX errors - D2 diagrams compile in the blog post build
4. Kanban vs Scrum — When to Use Which
The course asks: Compare Kanban and Scrum-based ceremonies. What is the purpose of each approach?
For headhunter-agent, you can use both:
Scrum for Feature Development
Use Scrum when building a new module (like the Daemon). You need the structure of Sprints to stay focused.
Kanban for the Application Pipeline
The tracker (data/applications.md) is essentially a
Kanban board for your job applications. Each application flows through
states:
5. Agile Estimation — Story Points and Velocity
The course asks: What are Agile estimation techniques, and how do they help in project planning?
For headhunter-agent, use Story Points with a modified Fibonacci sequence (1, 2, 3, 5, 8, 13):
Velocity Tracking
Track your velocity over Sprints:
If your average velocity is ~14 pts per Sprint, you know you can plan ~14 pts in Sprint Planning. No more overcommitting.
6. Sprint Burndown — Are You on Track?
A Sprint Burndown chart shows remaining work vs. time. For headhunter-agent, track it in the markdown tracker:
If by Thursday you still have 8 pts remaining, you know you overcommitted. Next Sprint, plan fewer points.
7. Agile Ceremonies — Best Practices
The course asks: What are Agile ceremonies, and why are they important for team collaboration? List TWO best practices.
On a solo project, ceremonies are mental resets, not meetings. Here are the four ceremonies mapped:
8. Lean Principles — Eliminating Waste
The course asks: How does the Lean principle of waste elimination support Agile continuous improvement?
In headhunter-agent development, waste takes many forms:
Concrete example: The headhunter-agent already eliminates waste #6 (Delays) by being local-first — Gemini API calls are the only external dependency. The Daemon MCP server eliminates waste #3 (Relearning) by exposing system documentation through a standard protocol — any AI agent can query the architecture instead of you re-explaining it.
9. Continuous Improvement in Practice
The course asks: Why is continuous improvement important in Agile? Explain THREE key benefits.
Let me show you how three benefits play out in headhunter-agent:
Benefit 1: Enhanced Product Quality
Each retrospective identifies quality gaps. Sprint 8’s retro identified “no tests” as a critical gap. Sprint 9’s action item: “Write at least one test per day.” This directly improves the quality of the M2M crypto module.
Benefit 2: Increased Team Efficiency
The tracker.clj module went through three iterations: -
Iteration 1: Manual markdown editing (wasteful) -
Iteration 2: bb tracker add --company X
CLI command (better) - Iteration 3: GUI tab with visual
cards (efficient)
Each improvement came from a retrospective insight.
Benefit 3: Fostering Innovation
The Daemon MCP server was not in the original Product Backlog. It emerged from a Sprint Review where you realised: “I keep re-explaining the architecture to AI agents. What if the project could answer for itself?” That’s continuous improvement driving innovation.
10. Putting It All Together — Your Sprint Template
Here’s a concrete template for running your next Sprint on headhunter-agent:
Key Takeaways for Your Mentee
Scales down, not up. All Scrum roles, events, and artifacts work for a solo developer. You just collapse the roles into one person and timebox the events aggressively.
The tracker is your backlog.
data/applications.mdis already a Kanban board. Add aSprintcolumn and you have a complete Agile project management tool in markdown.D2 diagrams are your velocity chart. Every blog post documents a Sprint. The D2 diagrams serve as Sprint Review documentation — visual proof of what shipped.
The Daemon is your retrospective output. The MCP server exists because you identified waste (#3 — relearning) and eliminated it by making the project self-documenting.
Continuous improvement is real. Three Sprints ago, the headhunter-agent had no tests, no CI, and no Daemon. Now it has all three. That’s not magic — that’s one actionable change per retrospective, compounded.
Repository
The full source is at gitlab.com/nurazhar/headhunter-agent. The Product Backlog is whatever issue you open next. The Sprint starts when you decide to ship something. Go build.