Agile software development refers to software development methodology that focuses on continuous delivery of relatively minor incremental improvements. It is in contrast to waterfall development which targets big releases at longer intervals.
The manifesto, verbatim, states:
“We are uncovering better ways of developing software by doing it and helping others do it. Through this work, we have come to value:
That is, while there is value in the items on the right, we value the items on the left more.”
Agile development has the traits of being iterative and adaptive. This methodology translates to short development, testing, and release cycles, which deliver features into users’ hands faster, thus shortening feedback loops that drive the next development cycle. The short loops allow agile teams to course-correct quickly based on customers’ needs and are essential for startups.
Agile development also emphasizes communication, such as the public kanban board and daily standup meetings, to remove roadblocks and clear interdependencies. Proponents of agile methodology have always expounded on the benefits of colocation. However, online counterparts to these communication channels have enabled distributed teams to work in an agile fashion.
Agile development takes a “just barely good enough” approach to documentation. Documentation should not be too lacking (it becomes unhelpful) and not too detailed (it becomes hard to maintain and update with the codebase).