What is Agile Software Development?

An iterative and incremental (evolutionary) approach performed in a highly collaborative manner with just the right amount of ceremony to produce high quality software in a cost effective and timely manner which meets the changing needs of its stakeholders.
or
Agile software development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams.
 
Core principles
–“Fits just right” process
–Continuous testing and validation
–Consistent team collaboration
–Rapid response to change
–Ongoing customer involvement
–Frequent delivery of working software

Agile can mean different things to different people, so it can be helpful to create some common ground to avoid misunderstandings.  As IBM Rational has worked with companies who are undertaking Agile Development, we’ve made some key observations:

Agile software development can be significantly different from one organization to another.  Agile is not a “one size fits all” proposition

Agilists do a lot more testing, in fact they often write a test before they write sufficient production code to fulfill that test, then they iterate

Agilists work very closely together and ideally work closely with their stakeholders

Changing requirements are seen as a competitive advantage, as long as you can act on them, not as something that you need to prevent

Agilists deliver working software every iteration, providing concrete evidence of actual progress on the project.  Daily builds, or even multiple times a day are highly desirable

Shorter iterations are desirable, from as short as one-to-two weeks, 4 weeks as a common recommendation, although up to 8 weeks will occur at scale

Advertisements

4 thoughts on “What is Agile Software Development?

  1. Pingback: Zemlog #5: Generation G and the Era of Praise and Whine « Sparkica and (her) Brainmachine

  2. Many software developments methodologies that are bases on iterative and incremental development if collected together in a group are called agile software development. It is useful in promoting adaptive planning, evolutionary development and delivery.

  3. Pingback: Iterative Process | Imageinme's Blog

  4. Pingback: Is Agile for me? « Project Management in Practice

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s