Team Workflow: The Development Loop ππ€ β
Every program has a "Main Loop" that keeps it running. Agile teams have a main loop too. We call this loop a Sprint.
The Sprint (The Main Loop) π β
A Sprint is just a time-boxed loop, usually 2 weeks. Inside this loop, we do specific things to ensure we are making progress.
def sprint_cycle():
todo_list = plan_sprint()
while days_left > 0:
daily_check_in()
work_on_tasks()
show_finished_work()
improve_process()1. The Roles (Who does what?) π β
The Product Owner (The "Client") π
- Decides what to build.
- Like the person giving you the homework assignment. They define the "Input" and expected "Output".
The Scrum Master (The "Debugger") π§ββοΈ
- Helps the team run smoothly.
- If your computer crashes, they help fix it. If you are stuck, they unblock you. They optimize the process.
The Developers (The "Builders") π οΈ
- The people writing the code.
- They decide how to build it.
2. The Events (The Functions) π β
Sprint Planning (Initialization) β
- When: Day 1.
- Goal: Pick items from the "Backlog" (Task List) that fit into the Sprint.
- Analogy: Deciding which homework problems to tackle this weekend. You can't do all of them, so you pick the most important ones.
Daily Stand-up (The Heartbeat) β β
- When: Every morning (15 mins).
- Goal: Sync up.
- The 3 Questions:
- What did I finish yesterday?
- What am I doing today?
- Am I stuck? (Syntax Error? Logic Error?)
Sprint Review (The Demo) π β
- When: Last Day.
- Goal: Show the working software.
- Rule: It must run! No PowerPoint slides. If it crashes, that's okayβit's feedback.
Sprint Retrospective (The Optimization) π β
- When: After the Review.
- Goal: How can we code faster/better next time?
- Example: "We kept forgetting to save our files to GitHub. Let's make a rule to push code every day."
The 3 Artifacts (The Data) π¦ β
Just like a program has data structures, Scrum has 3 main artifacts to track progress:
- Product Backlog (The "Wishlist"): An ordered list of everything we might build. It's never "complete".
- Sprint Backlog (The "To-Do List"): The specific items we picked for this Sprint.
- Increment (The "Output"): The sum of all completed backlog items. It must be working code.
A Day in the Life: The App Team π± β
Let's walk through a real cycle for a Python team building a Web App.
- Monday (Planning):
- Goal: Build "User Login".
- Task: "Dev A writes the SQL Schema. Dev B writes the Flask Route."
- Wednesday (Stand-up):
- Dev A: "I pushed the Schema."
- Dev B: "I'm stuck. Error:
ConnectionRefusedwhen connecting to DB." - Scrum Master: "Check your
.envfile. I'll help you debug after this."
- Friday (Review):
- Team demos the login.
- Client: "Great! Can we also add Google Login?"
- Product Owner: "Good idea, we'll add that to the backlog for next time."
- Friday (Retro):
- Issue: "We forgot to update
requirements.txtagain." - Fix: "Let's add a pre-commit hook to check dependencies automatically."
- Issue: "We forgot to update
Insight
This structure stops us from getting distracted. We focus on a few things, finish them, and then move on.
Quiz
Who decides how much work to pull into a Sprint? A) The Product Owner (The Boss) B) The Scrum Master (The Coach) C) The Development Team (The Builders)