Skip to main content

03 - Agile Methodology: Iterative and Incremental Development

The Agile Manifesto in detail: 4 values, 12 principles, user stories, backlog management and metrics (velocity, burndown) with practical examples.

What do you think about this article?

At a Glance

The Agile Manifesto in detail: 4 values, 12 principles, user stories, backlog management and metrics (velocity, burndown) with practical examples.

Agile Methodology: Iterative and Incremental Development

The Agile methodology represents a revolution in software development. Born as a reaction to the limitations of traditional methods, Agile promotes flexibility, collaboration, and continuous value delivery to the customer.

🎯 What You'll Learn

  • The 4 values of the Agile Manifesto and their meaning
  • The 12 Agile principles in detail with practical examples
  • Iterative and incremental cycle: how it works
  • Agile mindset and culture
  • User stories and backlog management
  • Agile metrics: velocity, burndown, burnup
  • Common challenges in Agile adoption

The Birth of Agile: The Manifesto

In February 2001, 17 developers met at a ski resort in Snowbird, Utah. Their goal: find an alternative to the heavy, bureaucratic processes that dominated the software industry. From this meeting, the Agile Manifesto was born.

📜 The 4 Values of the Agile Manifesto

The Manifesto is based on 4 fundamental values. Note: it's not about eliminating the elements on the right, but valuing more those on the left.

The 4 Values
1️⃣ Individuals and interactions > Processes and tools
   └─ People are the heart of the project

2️⃣ Working software > Comprehensive documentation
   └─ Working code is the true measure of progress

3️⃣ Customer collaboration > Contract negotiation
   └─ Active partnership instead of rigid contracts

4️⃣ Responding to change > Following a plan
   └─ Adaptability is more important than rigid planning

Value 1: Individuals and Interactions

Agile recognizes that software is built by people, not processes. Face-to-face communication is more effective than complex documents and tools.

👥 In Practice

  • Co-located teams (same room) when possible
  • Daily standup meetings (15 min)
  • Pair programming and mob programming
  • Retrospectives for continuous improvement
  • Self-organizing teams

❌ Anti-Pattern

  • Communication only via email/ticketing
  • Team silos without interaction
  • Complex tools that slow down
  • Top-down micromanagement
  • Lack of trust in the team

Value 2: Working Software

Working software is the primary metric of progress. Better working code with minimal documentation than perfect documents without code.

💻 What It Means

  • Potentially releasable: Each iteration produces deployable software
  • Frequent increments: Releases every 1-4 weeks instead of months
  • Early feedback: Customer sees the product immediately and can provide input
  • Definition of Done: Clear criteria for "completed" (tested, integrated, documented)
Example: Definition of Done
✅ DEFINITION OF DONE (DoD)
A user story is "Done" when:

□ Code written and peer reviewed
□ Unit tests written (coverage ≥ 80%)
□ Integration tests passed
□ API documentation updated
□ No critical bugs open
□ Product Owner approval
□ Deployed to staging environment
□ Acceptance criteria satisfied

Value 3: Customer Collaboration

The customer is not an "enemy" to protect yourself from with rigid contracts, but a collaborative partner who works together with the team.

🤝 Continuous Involvement

  • Product Owner: Customer representative in the team (in Scrum)
  • Sprint Reviews: Demo of completed work every iteration
  • Backlog Refinement: Continuous prioritization with the customer
  • Rapid feedback: Changes accepted and managed
  • Transparency: Customer has complete visibility on progress and issues

Value 4: Responding to Change

Requirements change. Market changes. Technology changes. Agile embraces change instead of resisting it.

🔄 Agile Approach

  • Adaptive planning (rolling wave)
  • Backlog as dynamic tool
  • Priorities re-evaluated every iteration
  • Emergent architecture
  • Continuous refactoring

📋 Waterfall Approach

  • Complete upfront planning
  • Requirements freeze
  • Formal Change Request (expensive)
  • Big Design Up Front (BDUF)
  • Resistance to change

The 12 Agile Principles

Beyond the 4 values, the Manifesto includes 12 principles that guide Agile team behavior:

The 12 Agile Principles
🎯 CUSTOMER SATISFACTION
1. Continuous delivery of value to customer
   └─ Frequent and incremental releases

2. Welcome changing requirements
   └─ Even late in development

⏱️ TIME-TO-MARKET
3. Deliver working software frequently
   └─ From weeks to months (preferably weeks)

🤝 COLLABORATION
4. Business people and developers work together
   └─ Daily collaboration

5. Build projects around motivated individuals
   └─ Give support and trust to the team

6. Face-to-face conversation
   └─ Most effective way to communicate

💯 QUALITY
7. Working software is the measure of progress
   └─ Not documents or completion percentages

8. Sustainable development
   └─ Maintain constant pace indefinitely

9. Continuous attention to technical excellence
   └─ Quality design improves agility

🔄 CONTINUOUS IMPROVEMENT
10. Simplicity: maximize work not done
    └─ Do only what's necessary (YAGNI)

11. Self-organizing teams
    └─ Best solutions emerge from the team

12. Regular retrospectives
    └─ Reflect and adapt behavior

Principles 1-3: Customer Focus

1. Customer Satisfaction Through Continuous Delivery

Objective: Maximize value delivered to customer through frequent and regular releases.

Practical example:

  • E-commerce: Release every 2 weeks with new features
  • SaaS: Continuous deployment (CD) with feature flags
  • Mobile app: Bi-weekly updates on store

2. Welcome Change

Mindset: Changes in requirements are a competitive advantage, not a problem.

Scenario: Customer requests different feature at 70% project completion

  • ❌ Waterfall: "Too late, Change Request with extra costs"
  • ✅ Agile: "Let's update the backlog and reprioritize"

3. Frequent Deliveries (Timeboxing)

Rhythm: Short iterations of 1-4 weeks (sprints).

Sprint Length Pros Cons When to Use
1 week Very rapid feedback Little time for complex features Senior teams, mature products
2 weeks Balanced (most common) - Standard Scrum
3 weeks More space to complete Less frequent feedback Distributed teams
4 weeks Larger features Risk of scope creep Junior teams, high complexity

Principles 4-6: Collaboration

4. Business and Dev Work Together Daily

The Product Owner (or customer) is an active part of the team, not just at the beginning and end.

Practices:

  • Product Owner available for clarifications (same office or Slack/Teams)
  • Participation in daily standup (optional)
  • Sprint Planning together
  • Sprint Review with demo

5. Motivated and Supported Teams

Give the team autonomy, tools, and trust.

How to motivate:

  • Ownership of work (team decides "how")
  • Comfortable work environment
  • Continuous training
  • Public recognition of successes
  • Respected work-life balance

6. Face-to-Face Conversation

The most effective communication is direct and synchronous.

Effectiveness hierarchy:

  1. 🥇 Face-to-face in same room (best)
  2. 🥈 Video call (second best)
  3. 🥉 Voice call
  4. 📧 Chat/Slack (quick but risk of misunderstandings)
  5. 📄 Email (slow, formal)
  6. 📋 Documentation (reference, not primary communication)

Principles 7-9: Quality and Sustainability

7. Working Software as Metric

Don't measure progress with lines of code, documents, or "completion percentage". Measure with completed and deployable features.

Agile Metrics:

  • Velocity: Story points completed per sprint
  • Burndown Chart: Remaining work vs time
  • Lead Time: Time from request to production
  • Deployment Frequency: How many releases/week

8. Sustainable Pace (No Crunch Time)

Problem: Overloaded teams burn out and make mistakes.

Agile Solution:

  • Realistic sprint planning (don't overcommit)
  • 40 hours/week as norm
  • Overtime only exceptionally and briefly
  • Historical velocity as guide
  • Team has right to say "no" to excessive pressure

"Agile is a marathon, not a sprint (ironically!)"

9. Technical Excellence and Good Design

Speed without quality leads to technical debt that slows the future.

Agile technical practices:

  • TDD (Test-Driven Development): Tests before code
  • Continuous refactoring: Improve design without changing behavior
  • Code reviews: Mandatory peer reviews
  • CI/CD: Continuous Integration and Deployment
  • Coding standards: Lint, formatters, static analysis
  • Pair/Mob Programming: Quality through collaboration

Principles 10-12: Simplicity and Improvement

10. Simplicity (YAGNI - You Aren't Gonna Need It)

Principle: Do only what's necessary now. Don't anticipate hypothetical future requirements.

Examples:

  • ❌ Build super-flexible system for "future needs"
  • ✅ Implement exactly what's needed today, refactor tomorrow if needed
  • ❌ Over-engineering with complex design patterns
  • ✅ Simple solution that works

11. Self-Organizing Teams

The team decides how to realize the work. No top-down micromanagement.

Characteristics:

  • Cross-functional: Team has all necessary skills
  • Self-organizing: Distributes tasks internally
  • Empowered: Authority to make technical decisions
  • Accountable: Responsible for results

12. Retrospectives and Inspect & Adapt

Kaizen (改善): Continuous improvement, small and constant.

Sprint Retrospective: Event at the end of each sprint to reflect.

  • Key questions:
    • What went well? (keep doing)
    • What went wrong? (stop doing)
    • What can we improve? (start doing)
  • Output: 1-3 concrete action items for next sprint
  • Rule: Safe space, no blame, focus on process

Iterative and Incremental Cycle

The heart of Agile is iterative (repeated in cycles) and incremental (each cycle adds value) development.

Typical Agile Iteration (Scrum Sprint)
📅 SPRINT (2 weeks example)

🔵 DAY 1: SPRINT PLANNING (4 hours)
├─ Part 1: WHAT (2 hours)
│  ├─ Product Owner presents backlog priorities
│  ├─ Team selects user stories for sprint
│  └─ Sprint Goal defined
└─ Part 2: HOW (2 hours)
   ├─ Team breaks down stories into tasks
   ├─ Estimate effort in hours
   └─ Sprint Backlog created

🟢 DAYS 2-9: DEVELOPMENT
├─ Daily Standup every morning (15 min)
│  ├─ What did I do yesterday?
│  ├─ What will I do today?
│  └─ Do I have impediments/blockers?
├─ Coding, testing, continuous integration
├─ Backlog Refinement (mid-sprint, 1 hour)
└─ Collaboration with Product Owner

🟡 DAY 10: SPRINT REVIEW (2 hours)
├─ Demo of completed work
├─ Stakeholders provide feedback
├─ Product Owner accepts/rejects stories
└─ Backlog updated with insights

🔴 DAY 10: SPRINT RETROSPECTIVE (1.5 hours)
├─ What went well?
├─ What went wrong?
├─ Action items to improve
└─ Team commitment

🔵 Repeat cycle with new Sprint...

User Stories and Backlog Management

📝 User Stories

User stories are the Agile way of capturing requirements. Format:

"As [user type], I want [action] so that [benefit]"

User Story Examples
✅ WELL-WRITTEN STORY
As an e-commerce customer,
I want to save products in a wishlist
so that I can purchase them in the future without searching again.

Acceptance Criteria:
- "Add to Wishlist" button on every product
- "My Wishlist" page accessible from header
- Ability to remove items from wishlist
- Wishlist persists between sessions (login required)

Story Points: 5
Priority: Medium

---

✅ TECHNICAL STORY (SPIKE)
As a development team,
I want to explore NoSQL databases (MongoDB vs DynamoDB)
so that we can choose the best solution for our use case.

Acceptance Criteria:
- Proof of concept with both
- Comparison document (performance, cost, scalability)
- Final recommendation

Timebox: 3 days
Priority: High (blocker)

📚 Product Backlog

  • Ordered list of all work
  • Prioritized by Product Owner
  • Continuously evolving (living document)
  • Top items more detailed (ready)
  • Bottom items vague (placeholder)

📋 Sprint Backlog

  • Subset of Product Backlog
  • Work for this sprint
  • Owned by Development Team
  • Broken down into tasks (2-8 hours)
  • Updated daily

Agile Metrics

1. Velocity

Definition: Story points completed per sprint (average).

Velocity Chart Example
Sprint | Committed | Completed | Velocity
-------|-----------|-----------|----------
   1   |    20     |    15     |   15
   2   |    18     |    18     |   16.5
   3   |    20     |    17     |   16.7
   4   |    17     |    19     |   17.3
   5   |    18     |    18     |   17.4 ← Stabilized

📊 Insights:
- Team has velocity ~17-18 story points
- Use for future planning
- Don't compare velocity between different teams!

2. Burndown Chart

Graph showing remaining work vs time.

Sprint Burndown
Story Points
   ↑
40 │●
   │ ╲
30 │  ●╲        ← Ideal (dashed line)
   │   ╲●
20 │    ╲ ●
   │     ╲  ●   ← Actual (solid line)
10 │      ╲   ●
   │       ╲    ●
 0 └────────╲─────●─→ Days
   1  2  3  4  5  6  7  8  9 10

✅ GOOD: Actual follows ideal
⚠️ WARNING: Actual above ideal = at risk
❌ BAD: Flat actual = no progress

3. Cumulative Flow Diagram (CFD)

Visualizes work flow through states (To Do, In Progress, Done).

Agile Mindset and Culture

Agile is not just a process, it's a mindset. Deep cultural change.

Aspect Traditional Mindset Agile Mindset
Failures Avoid at all costs Learning opportunities
Planning More detailed is better Just enough, adaptive
Change Problem, resistance Opportunity, welcome
Control Command & control Servant leadership
Responsibility Individual Collective (team)
Knowledge Silos, specialized expertise Shared, T-shaped skills
Decisions Top-down Decentralized
Success Metric On time, on budget Customer value

Challenges in Agile Adoption

🚧 Common Obstacles

1. Resistance to Change

Problem: "We've always done it this way, why change?"

Solution:

  • Start small: pilot team
  • Demonstrate quick win successes
  • Executive sponsorship
  • Training and coaching
2. Fake Agile (Agile in Name Only)

Problem: Team does Scrum ceremonies but maintains Waterfall mindset.

Symptoms:

  • Sprint planning is top-down command
  • No retrospectives or they don't produce changes
  • Team has no ownership
  • Daily standup becomes status report to manager
3. Lack of Dedicated Product Owner

Problem: Part-time or absent PO.

Impact: Backlog not prioritized, team blocked, scope drift.

4. Ignored Technical Debt

Problem: Focus only on features, quality neglected.

Consequence: Velocity decreases over time, bugs increase.

5. Distributed Teams

Problem: Teams in different time zones, asynchronous communication.

Solution:

  • Overlap working hours (core hours)
  • Over-communicate in writing
  • Collaborative tools (Miro, Mural)
  • Video always on in team room

Agile vs Waterfall: When to Use What

Factor Use Agile Use Waterfall
Requirements Uncertain, evolving Clear, stable, fixed
Customer Available, collaborative Distant, approval only
Time-to-Market Critical, high competition Flexible
Team Co-located, senior Distributed, junior
Technology New, experimental Mature, proven
Compliance Low High (FDA, aerospace)
Budget Flexible Fixed, rigid contract
Project Innovative, MVP Maintenance, migration

Popular Agile Frameworks

Agile is an umbrella that includes various frameworks. The most used:

🏃 Scrum

  • Most popular framework (70% adoption)
  • Sprints of 1-4 weeks
  • 3 roles, 5 events, 3 artifacts
  • Highly structured

📊 Kanban

  • Continuous flow, no sprints
  • WIP (Work In Progress) limits
  • Visualization with board
  • Less prescriptive than Scrum

🔧 XP (Extreme Programming)

  • Focus on technical practices
  • TDD, Pair Programming, CI
  • Very frequent releases
  • Code excellence

🏭 Lean Software Development

  • Inspired by Toyota Production System
  • Waste elimination
  • Value Stream Mapping
  • Continuous improvement (Kaizen)

Conclusions

Agile has revolutionized the software industry by bringing focus on people, collaboration, and adaptability. It's not a magic formula but a mindset that requires cultural commitment and constant practice.

💡 Key Takeaways

  • Agile is based on 4 values and 12 principles of the Manifesto
  • Iterative and incremental development with frequent releases
  • Continuous customer collaboration is essential
  • Self-organizing and cross-functional teams
  • Technical quality and sustainable pace are fundamental
  • Retrospectives for continuous improvement (Kaizen)
  • Mindset more important than process: embrace change

📚 Next Article

In the next article, we'll explore Scrum Framework in detail: the 3 roles (Product Owner, Scrum Master, Dev Team), the 5 ceremonies, the 3 artifacts, and how to implement Scrum effectively.

Frequently asked questions

What are the four fundamental values of the Agile Manifesto?

The four fundamental values of the Agile Manifesto are Individuals and Interactions, Working Software, Customer Collaboration, and Responding to Change.

How often should Agile teams release working software to maximize value delivered to customers?

Agile teams should aim for frequent and regular releases, typically through short iterations or sprints that last 1-4 weeks.

What is the primary metric of progress in Agile development?

The primary metric of progress in Agile development is working software, rather than metrics such as lines of code or completion percentage.

What is Kaizen in the context of Agile methodology?

Kaizen refers to continuous improvement, small and constant, which is a key characteristic of Agile teams that strive for ongoing improvement.

Sources and further reading

Commenti

Caricamento commenti...

Sign in to comment

Discuss this article in the community

Join the Telegram group to discuss with other developers, ask questions and share your experiences.

Did you like this article?

Explore other content on the blog or discover my projects