Open Technology Development (OTD): Lessons Learned & Best Practices for Military Software
Total Page:16
File Type:pdf, Size:1020Kb
2011 OTD Lessons Learned Open Technology Development (OTD): Lessons Learned & Best Practices for Military Software 2011-05-16 Sponsored by the Assistant Secretary of Defense (Networks & Information Integration) (NII) / DoD Chief Information Officer (CIO) and the Under Secretary of Defense for Acquisition, Technology, and Logistics (AT&L) This document is released under the Creative Commons Attribution ShareAlike 3.0 (CC- BY-SA) License. You are free to share (to copy, distribute and transmit the work) and to remix (to adapt the work), under the condition of attribution (you must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work)). For more information, see http://creativecommons.org/licenses/by/3.0/ . The U.S. government has unlimited rights to this document per DFARS 252.227-7013. Portions of this document were originally published in the Software Tech News, Vol.14, No.1, January 2011. See https://softwaretechnews.thedacs.com/ for more information. Version - 1.0 2 2011 OTD Lessons Learned Table of Contents Chapter 1. Introduction........................................................................................................................... 1 1.1 Software is a Renewable Military Resource ................................................................................ 1 1.2 What is Open Technology Development (OTD) ......................................................................... 3 1.3 Off-the-shelf (OTS) Software Development Approaches, including Open Government OTS (OGOTS) and Open Source Software (OSS).......................................................................................... 4 1.4 Key Prerequisites for OTD........................................................................................................... 6 1.4.1 Intellectual Rights ................................................................................................................. 6 1.4.2 Simplicity.............................................................................................................................. 7 Chapter 2. Running OTD Projects.......................................................................................................... 8 2.1 Establishing an OTD Program ..................................................................................................... 8 2.1.1 Step 1: Determine reuse options ........................................................................................... 8 2.1.2 Step 2: Identify the Projects to be Established...................................................................... 8 2.1.3 Step 3: Choose and Apply a Common License .................................................................... 9 2.1.4 Step 4: Establish Governance ............................................................................................. 10 2.1.4.1 Forkability ................................................................................................................... 10 2.1.4.2 Governance Models..................................................................................................... 10 2.1.5 Step 5: Establish Collaboration........................................................................................... 11 2.1.6 Step 6: Create Project Technical Direction......................................................................... 12 2.1.7 Step 7: Announcing............................................................................................................. 12 2.1.8 Continuously Review Steps 1-7.......................................................................................... 13 2.2 Technical Infrastructure for Collaboration................................................................................. 13 2.2.1 Key Functions ..................................................................................................................... 13 2.2.2 Public access, classification, and export control................................................................. 14 2.2.3 Hosting................................................................................................................................ 15 2.3 Communication .......................................................................................................................... 16 2.3.1 Be Inclusive ........................................................................................................................ 16 2.3.2 Avoid Private Discussions .................................................................................................. 17 2.3.3 Use Communication Mechanisms Effectively.................................................................... 17 2.3.4 Practice Conspicuous Code Review ................................................................................... 17 2.3.5 Nip Rudeness in the Bud..................................................................................................... 17 2.3.6 Counter Poisonous People .................................................................................................. 18 2.3.7 Be Aware of Roles.............................................................................................................. 18 2.4 Technical Management/Technical Criteria ................................................................................ 18 2.4.1 Goals ................................................................................................................................... 18 2.4.2 Reuse and Collaborate on OTD components...................................................................... 19 2.4.3 Don’t Fork OSS Solely for Government Use ..................................................................... 19 2.4.4 Open Standards ................................................................................................................... 20 2.4.5 Managing Contributions ..................................................................................................... 21 2.5 Continuous Delivery .................................................................................................................. 21 2.5.1 Managing Intellectual Rights.............................................................................................. 21 Chapter 3. OTD Programmatics: Tactics, Tools & Procedures ........................................................... 23 3.1 Initiation and/or Transition to OTD ........................................................................................... 23 3.1.1 Analysis of Alternatives (AoA) .......................................................................................... 23 3.1.2 Request for Information (RFI)............................................................................................ 24 4 2011 OTD Lessons Learned 3.2 Request for Proposal (RFP) ....................................................................................................... 25 3.2.1 Statement of Objectives (SOO) & Intent............................................................................ 26 3.2.2 Intellectual Rights ............................................................................................................... 26 3.2.3 Data Formats, Standards & Interfaces ................................................................................ 27 3.2.4 Off-the-Shelf (OTS) Technologies ..................................................................................... 27 3.2.5 Open Technology Development Practices.......................................................................... 27 3.2.6 Deliverables ........................................................................................................................ 28 3.3 Source Selection: Evaluating Proposals..................................................................................... 29 3.3.1 Evaluate how well proposal responds to RFP..................................................................... 29 3.3.2 Acceptance/Approval Criteria for Deliverables.................................................................. 29 3.3.3 Pitfalls to avoid ................................................................................................................... 30 Chapter 4. Continuous Development & Delivery ................................................................................ 31 4.1 Rapid Development Cycles........................................................................................................ 31 4.2 Testing, Certification and Accreditation .................................................................................... 31 4.3 Transition to Operations & Maintenance................................................................................... 32 4.4 Findability .................................................................................................................................. 32 4.5 Lessons Learned......................................................................................................................... 33 4.6 OTD Success Checklist.............................................................................................................. 33 Appendix A: U.S. Government Policy & Guidance on Openness ........................................................... 35 A.1 Open Standards and Interfaces (including open data formats) .................................................. 36 A.1.1