Continuous Integration...Continuous Integration Infrastructure as code All configuration for...

28
Continuous Integration Bringing Medical Device Software Development out of the Dark Ages Jeff Gable

Transcript of Continuous Integration...Continuous Integration Infrastructure as code All configuration for...

Page 1: Continuous Integration...Continuous Integration Infrastructure as code All configuration for deployment defined in readable text configuration files and stored in version control with

Continuous Integration

Bringing Medical Device Software Development out of the Dark Ages

Jeff Gable

Page 2: Continuous Integration...Continuous Integration Infrastructure as code All configuration for deployment defined in readable text configuration files and stored in version control with

IT application development circa 2005

• Painful merges of development branches

• “Throw it over the wall” attitude

• Manual, error-prone deployment

Page 3: Continuous Integration...Continuous Integration Infrastructure as code All configuration for deployment defined in readable text configuration files and stored in version control with

IT application development circa 2005

Low-quality software

Iteration time measured in months

Page 4: Continuous Integration...Continuous Integration Infrastructure as code All configuration for deployment defined in readable text configuration files and stored in version control with

Apply Principles from Lean Manufacturing

Page 5: Continuous Integration...Continuous Integration Infrastructure as code All configuration for deployment defined in readable text configuration files and stored in version control with

Devops Revolution

Apply Systems-Level Thinking

Improve Feedback Loops

Foster Culture of Continuous Improvement

Page 6: Continuous Integration...Continuous Integration Infrastructure as code All configuration for deployment defined in readable text configuration files and stored in version control with

Devops Revolution

Apply Systems-Level Thinking

Improve Feedback Loops

Foster Culture of Continuous Improvement

Page 7: Continuous Integration...Continuous Integration Infrastructure as code All configuration for deployment defined in readable text configuration files and stored in version control with

Devops Revolution

Apply Systems-Level Thinking

Improve Feedback Loops

Foster Culture of Continuous Improvement

Page 8: Continuous Integration...Continuous Integration Infrastructure as code All configuration for deployment defined in readable text configuration files and stored in version control with

Devops Revolution

Apply Systems-Level Thinking

Improve Feedback Loops

Foster Culture of Continuous Improvement

Page 9: Continuous Integration...Continuous Integration Infrastructure as code All configuration for deployment defined in readable text configuration files and stored in version control with

Continuous Integration

Code Commit

Deployed to Customer

Page 10: Continuous Integration...Continuous Integration Infrastructure as code All configuration for deployment defined in readable text configuration files and stored in version control with

Continuous Integration

Code Commit

Deployed to Customer

Automate all of the things

Page 11: Continuous Integration...Continuous Integration Infrastructure as code All configuration for deployment defined in readable text configuration files and stored in version control with

Continuous Integration

Infrastructure as code

All configuration for deployment defined in readable

text configuration files and

stored in version control with application code

Page 12: Continuous Integration...Continuous Integration Infrastructure as code All configuration for deployment defined in readable text configuration files and stored in version control with

Continuous Integration

Infrastructure as code

All configuration for deployment defined in readable

text configuration files and

stored in version control with application code

Repeatable Deployments

Page 13: Continuous Integration...Continuous Integration Infrastructure as code All configuration for deployment defined in readable text configuration files and stored in version control with

Continuous Integration: Results

High-quality software

Iteration time measured in hours

Page 14: Continuous Integration...Continuous Integration Infrastructure as code All configuration for deployment defined in readable text configuration files and stored in version control with

Continuous Integration: Results

CompanyDeploy

FrequencyDeploy

Lead TimeReliability, Quality, and Responsiveness

Typical Enterprise

Every 9 months

Months low

Amazon23,000 / day

Minutes high

Page 15: Continuous Integration...Continuous Integration Infrastructure as code All configuration for deployment defined in readable text configuration files and stored in version control with

Continuous Integration is now

the industry standard

in web development

Page 16: Continuous Integration...Continuous Integration Infrastructure as code All configuration for deployment defined in readable text configuration files and stored in version control with

How can we apply these lessons

to software development

for medical devices?

Page 17: Continuous Integration...Continuous Integration Infrastructure as code All configuration for deployment defined in readable text configuration files and stored in version control with

Prerequisites

1) Software in Version Control

2) Fully Automated Build Process

Page 18: Continuous Integration...Continuous Integration Infrastructure as code All configuration for deployment defined in readable text configuration files and stored in version control with

Add Automated Testing

Unit Tests

•Break dependency on hardware with stubs, mocks

•Practice Test Driven Development

Can’t be done? Not worth the effort?

Bull$#!%

Page 19: Continuous Integration...Continuous Integration Infrastructure as code All configuration for deployment defined in readable text configuration files and stored in version control with

Add Automated Testing

Integration Tests

•Run special test images on real hardware to exercise hardware

•Add scripting and data instrumentation to embedded code to enable automation

Page 20: Continuous Integration...Continuous Integration Infrastructure as code All configuration for deployment defined in readable text configuration files and stored in version control with

Infrastructure as Code

Build and Development Environments can be

virtual machines that are defined with readable text

configuration files.

Everyone has the same build environment

Page 21: Continuous Integration...Continuous Integration Infrastructure as code All configuration for deployment defined in readable text configuration files and stored in version control with

Get Started with Continuous Integration

• Buy a build server

• Install CI Software (Jenkins, GitLab)

• Start with build only, email on failure

• Slowly add tests, defined infrastructure, etc.

• Invest 20% of effort in improving processover time. Slow, steady progress wins.

Page 22: Continuous Integration...Continuous Integration Infrastructure as code All configuration for deployment defined in readable text configuration files and stored in version control with

What’s possible

Page 23: Continuous Integration...Continuous Integration Infrastructure as code All configuration for deployment defined in readable text configuration files and stored in version control with

What’s possible

Page 24: Continuous Integration...Continuous Integration Infrastructure as code All configuration for deployment defined in readable text configuration files and stored in version control with

What’s possible

Page 25: Continuous Integration...Continuous Integration Infrastructure as code All configuration for deployment defined in readable text configuration files and stored in version control with

Open Questions:

If FDA is part of the deployment chain, what steps

can you take to minimize that time?

Page 26: Continuous Integration...Continuous Integration Infrastructure as code All configuration for deployment defined in readable text configuration files and stored in version control with

Open Questions:

Imagine what can be possible with over-the-air

updates. Can medical devices achieve continuous

delivery of software updates?

Example: Tesla

Page 27: Continuous Integration...Continuous Integration Infrastructure as code All configuration for deployment defined in readable text configuration files and stored in version control with

Learning Resources

Page 28: Continuous Integration...Continuous Integration Infrastructure as code All configuration for deployment defined in readable text configuration files and stored in version control with

Thank you!

Jeff Gable

website: jeffgable.com

email: [email protected]

Phone: (949) 226-4574