Agile Development

Advanced Software Engineering

What is Agile Development?

  • A style of software development that aims for speed and adaptability
  • Instead of spending months designing everything up front...
    Release early, then improve continuously
  • Focus on user feedback, iteration, and value delivery

A good fit for web services, mobile apps, and fast-changing markets

Advanced Software Engineering

Why Agile?

  • Traditional (waterfall) development often:
    • Takes too long
    • Delivers features no one uses
    • Misses market timing
  • Agile aims to:
    • Deliver early and often
    • Respond to change
    • Prioritize working software
Advanced Software Engineering

Agile vs. Non-Agile: The Car Analogy

We want to build a vehicle:

  • Non-Agile (Waterfall)
    • Release 1: Tires
    • Release 2: Engine
    • Release 3: Steering wheel
    • ... → Finally, a car (but too late)

No one wants just tires

Advanced Software Engineering
  • Agile
    • Release 1: Skateboard
    • Release 2: Bicycle
    • Release 3: Motorcycle
    • ... → Car (validated step-by-step)

Always deliver something usable

Advanced Software Engineering

center
Henrik Kniberg: Making sense of MVP

Advanced Software Engineering

Agile in Practice

  • Work is divided into iterations (e.g., 1–2 weeks)
  • Each iteration delivers a working product
  • Continuous cycle of:
    1. Plan
    2. Build
    3. Test
    4. Review
    5. Improve
Advanced Software Engineering

Summary

Agile development is a flexible and user-focused approach.
It emphasizes:

  • Fast and frequent releases
  • Continuous improvement
  • Collaboration and customer feedback
  • Well-suited for web and mobile products
Advanced Software Engineering