Public 6 Requirements Design Coding Test Deploy Defect Introduction 29% 18% Source: Error Cost Escalation Through the Project Life Cycle, Stecklein, NASA/JSC 26%
Public 10 Manual Everything ✗ Code merged by hand (senior developer) ✗ Ad hoc manual builds, manual tests ✗ Measurement: customer complaints Requirements & Design Coding Integration Test Deploy
Public 16 Continuous Deployment ✔ Version control for all artifacts ✔ Proactive Monitoring ✔ Stable, reproducible development environment Measurement: deployments per day Requirements & Design Coding Integration Test Deploy
Public Requirements & Design Coding Integration Test Deploy 17 Continuous Security ✔ Zero manual intervention from check-in to deployment ✔ Only inputs: code, configs and tests ✔ Development priority on refactoring legacy code, tests Measurement: code coverage
• Coding Standards • Continuous testing • Design simplicity • Automation • Progress regularly reflected on and measured Cons • Customer as only driver • Requirements focus only functionality • Security tests don’t fit well into unit tests • Insulated customer-team focus • Measure progress in functionality • (Blind) Trust Maintaining Security while Staying Agile
Public 20 • Haskins, Stecklein, Dick, Moroney, Lovell, and Dabney. 8.4.2 Error Cost Escalation Through the Project Life Cycle INCOSE International Symposium 14.1 (2004): 1723-737. NASA Technical Reports Server. NASA Johnson Space Center. • Boehm, Barry W. Software Engineering Economics. Englewood Cliffs, NJ: Prentice-Hall, 1981. ISBN 0138221227 • Puppet Labs. State of DevOps (2016) • Martin, James. An Information Systems Manifesto. Englewood Cliffs, NJ: Prentice-Hall, 1984. ISBN 0134647696. • Lindvall, Basili, and Boehm. Empirical Findings in Agile Methods Extreme Programming and Agile Methods: XP/Agile Universe 2002: Second XP Universe and First Agile Universe Conference, Chicago, IL, USA, August 4-7, 2002: Proceedings. Springer, 2002. 197-207 • Security in the Software Lifecycle United States Department of Homeland Security, (Draft version 1.2, August 2016) References