Although agile methods differ in their practices, they share a number of
common characteristics, including iterative development, and a focus on
interaction, communication, and the reduction of resource-intensive intermediate
artifacts. The suitability of agile methods in general can be examined from
multiple perspectives. From a product perspective, agile methods are more
suitable when requirements are emergent and rapidly changing; they are less
suitable for systems that have high criticality, reliability and safety
requirements, though there is no complete consensus on this point. From an
organizational perspective, the suitability can be assessed by examining three
key dimensions of an organization: culture, people, and communication. In
relation to these areas a number of key success factors have been identified
(Cohen et al., 2004):
The culture of the organization must be supportive of negotiation
People must be trusted
Fewer staff, with higher levels of competency
Organizations must live with the decisions developers make
Organizations need to have an environment that facilitates rapid
communication between team members