About The Agile Dictionary
Welcome to iteration zero of The Agile Dictionary! Our goal with this project is to provide broad, authoritative definitions of common Agile terms. You will note that each definition also includes a section titled “etymology,” where we capture the origins of the term wherever possible.
Visit the definitions by clicking on the letters in the navigation bar, or you can search for a term, above.
i is for...
In Scrum, any obstacle preventing a developer or team from completing work. One of the three focusing questions each member of a Scrum team answers during the daily Stand Up Meeting is: What impediments stand in your way?
Impediments may include such things as:
- A meeting to attend
- A lack of technical expertise.
- A technical issue (eg, a network is down).
Scrum co-founder Ken Schwaber declared removing impediments to be “The ScrumMaster’s top priority” in his 2002 book, Agile Software Development with Scrum.
Also: Big Visible Charts
In Agile Software Development, the preferred way of displaying data visualizations is to post them on the wall in the team’s common workspace (i.e., rather than logging them in a spreadsheet). Examples of information radiators include a burn down chart, a burn up chart, and a task board, although other types of chart are possible. These may also be referred to as Big Visible Charts.
Keeping information visible at all times promotes transparency (one of the three legs of Scrum).
Alistair Cockburn coined the term “information radiator” in 2000, and introduced it in his 2001 book, Agile Software Development.
Related terms: Incremental Delivery, Evolutionary Development, Timeboxing
A project life-cycle strategy used to reduce risk of project failure by dividing projects into smaller, more manageable pieces of “potentially shippable” product delivered over the course of a series of brief iterations, or sprints. Iterative development processes afford teams the ability to “inspect and adapt” their processes between iterations, leading to continuous improvement. The concept of iterative development stands in contrast to the traditional, waterfall method of “big design up front” followed by development and testing in strict sequence.
The concept of iterative development is central to all agile frameworks and is regarded as an essential part of agile development. Extreme Programming recommends that teams make frequent, small releases, working in iterations of one to four weeks, with one week being the preferred interval. Scrum also recommends regular cycles, called sprints, of one to four weeks.
Background of the Term
The concept of iterative software development was described by Tom Gilb in his 1988 book, Principles of Software Engineering Management, where he referred to it as Evolutionary Development. It has gone on to permeate all agile frameworks.
Currently, iterative development is strongly associated with incremental development, but historically that was not always the case. See, for example, Barry Boehm‘s paper A Spiral Model of Software Development and Enhancement in which the model is iterative but not necessarily incremental.