liveBook · Manning

Agile software development

As explained in Think Like a CTO

An iterative development and project-management approach that delivers work in small increments and adapts plans based on feedback and changing requirements.

Agile software development is an approach to organizing a project into smaller pieces of work. Start by defining the outcome, then break the work into tasks that contribute to it. Smaller components can make a timeline easier to predict when external or unknown events make a single project-wide estimate difficult. section 9.1.2 section 9.9

The choice depends on the project. Waterfall plans as much as possible before work begins; for a well-defined project, that can help predict time and cost and support a call for external bids. Its up-front definition takes time, however, and its plan is less able to accommodate changed requirements or technology. Breaking work into smaller components offers a different way to manage uncertainty, not a guarantee that the schedule will hold. section 9.1.2 section 9.9

Define the destination before dividing the work

A customer-intake modernization project can be described internally as replacing a Windows XP-dependent process with Java on a serverless environment, or externally as moving the process to the cloud for flexibility and throughput. Once the intended outcome is clear, divide the project into tasks that move toward it. section 9.1.2

Questions for putting the approach to work:

  • Is the outcome clear enough to guide the smaller tasks? section 9.1.2
  • What does the ticket system reveal about task status, and who will guide the project through its lifecycle? section 9.9
  • How will client and user feedback be welcomed without fragmenting the code base? section 9.9

How Think Like a CTO covers it

How deep it goes
Explains the project-planning trade-off with waterfall and notes smaller components, without specifying an agile framework or iteration procedure.
Examples
Uses a customer-intake modernization project to distinguish its stated outcome from the tasks needed to reach it.
What you can do after
Practice/perform project breakdown by defining an outcome, dividing work into smaller components, and tracking task status.
How it connects
Connects agile planning to waterfall, project timelines, ticket systems, project management, and user feedback.

Also explained in

Compare how 5 books explain agile software development →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Think Like a CTO. The section links point to the parts of the book it draws on.