5.3Before and After: Three Amigos in Action
Example 1: Profile Photo Upload
Before three amigos:
"As a user, I want to upload a profile photo."
QA's questions during the session:
- What file formats are accepted?
- What is the maximum file size?
- What is the minimum resolution?
- Should the system crop to a specific aspect ratio?
- What happens if the upload fails mid-transfer?
- Can users upload animated GIFs?
- What about EXIF data (orientation, location)?
- Is there a content moderation requirement?
- What happens to the existing photo if the new upload fails?
- Can multiple devices upload simultaneously?
After three amigos:
"As a user, I want to upload a profile photo (JPEG, PNG, or WebP, max 5MB, min 100x100px). The system should crop to a square, show a preview before saving, and display a clear error message if the file is too large, wrong format, or too small. Existing photo should be kept if upload fails. EXIF orientation should be respected. Animated GIFs are not supported in v1."
Example 2: Search Feature
Before three amigos:
"As a user, I want to search for products."
Developer's questions:
- Full-text search or exact match?
- Do we search product name, description, or both?
- Do we need pagination?
- What about search performance with 100K products?
QA's questions:
- What happens with an empty search?
- What about special characters or SQL injection?
- How fast should results appear? Is there a debounce?
- What if there are no results?
- Do search terms persist across page navigation?
- Is search history saved?
- What about fuzzy matching (typos)?
After three amigos:
"As a user, I want to search products by name or description with full-text search. Results appear within 500ms, paginated at 20 per page. Empty search shows all products. No results shows 'No products found' message with suggested categories. Search input has 300ms debounce. Special characters are escaped (no injection). Fuzzy matching is out of scope for v1."