21
Distribution A: Approved for Public release; distribution is unlimited. NDIA 21320: HPCMP CREATE™ as an Early Example of a DoD “Software Factory” Richard P Kendall, Ph.D. with D.E Post, Ph.D. October 2018

NDIA 21320: HPCMP CREATE™€¦ · Configuration management software (e.g., Puppet, Chef, Ansible ) Continuous Integration (build and test) Systems (e.g., Travis CI for hosted service,

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: NDIA 21320: HPCMP CREATE™€¦ · Configuration management software (e.g., Puppet, Chef, Ansible ) Continuous Integration (build and test) Systems (e.g., Travis CI for hosted service,

Distribution A: Approved for Public release; distribution is unlimited.

NDIA 21320: HPCMP CREATE™

as an Early Example of a DoD

“Software Factory”

Richard P Kendall, Ph.D. with D.E Post, Ph.D.October 2018

Page 2: NDIA 21320: HPCMP CREATE™€¦ · Configuration management software (e.g., Puppet, Chef, Ansible ) Continuous Integration (build and test) Systems (e.g., Travis CI for hosted service,

Page-2Distribution A: Approved for Public release; distribution is unlimited.

CREATE as an early example of of the

DoD “Software Factory” Concept:

o What is a “Software Factory?”

o Why is it important?

o The early CREATE Example

This Presentation will address:

Page 3: NDIA 21320: HPCMP CREATE™€¦ · Configuration management software (e.g., Puppet, Chef, Ansible ) Continuous Integration (build and test) Systems (e.g., Travis CI for hosted service,

Page-3Distribution A: Approved for Public release; distribution is unlimited.

Software Factories

The Defense Science Board(DSB) defines a “Software Factory” as:

• A small software development team (5-15 members)• Supported by an highly automated development infrastructure

(development tools, computers, networks, storage devices, etc.)

• Focused on continuous, iterative product development using Agile development practices

Page 4: NDIA 21320: HPCMP CREATE™€¦ · Configuration management software (e.g., Puppet, Chef, Ansible ) Continuous Integration (build and test) Systems (e.g., Travis CI for hosted service,

Page-4Distribution A: Approved for Public release; distribution is unlimited.

Commercial Software Factory*

Automated

Build

Fuzz TestingDevelopers

Source

RepositoryDynamic TestAutomated Test

(unit, static)

Documentation

Package

Deploy

Project

Management

Beta

Users

Users* Graphic from DSB Report, Feb 2018

Page 5: NDIA 21320: HPCMP CREATE™€¦ · Configuration management software (e.g., Puppet, Chef, Ansible ) Continuous Integration (build and test) Systems (e.g., Travis CI for hosted service,

Page-5Distribution A: Approved for Public release; distribution is unlimited.

Continuous, Iterative Software

Development

After DSB Report, Feb 2018

Not this

But this

Page 6: NDIA 21320: HPCMP CREATE™€¦ · Configuration management software (e.g., Puppet, Chef, Ansible ) Continuous Integration (build and test) Systems (e.g., Travis CI for hosted service,

Page-6Distribution A: Approved for Public release; distribution is unlimited.

Defense Acquisition Lifecycle Model 3

Page 7: NDIA 21320: HPCMP CREATE™€¦ · Configuration management software (e.g., Puppet, Chef, Ansible ) Continuous Integration (build and test) Systems (e.g., Travis CI for hosted service,

Page-7Distribution A: Approved for Public release; distribution is unlimited.

Why is this Important?

Software Drives ~60% DoD Program Risk (after DSB report)

* Graphic from DSB Report, Feb 2018

Page 8: NDIA 21320: HPCMP CREATE™€¦ · Configuration management software (e.g., Puppet, Chef, Ansible ) Continuous Integration (build and test) Systems (e.g., Travis CI for hosted service,

Page-8Distribution A: Approved for Public release; distribution is unlimited.

Change Driver: Explosive Growth in

Source Code for Defense Systems--

Avionics

A hint of immortality!

F-35 Lightning II

Block 3F est.(2017)

Page 9: NDIA 21320: HPCMP CREATE™€¦ · Configuration management software (e.g., Puppet, Chef, Ansible ) Continuous Integration (build and test) Systems (e.g., Travis CI for hosted service,

Page-9Distribution A: Approved for Public release; distribution is unlimited.

The Commercial Case for Agile

Development

A meta-survey* of 29 studies (of 300 analyzed) concluded the following return on investment:

• 29% lower cost• 91% better schedule• 50% better quality• 400% better job satisfaction

* David Rico, “What is the ROI of Agile vs. Traditional Methods”

Page 10: NDIA 21320: HPCMP CREATE™€¦ · Configuration management software (e.g., Puppet, Chef, Ansible ) Continuous Integration (build and test) Systems (e.g., Travis CI for hosted service,

Page-10Distribution A: Approved for Public release; distribution is unlimited.

CREATE Software Factories

HPCMP CREATETM 17 Nov 2017

Page-9

CREATE is 11 separate partnerships software factories embedded in 11

individual DoD Service Engineering Organizations

HPCMP Director

CREATE Program Associate

Director

Integrated Hydro Design

Environment

NSWC, Carderock

Kestrel46th Test Wing, Eglin

AFB

Quality Assurance

NAVAIR, Patuxent River

Helios

Army AFDD, Ames

Genesis Design

HPCMP, WPAFB

Official HPCMP

Advisory Panel

Ships ProjectProject Manager

HPCMP Lorton

Air Vehicles ProjectProject Manager

HPCMP, Lorton

RF Antennas

ProjectSensors Directorate,

AFRL, WPAFB

SENTRi

Sensors Directorate,

AFRL, WPAFB

Meshing &

Geometry

ProjectCapstone

Project Manager

Navy NRL

Ground Vehicles

ProjectProject Manager

Mercury

ERDC

MAT

TARDEC

Rapid Ship Design

Environment

NSWC, Carderock

NavyFOAM

NSWC, Carderock

Navy Enhanced Sierra

Mechanics

NSWC, Carderock

A Multi-Institutional, Multi-Organizational, Distributed Program

Software

Factories

CREATE began to establish “Software Factories” in 2008

Page 11: NDIA 21320: HPCMP CREATE™€¦ · Configuration management software (e.g., Puppet, Chef, Ansible ) Continuous Integration (build and test) Systems (e.g., Travis CI for hosted service,

Page-11Distribution A: Approved for Public release; distribution is unlimited.

The CREATE Infrastructure

From the beginning CREATE embraced an extended

view of the CREATE Product

Core: CREATE

executables

HPC Portal

DREN

DSRC Servers, incl Common Build Servers

Help customers see this

Developers focus on this

Ensure that Customers see the “whole” product

Page 12: NDIA 21320: HPCMP CREATE™€¦ · Configuration management software (e.g., Puppet, Chef, Ansible ) Continuous Integration (build and test) Systems (e.g., Travis CI for hosted service,

Page-12Distribution A: Approved for Public release; distribution is unlimited.

The CREATE Approach to Agile

Development

The CREATE Approach—”Disciplined Agile” based on Scrum

Our approach couples flexibility with accountability Figure after [email protected]

Sprint

Next Annual Increment

In Product Roadmap

Annual Release= milestone

Annual

CREATE

Development

Cycle

Beta milestone for Annual ReleasePotential release candidate

Design reviews

Page 13: NDIA 21320: HPCMP CREATE™€¦ · Configuration management software (e.g., Puppet, Chef, Ansible ) Continuous Integration (build and test) Systems (e.g., Travis CI for hosted service,

Page-13Distribution A: Approved for Public release; distribution is unlimited.

Software Factory Software

Infrastructure*

UNCLASSIFIED

UNCLASSIFIED

Software Factory Source Selection

Criteria SuggestionsTr

acea

bili

ty (

issu

e tr

acki

ng)

Infrastructure

Version Control

Continous Integration

Testing and Metrics

Rap

id D

eplo

ymen

t

Operations

Sup

po

rts

▪ Configuration management software (e.g., Puppet, Chef, Ansible)

▪ Continuous Integration (build and test) Systems (e.g., Travis CI for hosted service, Jenkins for open source application)

▪ Scripts and code used to release software (e.g., Python scripts)

▪ Servers, network or other infrastructure that support release tools

▪ Software and tools to support developer self-service operations (NewRelic for application performance over time, diagnostic tools, monitoring)

▪ External test frameworks (e.g., Jersey Test Framework, Testplant/Eggplant)

▪ External operational monitoring and log mining tools (e.g., Splunk, Elasticsearch + Logstash + Kibana (ELK) Stack)

▪ Source code repositories (e.g., Github for hosted service, GitLab for open source application)

▪ Issue tracking systems (e.g., JIRA, Trello, GitHub)

▪ Container driven tools (e.g., Docker, Elastic Container Service (Amazon Web Services (AWS)), Kubernetes)

▪ Requirements management (e.g., Doors, Blueprint)

▪ Infrastructure and cloud providers (e.g., AWS, Rackspace, Azure, RedHat OpenShift, Pivotal Cloud Foundry

▪ IDEs integrated DevOps process

36

Git, SVN

Jenkins

Python, PERL,…

TotalView, Tau, Valgrind,…

CREATE Server, Portal, and Continuous Build Server

SCCI (Jenkins add-on), and Home Grown Tools

SIDPACK,…

Github, Redmine, SVN,…

DoD HPCMP provides cloud-like services—5 HPC computer centers with 11 High Performance Computers linked by a high speed network

JIRA, Github

CREATE Server

MS Visual Studio, Xcode, Eclipse

JIRA, AgileComparison of DSB Software Factory with

HPCMP/CREATE Version of Software Factory

HPCMP/CREATE operating capabilities are

highlighted in red

*From DSB Report, Feb 2018, based on SEI DevOps

Page 14: NDIA 21320: HPCMP CREATE™€¦ · Configuration management software (e.g., Puppet, Chef, Ansible ) Continuous Integration (build and test) Systems (e.g., Travis CI for hosted service,

Page-14Distribution A: Approved for Public release; distribution is unlimited.

CREATE Software Quality Control

The Practical Aspects of

Computational Science and Engineering

Page-26Distribution A: Approved for Public release; distribution is unlimited

Software Quality Acceptance Practices

Annual Releases

Hierarchal Testing

External, Knowledgeable

Testing Group

User Testing (Beta)

Software Factory Production Requires Quality ControlA Software Factory Requires Quality Control

Based on HPCMP CREATE-AV testing practices

Page 15: NDIA 21320: HPCMP CREATE™€¦ · Configuration management software (e.g., Puppet, Chef, Ansible ) Continuous Integration (build and test) Systems (e.g., Travis CI for hosted service,

Page-15Distribution A: Approved for Public release; distribution is unlimited.

The CREATE Goal for Iterative

Development:

Annual releases demonstrate meaningful progress

Page 16: NDIA 21320: HPCMP CREATE™€¦ · Configuration management software (e.g., Puppet, Chef, Ansible ) Continuous Integration (build and test) Systems (e.g., Travis CI for hosted service,

Page-16Distribution A: Approved for Public release; distribution is unlimited.

So-Called“Valley ofDeath”

CREATE Tools Impacting DoD Programs

DDG-1000 CVN-78 Class Ohio SSBN Replacement

LX(R)

Aerostar & Raven UAVs F/A-18 E/F/G E-2D

UH-60 CH-47 (ACRB) Guided Airdrop (RDECOM)

V-22

F-15 SA/DB-110 Strategic Airlift CP&A A-10 B-52

NA

VA

IRN

AV

SEA

AR

MY/

USM

CA

FLC

MC

Page 17: NDIA 21320: HPCMP CREATE™€¦ · Configuration management software (e.g., Puppet, Chef, Ansible ) Continuous Integration (build and test) Systems (e.g., Travis CI for hosted service,

Page-17Distribution A: Approved for Public release; distribution is unlimited.

NDIA 21320: HPCMP CREATE™ as an Early Example

of a DoD “Software Factory”

Richard P. Kendall, Ph.D.

[email protected]

(505) 660 0976

Thank You!

Page 18: NDIA 21320: HPCMP CREATE™€¦ · Configuration management software (e.g., Puppet, Chef, Ansible ) Continuous Integration (build and test) Systems (e.g., Travis CI for hosted service,

Distribution A: Approved for Public release; distribution is unlimited.

Back-up slides

NDIA 21320

Page 19: NDIA 21320: HPCMP CREATE™€¦ · Configuration management software (e.g., Puppet, Chef, Ansible ) Continuous Integration (build and test) Systems (e.g., Travis CI for hosted service,

Page-19Distribution A: Approved for Public release; distribution is unlimited.

CREATE Software Development

Workflow for Distributed Teams

• Balance flexible planning with milestone-

based accountability.

CMMI Process Improvement

after Boehm, “Getting Ready for Agile Methods with Care,” IEEE Software, 2002

CMMI Software MethodsAgile Methods

Example: SpiralCMMI Level II Practices

◆◆

Or Hero?

Hacker Scrum Adaptive Methods Milestone/Risk Milestone/Plan Micromanaged Milestone

CREATE

CREATE: Disciplined Adaptive Workflow Management

based on Scrum (balance risk and value)

Iterative, time-boxed, risk-driven“Disciplined Adaptive”

Cowboy to rigid authoritarian

Page 20: NDIA 21320: HPCMP CREATE™€¦ · Configuration management software (e.g., Puppet, Chef, Ansible ) Continuous Integration (build and test) Systems (e.g., Travis CI for hosted service,

Page-20Distribution A: Approved for Public release; distribution is unlimited.

Software Development Practice Drivers

Notional Home Ground Chart for CREATE

after Boehm, Using Risk to Balance Agile and Plan Driven Methods, IEEE Computer Society, 2003

The attributes of CREATE environment favor an Agile

Development approach

Development Environment Indicators

Page 21: NDIA 21320: HPCMP CREATE™€¦ · Configuration management software (e.g., Puppet, Chef, Ansible ) Continuous Integration (build and test) Systems (e.g., Travis CI for hosted service,

Page-21Distribution A: Approved for Public release; distribution is unlimited.

Example: Kestrel Software

Architecture