Agile Development: What is Agile?

Written by Kelly Schreiber
Published on 25 July 2017

About the author

Hi, I'm Kelly, a hiking addict, ramen eater, drummer, vintage furniture lover and holistic wordsmith. I love learning!

Visit profile

Agile Development is a type of software design methodology that emphasizes customer satisfaction by optimizing the development process through various strategies. There are many types of Agile Development, including:

  • Scrum
  • Lean Software Development
  • The Kanban Method
  • Extreme Programming (XP)
  • Crystal
  • Dynamic Systems Development Method (DSDM)
  • Feature Driven Development

All Agile methodologies have certain principles in common that contribute to their popularity and success in the development sphere.

Iterative Development

In Agile Development, planning, designing, coding, and testing repeat many times throughout the project. Different parts of the project occur in sprints, which are short periods of time in which rapid development will occur. This allows developers to make changes quickly and effectively.

Effective and Frequent Communication

Throughout the entire process, an Agile team will seek input from the client. Client representatives, business analysts, project managers, and developers have frequent meetings and communication to make sure everyone knows what the current priorities are. Client satisfaction is essential, and by offering frequent deliverables (working parts of the project), clients can request changes at any point in the process.

Consistent Progress and Quality

Working software components are the main measure of progress for an Agile Development team. Developers create high-quality components, and consistent progress becomes sustainable through effective team organization and management. Two programmers often will code together in pair programming to ensure quality. Additionally, unit testing, continuous integration, and frequent refactoring are strategies that optimize quality.

Simplicity…

…is an important principle that optimizes progress and quality. By eliminating unnecessary work and only focusing on the essentials for a given part of the project, development occurs faster and meets client expectations.

This post is part of a series about Agile Development and how we use agile approaches at the IC. Get updates to this series and more new ideas by signing up to our newsletter.

End of article.