U.S. Army Research, Development and Engineering Command CMMI Level 5 in Towed Artillery Software Development May 7, 2014 Ross D. Arnold
Bio Ross D. Arnold Towed Artillery Software Lead Mr. Ross D. Arnold has over 10 years of experience employing CMMI best practices in software development. He is currently the Towed Artillery Software Lead for the U.S. Army Armament Research, Development and Engineering Center. Mr. Arnold has led the software development efforts of several high profile, highly successful U.S. Army weapons systems. His work focuses on developing stateof-the-art software technology solutions for Fire Control applications in mortars and artillery systems. He has an undergraduate degree in Computer Science along with a Masters in Quantitative Software Engineering, and is a PhD Candidate in Systems Engineering at Stevens Institute of Technology. His research focuses on the application, measurement, and development of Systems Thinking skills across a wide variety of disciplines.
Intro Outline ARDEC Intro Intro to Artillery Brief description Examples Role of software CMMI in Towed Artillery Software Overview Examples Lessons Learned Personal Experiences Conclusion Future
Intro ARDEC U.S. Army Armament Research, Development and Engineering Center (ARDEC) Located at Picatinny Arsenal, NJ Mission: Empower, unburden, and protect the Warfighter by providing superior armaments solutions that dominate the battlefield. What does that mean? Developing advanced weapons, ammunition, and fire control systems Armament Software Engineering Center Sub-division of ARDEC Software design and development Artillery, mortars, many others CMMI level 5
Intro Artillery What is Artillery? Large-caliber guns Used on land Direct or indirect fire Infantry support How does software fit in? Fire Control Systems
Intro Fire Control What is a Fire Control System? Software & hardware that enables: Digital communications Fire missions Ballistic calculations Point and shoot Movement Purpose: Digitize manual gunnery Applied to: Towed Artillery Mortars Self-Propelled Artillery
Fire Control Systems Artillery Artillery Fire Control Systems: M119 (Towed 105mm) M777 (Towed 155mm) Portable Excalibur Fire Control System (PEFCS) Paladin (Self-propelled 155mm)
Overview CMMI in Towed Artillery Software Why is it important? Safety critical Reliability is key How is it used? Live and breathe Standard defect removal at CMMI level 5: 1 defect per 1,000 lines of code* Towed Artillery defect removal at CMMI level 5: 0 critical defects 1 non-critical defect per 30,000 lines of code Regularly field with 0 critical and <5 total defects in large software system *Jones 2012
Defect Scarcity How are defects kept so low? Specifics Highly mature process Re-appraised 3 times consecutively at CMMI level 5 Organizational support Infrastructure and management buy-in Software reuse maximized 90% software commonality between weapon systems Extensive testing using different types of tests Development Test, Unit Test, Integration Test, Dry Run Formal Quality Test, Record Formal Quality Test Constant interface between users and developers What are the details?
Team Organization Software Team Organization
Peer Reviews Code Peer Reviews LOC per Hour Formal vs. Over the Shoulder (Informal) Preliminary Data Caveats: Not a controlled experiment Data collection methods under review 400.00 350.00 300.00 250.00 Code Review LOC Per Hour 200.00 150.00 100.00 50.00 0.00 M777 Standard Avg Standard M119 Standard - SCOV M119 Standard M777 OTS Avg OTS M119 OTS
Peer Reviews Code Peer Reviews Defects per KLOC Formal vs. Over the Shoulder (Informal) Preliminary Data Caveats: Not a controlled experiment Data collection methods under review 35.00 30.00 25.00 20.00 Code Review Defects Per 1000 LOC 15.00 10.00 5.00 0.00 M777 Standard Avg Standard M119 Standard - SCOV M119 Standard M777 OTS Avg OTS M119 OTS
Personal Experiences Software Developer Experiences Challenges we encountered: Tailoring Documentation Requirements, design, code, what is needed? Effective peer reviews Avoid Death by Process Benefits we realized: High software quality Easier transitions for new personnel Reduction of human error through process controls Historical data for analysis If done correctly, saves time
Conclusion What Worked and What Didn t Worked: Organizing software process Different types of testing Code reviews Challenging but beneficial if done effectively Design for reuse as part of review Didn t work: Tendency to focus too much on process instead of product Process not always appropriately tailored Documents maintained beyond useful lifetime
Future Evolution Future Systems Thinking CMMI tied to Systems Thinking and Complexity Theory. CMMI should evolve into an approach that recognizes the software development process as a system. Big picture view AND small picture view Recognize interconnections and feedback loops Not just What processes should be used, but How to further optimize them systemically.
Questions and Contact Questions? Contact: Ross Arnold Towed Artillery Software Lead U.S. Army ARDEC (973) 724-8618 ross.arnold@us.army.mil
Backup - CMMI Tools - DAR Decision Analysis and Resolution Experiences In our experience, best used: When a choice now could have long-term effects As a communication tool To justify a decision to client To provide evidence of a logical thought process When multiple sign-offs are required Lessons Learned Not as useful on smaller items Could try a tailored approach to smaller items
Backup - CMMI Tools - CAR Causal Analysis and Resolution Experiences In our experience, best used: To resolve complex problems To detect potential hidden root causes When there are many stakeholders with differing opinions Lessons Learned When a consensus is reached, stop Do not overuse Tailored approach for smaller problems