H M < >
CMU597: Industry Project - Lecture 11

Sprint 4: Final Build & Integration

Part A: Final Sprint Strategy | Part B: Final Build

James Williams

Birmingham Newman University

jwilliams@staff.newman.ac.uk

3-hour session • 2 parts • 2 team tasks

Session Timeline

Part A: Prioritisation & Final Sprint Strategy (90 minutes)

30 minutes: Lecture on feature prioritization and triage

45 minutes: Task 1 - Plan final sprint

15 minutes: Break

Part B: Final Feature Build (90 minutes)

30 minutes: Integration testing guidance

45 minutes: Task 2 - Build final features and test

15 minutes: Final system validation

Learning Objectives

  • Prioritize features under time constraints
  • Apply MoSCoW prioritization method
  • Make strategic trade-offs between features and stability
  • Conduct thorough integration testing
  • Identify and fix critical bugs before presentation
  • Freeze features at appropriate time
  • Complete end-to-end system testing
  • Prepare system for final demonstration

The Reality of Final Sprints

Truth: You probably have more ideas than time!

Common Situation:

  • 10 features you'd LOVE to build
  • 5 days until presentation
  • Some bugs still exist
  • Documentation needs updates
  • Demo needs practice
Key Decision: What gets built vs what gets cut?

MoSCoW Prioritization Method

MoSCoW: Must have, Should have, Could have, Won't have (this time)

Categories:

  • Must Have: Critical for MVP, demo fails without it
    Example: User login, core booking functionality
  • Should Have: Important but not critical, adds significant value
    Example: Email notifications, search filters
  • Could Have: Nice to have, adds polish
    Example: User profile pictures, dark mode
  • Won't Have: Explicitly out of scope for now
    Example: Mobile app, AI recommendations

How to Prioritize Features

For Each Feature, Ask:

  1. Does demo work without it?
    • No → Must have
  2. Does it significantly improve user value?
    • Yes → Should have
  3. How long will it take?
    • > 4 hours → Probably cut it
  4. How risky is it?
    • High risk of bugs → Probably skip
Golden Rule: A polished, working demo of 5 features beats a buggy demo of 10!

Feature Freeze

Feature Freeze: Point where you stop adding new features, only fix bugs.

Why Feature Freeze?

  • New features introduce new bugs
  • Need time to stabilize system
  • Focus on polishing what exists
  • Ensure demo readiness

Recommended Timeline:

5 days before: Build final features
3 days before: FEATURE FREEZE - Bug fixes only
2 days before: Final testing, demo practice
1 day before: Presentation rehearsal

Bug Triage: Which Bugs to Fix?

Severity Levels:

  • Critical (P0): System crashes, demo fails
    Fix immediately!
  • High (P1): Major features broken, bad user experience
    Fix before presentation
  • Medium (P2): Minor issues, workarounds exist
    Fix if time permits
  • Low (P3): Cosmetic issues, typos
    Document as "known issues"
Don't chase P3 bugs! Focus on what matters for demo.

Regression Testing

Regression: New code breaks previously working features.

Why It Happens:

  • Changed shared code
  • Modified database schema
  • Updated dependencies
  • Merged conflicting branches

Prevention:

  • ✓ Run full test suite after changes
  • ✓ Manual smoke test of core features
  • ✓ Demo walk-through after each merge
  • ✓ Keep changes small and isolated

Integration Testing

Integration Testing: Test how components work together (not in isolation).

What to Test:

  • Frontend ↔ Backend: Do API calls work?
  • Backend ↔ Database: Does data persist correctly?
  • Authentication Flow: Login → Protected Routes
  • External Services: Payment, email, maps API
  • End-to-End User Flows: Complete user journeys

Task 1: Plan Final Sprint

Instructions (Work in your project teams):

  1. List All Remaining Work (10 min):
    • Features not yet built
    • Known bugs (categorize by severity)
    • Documentation updates needed
    • Demo improvements wanted
  2. Apply MoSCoW (15 min):
    • Categorize each item (Must/Should/Could/Won't)
    • Estimate time for each item
    • Sum total time vs time available
  3. Create Final Sprint Plan (15 min):
    • Select MUST and HIGH PRIORITY items only
    • Ensure total < available time
    • Assign to team members
    • Set feature freeze date
  4. Document Cuts (5 min):
    • List features you're NOT building
    • Note them for "Future Work" slide

Time: 45 minutes

Deliverable: Final sprint plan with prioritized tasks and assignments

Break Time

15 Minutes

Take a break. Next: Building final features!

Part B: Final Feature Build

Part B: Final Feature Build

This is it! Last development sprint before presentations.

Today's Goals:

  • Implement 1-2 final features OR fix critical bugs
  • Run comprehensive integration tests
  • Verify demo flow works end-to-end
  • Document any remaining issues as "known issues"
  • System ready for presentation

End-to-End Testing Checklist

Manual Testing:

  • ✓ Complete user registration flow
  • ✓ Login with valid and invalid credentials
  • ✓ Navigate all main pages/features
  • ✓ Create/Read/Update/Delete operations
  • ✓ Test form validation (empty fields, invalid data)
  • ✓ Test error messages display correctly
  • ✓ Logout and verify session cleared
  • ✓ Test on multiple browsers (Chrome, Firefox)
  • ✓ Test responsive design (mobile, tablet, desktop)

Demo Rehearsal as Testing

Best Test: Run through your actual demo script!

Rehearsal Testing Process:

  1. Follow Demo Script Exactly:
    • Do EXACTLY what you'll do in presentation
    • Use same data, same clicks, same flow
  2. Note Any Issues:
    • Features not working as expected
    • Slow loading times
    • Confusing UI elements
  3. Fix Critical Issues:
    • Anything that would ruin demo
  4. Repeat Until Smooth:
    • Demo should run flawlessly 3 times in a row

Documenting Known Issues

Reality: Every system has bugs. Being transparent shows professionalism.
# Known Issues

## P2 - Medium Priority

### Issue: Search results slow with > 1000 records
**Impact:** Search takes 3-5 seconds with large datasets
**Workaround:** Currently testing with < 100 records
**Future Fix:** Add database indexing and pagination

### Issue: Email notifications occasionally delayed
**Impact:** Booking confirmation emails take 1-2 minutes
**Workaround:** Users can see confirmation on-screen immediately
**Future Fix:** Implement message queue (e.g., Bull, RabbitMQ)

## P3 - Low Priority

### Issue: Dark mode has some contrast issues
**Future Fix:** Comprehensive accessibility audit

Performance Considerations

Quick Performance Checks:

  • Page Load Time: Should be < 3 seconds
    • Check Chrome DevTools Network tab
    • Optimize large images
  • API Response Time: Should be < 1 second
    • Check browser console network timing
    • Add loading spinners if > 1 second
  • Database Queries: Avoid N+1 queries
    • Use database query logging
    • Optimize with indexes if needed
For Demo: If it's slow, add loading indicators so users know it's working!

Final Code Review Checklist

Before Feature Freeze:

  • ✓ All console.log() debug statements removed
  • ✓ No commented-out code blocks
  • ✓ No hardcoded passwords or API keys
  • ✓ All TODO comments addressed or documented
  • ✓ Code follows team conventions
  • ✓ Error messages are user-friendly (not technical stack traces)
  • ✓ All tests passing
  • ✓ No merge conflicts in main branch

Ensuring Deployment Works

Pre-Presentation Deployment Check:

  • Deploy to Production/Staging:
    • Don't demo from localhost if possible
    • Verifies deployment process works
  • Test Deployed Version:
    • Environment variables set correctly?
    • Database migrations ran?
    • All features work in prod?
  • Seed Production Data:
    • Create realistic demo data
    • Test accounts with good passwords (not "password123")
Test URL: Share deployed URL with team, everyone test it!

Task 2: Build Final Features & Test

Instructions (Work in your project teams):

  1. Implement Priority Items (25 min):
    • Work on assigned tasks from sprint plan
    • Focus on MUST-HAVE items only
    • Commit frequently
  2. Integration Testing (10 min):
    • Test features work together
    • Run demo script walk-through
    • Note any issues
  3. Fix Critical Bugs (5 min):
    • Address P0/P1 bugs found in testing
  4. Document Known Issues (5 min):
    • Create docs/known-issues.md
    • List remaining P2/P3 bugs

Time: 45 minutes

Deliverable: Final features implemented, system tested end-to-end

Lecture 11 Summary

  • MoSCoW method helps prioritize features under time constraints
  • Feature freeze prevents last-minute instability
  • Bug triage focuses effort on critical issues
  • Regression testing ensures new code doesn't break old features
  • Integration testing validates components work together
  • Demo rehearsal is effective end-to-end testing
  • Known issues should be documented transparently
  • Deploy and test in production environment before presentation

Next Lecture:

Final Presentation Sprint
Practice presentations, assessment criteria, and final preparation

Before Next Lecture (Final Session!)

  1. Implement Feature Freeze:
    • Complete final features TODAY
    • After today: bug fixes only!
  2. Final Testing:
    • Run demo 5+ times
    • Ensure zero critical bugs
    • Test on presentation computer if possible
  3. Complete Slides:
    • Finalize presentation slides
    • Get screenshots of working features
    • Prepare backup plan (video/screenshots)
  4. Team Practice:
    • Full run-through as team (15 min + Q&A)
    • Time each section
    • Smooth transitions between speakers
  5. Prepare for Assessment:
    • Review assessment criteria (next lecture)
    • Ensure all deliverables ready