![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](https://reader036.vdocument.in/reader036/viewer/2022062506/5f0dd23f7e708231d43c40c6/html5/thumbnails/1.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062506/5f0dd23f7e708231d43c40c6/html5/thumbnails/2.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062506/5f0dd23f7e708231d43c40c6/html5/thumbnails/3.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062506/5f0dd23f7e708231d43c40c6/html5/thumbnails/4.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062506/5f0dd23f7e708231d43c40c6/html5/thumbnails/5.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062506/5f0dd23f7e708231d43c40c6/html5/thumbnails/6.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062506/5f0dd23f7e708231d43c40c6/html5/thumbnails/7.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062506/5f0dd23f7e708231d43c40c6/html5/thumbnails/8.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062506/5f0dd23f7e708231d43c40c6/html5/thumbnails/9.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062506/5f0dd23f7e708231d43c40c6/html5/thumbnails/10.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062506/5f0dd23f7e708231d43c40c6/html5/thumbnails/11.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062506/5f0dd23f7e708231d43c40c6/html5/thumbnails/12.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062506/5f0dd23f7e708231d43c40c6/html5/thumbnails/13.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062506/5f0dd23f7e708231d43c40c6/html5/thumbnails/14.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062506/5f0dd23f7e708231d43c40c6/html5/thumbnails/15.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062506/5f0dd23f7e708231d43c40c6/html5/thumbnails/16.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062506/5f0dd23f7e708231d43c40c6/html5/thumbnails/17.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062506/5f0dd23f7e708231d43c40c6/html5/thumbnails/18.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062506/5f0dd23f7e708231d43c40c6/html5/thumbnails/19.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062506/5f0dd23f7e708231d43c40c6/html5/thumbnails/20.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062506/5f0dd23f7e708231d43c40c6/html5/thumbnails/21.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062506/5f0dd23f7e708231d43c40c6/html5/thumbnails/22.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062506/5f0dd23f7e708231d43c40c6/html5/thumbnails/23.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062506/5f0dd23f7e708231d43c40c6/html5/thumbnails/24.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062506/5f0dd23f7e708231d43c40c6/html5/thumbnails/25.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062506/5f0dd23f7e708231d43c40c6/html5/thumbnails/26.jpg)
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](https://reader036.vdocument.in/reader036/viewer/2022062506/5f0dd23f7e708231d43c40c6/html5/thumbnails/27.jpg)
Learning Resources