File:OWASPSanAntonio 2006 09 AgileAndSecure.pdf

Software development organizations find themselves being pulled in two directions. Agile software development methodologies such as eXtreme Programming and Scrum have allowed organizations to be more responsive to business concerns by involving the customer, increasing the pace of stable releases and decreasing the time required before new features are deployed. In addition, a more aggressive regulatory environment as well as an increased focus on security requires that organizations more reliably produce secure software applications. Traditional approaches to security and compliance are very top-down and document-centric, but these approaches often run counter to the spirit of agile software development methodologies.

This presentation examines the goals of both agility and security and discusses strategies for making the two compatible – or at least for minimizing the conflict between them. First, the fundamentals of secure software development are outlined to provide a baseline that any methodology – traditional or agile – must follow. The practices of agile development are examined from the viewpoint of providing security assurance. Potential modifications to those practices are discussed that provide an approach to creating the artifacts required for compliance and security assurance with a minimum of impact on the typically documentation-light agile development practices. Finally, the unavoidable conflicts between security and agility are discussed and recommendations are provided so that organizations can make the tough decisions appropriate to their environment in order to enforce the requisite amount of security while still remaining responsive to business concerns.