Agile Methodology

Contents

Agile Principles

Core Values

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

12 Agile Principles

  1. Customer satisfaction through early and continuous delivery
  2. Welcome changing requirements, even late in development
  3. Deliver working software frequently
  4. Business people and developers work together daily
  5. Build projects around motivated individuals
  6. Face-to-face conversation is the best communication
  7. Working software is the primary measure of progress
  8. Maintain a sustainable development pace
  9. Continuous attention to technical excellence
  10. Simplicity is essential
  11. Self-organizing teams
  12. Regular reflection and adaptation

Scrum Framework

Roles

  • Product Owner
    • Defines product vision
    • Manages product backlog
    • Prioritizes features
  • Scrum Master
    • Facilitates ceremonies
    • Removes impediments
    • Protects team from interruptions
  • Development Team
    • Self-organizing
    • Cross-functional
    • Typically 3-9 members

Sprint Planning Example

// Sprint Planning Template { "sprintNumber": 12, "duration": "2 weeks", "startDate": "2025-08-25", "endDate": "2025-09-08", "sprintGoal": "Complete user authentication system", "velocity": 40, "selectedStories": [ { "id": "US-123", "title": "User Registration", "points": 8, "tasks": [ "Design registration form", "Implement form validation", "Create API endpoint", "Add email verification" ] }, { "id": "US-124", "title": "User Login", "points": 5, "tasks": [ "Design login form", "Implement authentication", "Add JWT token handling" ] } ], "teamCapacity": { "availableDays": 10, "teamMembers": 5, "focusFactor": 0.7 } }

Kanban Method

Core Principles

  • Visualize work
  • Limit work in progress (WIP)
  • Manage flow
  • Make process policies explicit
  • Implement feedback loops
  • Improve collaboratively

Kanban Board Configuration

// Kanban Board Settings { "board": { "name": "Development Board", "columns": [ { "name": "Backlog", "wipLimit": null }, { "name": "Ready", "wipLimit": 5 }, { "name": "In Progress", "wipLimit": 3 }, { "name": "Code Review", "wipLimit": 2 }, { "name": "Testing", "wipLimit": 2 }, { "name": "Done", "wipLimit": null } ], "swimlanes": [ "High Priority", "Normal Priority", "Low Priority" ], "metrics": { "cycleTime": true, "leadTime": true, "throughput": true, "blockageTime": true } } }

Agile Ceremonies

Daily Standup

  • 15 minutes timeboxed
  • Three questions:
    • What did you do yesterday?
    • What will you do today?
    • Any impediments?
  • Standing meeting
  • Same time and place

Sprint Review Template

{ "sprintReview": { "date": "2025-09-08", "duration": "1 hour", "completedStories": [ { "id": "US-123", "demo": "User registration flow", "acceptanceCriteria": [ "Form validation works", "Email verification sent", "User data stored correctly" ], "stakeholderFeedback": [ "Add password strength indicator", "Improve error messages" ] } ], "metrics": { "plannedPoints": 40, "completedPoints": 35, "velocity": 35 }, "nextSteps": [ "Incorporate feedback into backlog", "Schedule UX review for login flow" ] } }

Estimation Techniques

Planning Poker

  • Fibonacci sequence (1, 2, 3, 5, 8, 13, 21)
  • Everyone estimates simultaneously
  • Discuss differences
  • Re-estimate if needed

Story Point Calculator

function calculateStoryPoints(complexity: number, effort: number, uncertainty: number): number { // Each factor rated 1-5 const weightedScore = (complexity * 0.4) + (effort * 0.4) + (uncertainty * 0.2); // Convert to Fibonacci const fibSequence = [1, 2, 3, 5, 8, 13, 21]; const normalizedScore = Math.ceil(weightedScore); // Find closest Fibonacci number return fibSequence.reduce((prev, curr) => Math.abs(curr - normalizedScore) < Math.abs(prev - normalizedScore) ? curr : prev ); }

Project Management Tools

Popular Tools

  • Jira
    • Agile boards
    • Custom workflows
    • Advanced reporting
  • Trello
    • Simple Kanban boards
    • Easy collaboration
    • Power-ups for added features
  • Azure DevOps
    • Integrated with development tools
    • CI/CD pipelines
    • Work item tracking

Integration Example

// Jira Webhook Configuration { "webhook": { "name": "Sprint Update Notification", "url": "https://api.team-chat.com/webhook", "events": [ "sprint_started", "sprint_closed", "issue_updated" ], "filters": { "issue-type": ["Story", "Bug"], "project-key": "PROJ" }, "excludes": { "issue-type": ["Sub-task"], "status": ["Backlog"] } } }