Agile Means No Design

At least once a day I fond myself stating that Agile does not mean no design. This misconception is common among developers eager to code, managers thinking Agile means a reduction in quality and architects worried about any trend that reduces up front thinking.

Before the Agile Manifesto was published, Martin Fowler proposed ‘dynamic design’ to cope with changing requirements. In his 1998 paper published in Distributed Computing, ‘Keeping Software Soft‘  Fowler states

“You can get users to sign off on requirements documents in every blood group, but they can still change their mind. … If requirements change without warning how can we develop a stable up-front design?”

Fowler describes dynamic design by saying,

“You don’t try to get the design right at the beginning. This doesn’t mean you abandon up front design: you still do it but now you don’t try to find the best solution … you build the simplest thing that could possibly work”

Agile, of course, addresses this by breaking big projects into lots of small projects, often called sprints, and keeping the requirements – design – build – test cycle as short as possible, doing just enough requirements capture and design for the project at hand. This generally involves working in the context of a larger, higher level design because as Fowler states:

“… designing as you go about building a program doesn’t work for larger scale systems”

    • Albion
    • April 30th, 2014

    Agile makes easy software development process. It provides opportunities to assess the direction of a project throughout the development lifecycle. It assumes that every requirement of the project can be identified before any design or coding occurs.

    • Neville
    • April 30th, 2014

    Very informative post for all readers agile plays very important role in web development and many other fields of life. It was created as an alternative to document-driven, heavyweight software development processes such as the waterfall approach. In agile manifesto at regular interval, having the team reflect upon how to become more effective, then tuning and adjusting behavior accordingly.

  1. No trackbacks yet.