tel of OSIC+86 28 66257385

 

enEnglishcnChineseAngalisFrançais

err

Knowledges > Development Process >Agile

Agile

Agile software development refers to a group of software development methodologies that are based on similar principles. Agile methodologies generally promote: A project management process that encourages frequent inspection and adaptation; a leadership philosophy that encourages team work, self-organization and accountability; a set of engineering best practices that allow for rapid delivery of high-quality software; and a business approach that aligns development with customer needs and company goals.

Suitability of agile methods

There is little if any consensus on what types of software projects are best suited for agile methodologies. Many large organizations have difficulty bridging the gap between a more traditional waterfall method and an agile one.

Large scale agile software development remains an active research area.

Agile development has been widely documented (see Experience Reports, below, as well as Beck pg. 157, and Boehm and Turner pg. 55-57) as working well for small (<10 developers) co-located teams.

Some things that can negatively impact the success of an agile project are:

  • Large scale development efforts (>20 developers), though scaling strategies and evidence to the contrary have been described.
  • Distributed development efforts (non-co-located teams). Strategies have been described in Bridging the Distance and Using an Agile Software Process with Offshore Development
  • Command-and-control company cultures
  • Forcing an agile process on a development team

Several successful large scale agile projects have been documented. BT has had several hundred developers situated in the UK, Ireland and India working collaboratively on projects and using Agile methods. While questions undoubtedly still arise about the suitability of some Agile methods to certain project types, it would appear that scale or geography, by themselves, are not necessarily barriers to success.

Barry Boehm and Richard Turner suggest that risk analysis be used to choose between adaptive ("agile") and predictive ("plan-driven") methods.[14] The authors suggest that each side of the continuum has its own home ground as follows:

Agile home ground:

  • Low criticality
  • Senior developers
  • Requirements change very often
  • Small number of developers
  • Culture that thrives on chaos

Plan-driven home ground:

  • High criticality
  • Junior developers
  • Requirements don't change too often
  • Large number of developers
  • Culture that demands order
err
err