openskills.info

Agile Software Development

itEngineering leadership and delivery management

Agile Software Development

Agile software development organizes work around short feedback loops. You build a usable part of a product, inspect what happened, and adjust what you do next. The objective is not to follow a ritual. It is to learn early enough that new evidence can still improve the product.

The useful mental model is direction, a small bet, evidence, adaptation:

product direction → small valuable change → working software → feedback
       ↑                                                        ↓
       └───────────────── adapt the product and the way of working ─────┘

Each loop tests assumptions about value, usability, feasibility, and delivery. The team keeps enough direction to make coherent choices. It avoids pretending that a detailed early plan can settle every later decision.

Values before machinery

The 2001 Manifesto for Agile Software Development states four value preferences. They favor people collaborating, working software, partnership with customers, and response to change. The alternatives—processes, tools, documentation, contracts, and plans—still have value. The preference tells you what should win when the two sides conflict.

The twelve supporting principles make the delivery model more concrete. Deliver valuable software early and frequently. Keep business and development participants working together. Treat working software as the main evidence of progress. Maintain technical excellence, sustainable work, simplicity, team autonomy, and regular reflection.

This makes Agile an umbrella for compatible frameworks and practices, not one prescribed method. Scrum, Kanban, and Extreme Programming emphasize different operating mechanisms. A team can also combine compatible practices when it preserves the underlying feedback and value model.

The core loop

Choose an outcome

Start from a product goal, customer problem, or measurable outcome. A long list of requested features is input, not direction. Direction lets the team compare options and explain why one change should come before another.

Select a small increment

Choose a small, coherent slice that can become usable. An increment adds observable product capability to what already exists. It is different from finishing one technical layer that users cannot evaluate on its own.

Small increments shorten the distance between a decision and evidence. They also limit how many assumptions become entangled in one delivery.

Build quality into the increment

Frequent delivery needs technical discipline. The Agile principles connect agility with technical excellence and good design. In Scrum, work becomes part of an Increment only when it meets the Definition of Done. A short calendar cycle does not compensate for untested or unusable output.

Inspect real evidence

Review working software with the people affected by it. Ask what changed in the product, its environment, and the team's understanding. Progress reports and completed tasks can help coordination, but neither substitutes for an inspectable result.

Adapt

Change the product plan when evidence changes the best next decision. Change the team's workflow when it blocks quality, learning, or delivery. Adaptation is expected work, not an admission that planning failed.

Two common operating models

Scrum: feedback through a cadence

Scrum is a lightweight framework for adaptive solutions to complex problems. Work proceeds in Sprints of one month or less. A Product Owner orders the Product Backlog. The Scrum Team selects work, creates a usable Increment, and inspects the result with stakeholders. The team then adapts its plans.

Scrum uses transparency, inspection, and adaptation. Its events provide a regular cadence for those activities. Its artifacts make the product direction, current plan, and completed Increment visible. Scrum deliberately leaves many engineering and product techniques unspecified.

Kanban: feedback through flow

Kanban is a strategy for optimizing the flow of value through a process. A Kanban system defines and visualizes its workflow, actively manages work items, and improves the workflow.

The team explicitly controls work in progress. New work starts when capacity is available, which creates a pull system. Flow metrics show current behavior: work in progress, throughput, work item age, and cycle time. Kanban does not require fixed-length iterations and can augment another delivery approach.

Scrum and Kanban are not maturity levels. Choose mechanisms that expose uncertainty, produce useful evidence, and fit the product context. Preserve the rules of any named framework if you claim to use that framework.

Planning without pretending

Agile planning is continuous and layered. Longer-range direction describes desired outcomes and constraints. Near-term planning selects the next coherent increment. Daily coordination adapts execution as the team learns.

A backlog is not a contract for everything the team might build. In Scrum, the Product Backlog is an emergent, ordered list of what the product needs. Ordering should change when evidence changes value, risk, or opportunity.

Forecasts remain useful, but uncertainty belongs in them. Use observed delivery data where possible. Treat a forecast as a decision aid with assumptions, not a promise created by arithmetic.

What Agile does not mean

  • No planning: Agile changes the planning horizon and frequency. It does not remove direction or commitments.
  • No documentation: The Manifesto gives working software more weight than comprehensive documentation. It does not assign documentation zero value.
  • No design: The principles explicitly connect good design and technical excellence with agility.
  • More meetings: Events exist to create inspection and adaptation. A ceremony without a decision or new evidence is overhead.
  • Faster typing: The system optimizes learning and value delivery. Individual activity is not the objective.
  • Unlimited change: Teams protect focus while retaining a controlled way to adapt. Scrum, for example, does not allow changes that endanger the current Sprint Goal.

When it fits

Agile approaches are useful when product work contains meaningful uncertainty. Frequent usable increments let you test assumptions while choices remain reversible. They also fit environments where customer needs, technical constraints, or market conditions can change during delivery.

The approach needs access to feedback and authority to act on it. If stakeholders never inspect results, the loop loses product evidence. If the team cannot adjust scope, design, or workflow, inspection becomes reporting rather than adaptation.

Some constraints require deliberate documentation, approvals, or fixed commitments. Keep them visible and proportionate. The Agile Manifesto retains value on both sides of each preference. The test is whether a control improves the product and manages a real risk, or only delays feedback.

A practical adoption path

  1. Define one product outcome and the people who can judge it.
  2. Map the path from an idea to usable software.
  3. Select one small vertical increment and define what complete means.
  4. Finish it before starting more work than the team can manage.
  5. Put the result in front of stakeholders and collect specific evidence.
  6. Change the backlog and workflow based on that evidence.
  7. Strengthen engineering practices until frequent change remains safe.
  8. Repeat, measuring outcomes and flow instead of ceremony compliance.

Relevant careers