SEFU

Agile Development Perspective

Exploring agile methodology principles, practices including XP, Scrum, and Kanban, and guidance on when to use agile versus plan-and-document approaches

Agile Development Perspective

In response to the limitations of traditional plan-and-document approaches, the agile philosophy emerged in 2001 with the Agile Manifesto. Agile prioritizes flexibility, collaboration, and rapid delivery over rigid processes and comprehensive documentation.

The Four Key Principles

The Agile Manifesto establishes four fundamental values that guide all agile practices:

1. Individuals and Interactions Over Processes and Tools

What It Means:

  • People matter more than procedures
  • Communication is more valuable than documentation
  • Teams should adapt processes to their needs, not the reverse

In Practice:

  • Daily standups to synchronize the team
  • Face-to-face conversations over lengthy emails
  • Flexible team structures that evolve with project needs
  • Tools that serve the team, not vice versa

"The most efficient and effective method of conveying information to and within a development team is face-to-face conversation."

2. Working Software Over Comprehensive Documentation

What It Means:

  • Deliverable software is the primary measure of progress
  • Documentation supports development, not the reverse
  • Just enough documentation to be useful

In Practice:

  • Working software demonstrated every iteration
  • Self-documenting code through clear naming and structure
  • Minimal documentation focused on essential information
  • Documentation evolves with the software

"Working software is the primary measure of progress."

3. Customer Collaboration Over Contract Negotiation

What It Means:

  • Customers are partners, not adversaries
  • Requirements emerge through ongoing dialogue
  • Contracts should enable collaboration, not restrict it

In Practice:

  • Customer representatives embedded or regularly available
  • Continuous feedback loops with stakeholders
  • Flexible contracts that accommodate change
  • Shared ownership of outcomes

"The best architectures, requirements, and designs emerge from self-organizing teams."

4. Responding to Change Over Following a Plan

What It Means:

  • Change is expected and embraced
  • Plans are living documents, not rigid contracts
  • Adaptability is a competitive advantage

In Practice:

  • Regular reassessment of priorities
  • Short iterations enable quick pivots
  • Technical practices that support change (refactoring, testing)
  • Strategic alignment maintained through frequent validation

"Welcome changing requirements, even late in development."

Incremental Development

Agile development delivers software in small, usable increments rather than one large release:

Characteristics of Incremental Delivery

CharacteristicDescription
Small BatchesEach increment adds visible value
Rapid FeedbackUsers see progress quickly
Reduced RiskFailures are small and recoverable
Continuous ValidationEach iteration confirms direction
Evolving ArchitectureDesign emerges and adapts

Benefits of Incremental Development

  • Early Value Delivery: Users benefit from partial functionality sooner
  • Risk Mitigation: Problems are caught and corrected early
  • Flexibility: Direction can change based on learning
  • Motivation: Visible progress boosts team morale
  • Learning: Each iteration provides data for improvement

Agile Approaches

Several frameworks and methodologies embody agile principles:

Extreme Programming (XP)

XP focuses on technical excellence and close customer collaboration:

Core Practices:

PracticeDescription
Pair ProgrammingTwo developers work together at one computer
Test-Driven Development (TDD)Write tests before writing code
Continuous IntegrationIntegrate and test code frequently
RefactoringContinuously improve code structure
Small ReleasesFrequent, small deployments
Collective OwnershipAnyone can change any code
Sustainable PaceAvoid burnout with sustainable work hours
On-site CustomerCustomer available to the team

When XP Works Best:

  • Small to medium-sized teams
  • Projects with rapidly changing requirements
  • Teams prioritizing technical quality
  • Projects where customer involvement is possible

Scrum

Scrum provides a structured framework for managing iterative work:

Scrum Roles:

RoleResponsibility
Product OwnerOwns the product vision and priorities
Scrum MasterFacilitates the process and removes obstacles
Development TeamCross-functional team that does the work

Scrum Events:

  • Sprint Planning: Define what will be delivered in this iteration
  • Daily Standup: 15-minute synchronization meeting
  • Sprint Review: Demonstrate working software to stakeholders
  • Sprint Retrospective: Team reflects and improves their process

When Scrum Works Best:

  • Medium to large teams
  • Complex projects with evolving requirements
  • Organizations transitioning to agile
  • Projects requiring regular stakeholder feedback

Kanban

Kanban uses a visual system to manage workflow:

Kanban Principles:

PrincipleDescription
Visualize WorkMake the workflow visible
Limit Work in Progress (WIP)Focus on finishing before starting
Manage FlowOptimize for smooth progress
Make Policies ExplicitClear rules for the workflow
Implement Feedback LoopsRegular inspection and adaptation
Improve CollaborativelyUse models and metrics

Kanban Benefits:

  • No prescribed roles or ceremonies
  • Continuous delivery model
  • Visualizes bottlenecks
  • Highly flexible and adaptable

When Kanban Works Best:

  • Support and maintenance teams
  • Continuous flow environments
  • Teams that cannot work in sprints
  • Organizations with multiple work types

Agile vs. Plan and Document: Choosing the Right Approach

Decision Factors

FactorLean Toward Plan & DocumentLean Toward Agile
Requirements StabilityWell-defined and stableEvolving and uncertain
Project SizeSmall to mediumMedium to large
Team LocationCo-locatedDistributed or co-located
Customer AvailabilityLimited involvementAvailable for collaboration
Technical RiskWell-understood domainInnovative or uncertain
Regulatory NeedsRequires documentationFlexible documentation accepted
Time to MarketFixed deadline, clear scopeNeed for rapid iteration
Team ExperienceJunior teamExperienced, self-organizing

When to Choose Plan and Document

Use Waterfall or similar when:

  • Requirements are clearly understood and unlikely to change
  • The technology and domain are well-understood
  • Regulatory or contractual requirements mandate extensive documentation
  • The project is small with a fixed scope
  • Long-term planning is required for budgeting
  • The team is inexperienced with agile practices

When to Choose Agile

Use Agile when:

  • Requirements are not fully understood at the start
  • Changes are expected and welcomed
  • Rapid delivery of value is prioritized
  • Customer collaboration is possible
  • The project is complex or innovative
  • The team is experienced and self-organizing
  • Continuous feedback is valued

Sommerville's Guidance: When to Use Which Approach

Based on software engineering principles (Sommerville, Addison Wesley):

Quick Decision Guide

QuestionYes = AgileNo = Plan & Document
Are requirements likely to change during development?
Do you need to deliver working software quickly?
Is the customer available for regular collaboration?
Is the project small with stable requirements?
Does the contract require fixed scope?
Is technical risk low and well-understood?
Do you need comprehensive documentation?
Is the team experienced and self-organizing?

Project Context Matrix

Project TypeRecommended ApproachRationale
Web ApplicationAgileRapid iteration, changing requirements
Embedded SystemPlan & DocumentFixed requirements, safety-critical
Mobile AppAgileUser feedback essential, evolving features
Legacy System MigrationHybridMix of approaches based on component
API DevelopmentAgileContinuous improvement expected
Safety-Critical SystemPlan & DocumentRigorous documentation required
Startup MVPAgileRapid learning, changing direction
Infrastructure ProjectHybridSome stability, some evolution
  • Incremental Development: Delivering value in small, usable increments with rapid feedback

  • Agile Approaches:

    • XP: Technical excellence through practices like TDD and pair programming
    • Scrum: Structured framework with sprints, roles, and events
    • Kanban: Visual workflow management with continuous delivery
  • Choosing the Right Approach: Consider requirements stability, project size, team experience, and organizational context

Modern software development often employs hybrid approaches, taking the best elements from both agile and plan-and-document methodologies to suit specific project needs.

On this page