3 Applying Agile Methods and Mindset Within The Air Force
At the inception of a software-based project, the detailed software requirements may be unknown or unknowable, and even if the requirements are known, they usually experience significant changes as the development progresses. To address these evolving requirements issues, agile or iterative development promotes enhanced collaboration between program managers, requirements analysts, testers, the end-user community, and, of course, the software developers. This approach develops software iteratively in short cycles (called "sprints," "spirals," or "spins"), and involves frequent testing, user feedback, rapid deliveries, and adaptation to changing requirements. While traditional Waterfall software development was approached via rigorous preplanning to fully specify requirements before building an entire computer program application, Agile software development breaks the project down to provide iterative improvements which also adapt to the evolving environment. This allows government Program Managers to incorporate changed or new requirements in accordance with user needs, thus promoting modular IT contracting. This section focuses on how to incorporate Agile practices into the Air Force acquisition organizations, contracting and the PMO organizations to pro-actively enable an Agile development framework rather than have the framework adapt to a pre-defined waterfall based contracting approach. As this section is predominantly focused on the mindset shift, it will focus on presenting considerations versus prescribing a specific methodology.