Introduction to
Software Engineering or
"how to JOYFULLY BUILD
with a TEAM"
Prof. Jérémie Lumbroso, Ph.D.
lumbroso@seas.upenn.edu
⚠️➡️ RIGHT NOW, go to https://sli.do
Code #27232327
LECTURE 6:
Agile & User Stories—Evolving Requirements Iteratively
⚠️➡️ RIGHT NOW, go to https://sli.do
Code #27232327
1
2
3
4
5
6
7
8
9
10
Please enter the table number you are sitting at?
⚠️➡️ RIGHT NOW, go to https://sli.do
Code #27232327
We’re starting with a quick, hands-on challenge to see how you work together under pressure.
The details are on the next slides. Ready yourselves—when time starts, you’re on your own.
Be Prepared To Form Teams
Mission:
In 7 minutes, produce the highest possible number of paper airplanes that meet our basic quality requirements.
Groups: ~4-6 students per team
Time: 7 minutes total
Form teams quickly—move to sit together or turn your chairs around so you can collaborate.
Your job: make as many acceptable planes as possible before time runs out.
Must-Fly Distance: Plane must fly at least 2 meters
Must-Have: Your team’s name or logo clearly visible
We’ll do a quick flight test at the end. If it doesn’t reach 2 meters, it doesn’t count.
If it’s not marked with your team’s name or logo, it doesn’t count.
Everything else (design, folding technique, decoration) is completely up to you.
Rules for Round 1:
No assigned roles (no designated leader, tester, or anything else).
No sprints or timeboxes. Just do whatever you want.
7 minutes total.
“You don’t have a ‘Scrum Master,’ there’s no mandatory planning—just get to work.”
“You can coordinate however you like (or not). We won’t intervene.”
"This is How IT Projects Really Work" posted via Dashi Blog on February 22nd, 2004
From:
From The Oregon Experiment (1975)
We are uncovering better ways of developing software by doing it and helping others do it.
Published 2001 by 17 developers (incl. Ward Cunningham)
The Agile Manifesto website lists nearly 20,000 supporters from 2002 to 2016, when signatures stopped being accepted.
via Rebecca Koeser: https://us-rse.org/blog/2019/rsk/best-practices/
(Optional) Show a quick Scrum board or Kanban board image.
“As a [user], I want [goal], so that [benefit].”
🔹 I - Independent
🔹 N - Negotiable
🔹 V - Valuable
🔹 E - Estimable
🔹 S - Small
🔹 T - Testable
"As a user, I want to reset my password via email so that I can regain access to my account."
✅ Independent, valuable, and testable.
✅ Can be negotiated (e.g., method of password reset).
✅ Estimable and small enough for a sprint.
❌ "As a user, I want a dashboard with all possible metrics so that I can track everything about my performance."
🔎 What's wrong?
✅ Better version: "As a user, I want to see my monthly sales metrics on a dashboard so that I can track my performance over time."
Answer:
❌ "As a developer, I want to add an API for order processing."
🔎 What's wrong?
✅ Better version: "As a customer, I want my orders to be processed in real-time so that I receive confirmation immediately."
Answer:
❌ "As a user, I want to receive email notifications when something changes in the system."
🔎 What's wrong?
✅ Better version: "As a user, I want to receive an email when my password is changed so that I can be alerted to security risks."
Answer:
❌ "As a user, I want the search function to be really fast."
🔎 What's wrong?
✅ Better version: "As a user, I want search results to load within 2 seconds so that I can quickly find what I need."
Answer:
❌ "As a user, I want to upload documents and share them with my team in multiple formats while integrating with Dropbox, Google Drive, and OneDrive."
🔎 What's wrong?
✅ Better version: "As a user, I want to upload documents so that I can store them securely in the system." (Other features can be separate stories.)
Answer:
Spec (System/Technical Requirement) | Corresponding User Stories |
---|---|
Spec 1: The system must allow visitors to view health plan options before creating an account. Rationale: To reduce friction for first-time users and encourage plan exploration. |
• Story 1: “As a first-time visitor, I want to browse available health plans without logging in, so that I can see my options before registering.” • Story 2: “As a curious shopper, I want to see plan prices and coverage at a glance, so that I can quickly assess whether enrollment is worth my time.” |
Spec 2: The system must support at least 2,000 concurrent users without significant performance degradation. Rationale: Prevent site crashes under high demand (e.g., open enrollment). |
• Story 3: “As a returning user, I want the site to load within 2 seconds, so that I can quickly update my information during the busy enrollment period.” • (Also ties in to multiple other user stories requiring fast response times under load.) |
Spec 3: The system must comply with HIPAA regulations for protecting personal health information. Rationale: Legal/regulatory compliance. |
• Story 4: “As a user, I want my personal data to remain confidential, so that I feel safe providing accurate health information.” • Story 5: “As a security officer, I need to ensure all user data is encrypted at rest and in transit, so that we remain HIPAA-compliant.” |
Spec 4: The user’s account creation process must incorporate identity verification steps (e.g., multi-factor authentication). | • Story 6: “As a first-time applicant, I want to verify my identity securely, so that I can trust my account is protected and meets regulatory requirements.” • Story 7: “As a user, I want optional two-factor authentication, so that I have extra security if I choose.” |
Spec 5: The system must provide a robust error-handling mechanism, displaying clear user-friendly messages on failure. | • Story 8: “As a user, if something goes wrong when submitting my enrollment, I want to see an error message that explains the next steps, so that I’m not stuck.” • Story 9: “As a customer support rep, I want error logs to be easily traceable, so that I can quickly resolve user issues.” |
Spec 6: The platform must store user plan selections and enrollment details to be retrieved later. | • Story 10: “As an enrolled user, I want to review my chosen health plan details, so that I can verify my coverage anytime.” • Story 11: “As a returning user, I want to pick up where I left off in my application, so that I don’t need to re-enter information.” |
Level | Description | Example |
---|---|---|
Epic | A large user need or objective, spans multiple sprints | “Manage an on-campus food ordering and delivery system” |
Story | A small, specific user requirement that fits in 1 sprint | “As a student, I want to add a meal to my Favorites, so I can reorder quickly” |
Task | Technical or smaller sub-step to implement part of a story | “Create database table ‘Favorites’ with userId, mealId columns” |
Minecraft is one of the most successful games in the history of game development, especially if you take development cost into consideration.
Minecraft is also one of the most extreme examples of the release-early-and-often mindset. The first public release was made after just 6 days of coding, by one guy ! You couldn’t do much in the first version – it was basically an ugly blocky 3d-landscape where you can dig up blocks and place them elsewhere to build crude structures.
Text
User story: “As a student, I want to favorite certain meal choices, so I can reorder them quickly.”
Acceptance Criteria (sample):
Key Points:
Assign Roles (quickly within the team):
Timebox Structure (example):
Possible Discussion Questions: