liveBook · Manning

Agile software development

As explained in Delivering Machine Learning Projects: From design to deployment

Agile development is an iterative software development approach emphasizing early delivery, customer collaboration, and responsiveness to change.

Agile software development delivers working software early, keeps customers involved, and accepts change as the team learns. It contrasts with planning extensive requirements upfront and building components that cannot yet be used. Early delivery gives customers something useful while there is still time to adjust the work. section 1.3

Choose a working structure that suits the team and its customers. Scrum organizes work into sprints; Kanban uses continuous delivery. Neither is the only valid day-to-day practice. If an organization mandates an approach such as SAFe, account for that constraint. In every case, agree on the process, tools, standards and working practices, and documentation. section 4.3.1

For a sprint-based machine learning project, make the work visible and reviewable:

  • Keep a backlog of tasks and specify how each task will be approached. section 1.4
  • End each sprint with a team checklist covering completed tasks and required documentation. section 1.4
  • Expect tasks to carry into later sprints and add work uncovered during the project. section 4.3.1

Keep the resulting documentation as a record the team can share and reuse. It also supports maintenance and governance once the system is in production. DevOps extends the delivery perspective by connecting developers with the people who operate the software, reducing the mismatch between development assumptions and production reality. section 1.4 section 1.3

How Delivering Machine Learning Projects: From design to deployment covers it

How deep it goes
Defines agile’s aims and gives practical sprint artifacts, while leaving the choice of day-to-day method to the team and its constraints.
Examples
Uses a running Bike Shop project and the possibility of hardware experiments to illustrate project work and newly discovered tasks.
What you can do after
Practice/perform sprint-based work using backlogs and end-of-sprint checklists, while adapting plans when tasks overflow or new work appears.
How it connects
Connects agile to waterfall, Scrum, Kanban, DevOps, and production governance.

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 Delivering Machine Learning Projects: From design to deployment. The section links point to the parts of the book it draws on.