Embedded environments greatly restrict the tools available for a DevOps pipeline. A regulated environment changes the processes a development team can use to deliver software. The combination results in a highly restricted environment that forces the team back to first principles, finding what can actually work. In this talk we'll consider the options, develop a set of helpful tools and discuss the challenges facing any team working on DevOps in unfavorable environments.

Together, we'll examine my experiences with a medical device company, where I built a DevOps pipeline for software controlling a heart pump. I would like to discuss the tools that worked as well as the principles that lead our team to success.


Outline/Structure of the Experience Report

  1. What's the Problem?
    1. Legal Concerns
    2. Building and Unit Testing
    3. Integration
    4. Deployment and Testing
    5. Resource Needs and Team Size
  2. Git Flow and Agile Dev in a Regulated World
    1. Legal Concerns
    2. The Need to Integrate
    3. Tooling Support
    4. Even Better Tooling
  3. Expect, Lifesaver
    1. Non-existent Tooling
    2. Expect to Deploy
    3. Separation of Concerns
    4. Building a Framework
  4. Scalability and Resource Concerns
    1. Resource Needs and Pitfalls
    2. Resource Allocation
    3. Locking
    4. Scaling for a Growing Team
    5. Full-Blown Resource Management

Learning Outcome

I hope to get across all of the following:

  1. Unavoidable challenges developing modern, agile software in a regulated and embedded environment
  2. A basic framework for delivering tested software in face of those challenges
  3. Pitfalls you're likely to encounter trying to implement the framework
  4. How to improve on the basic framework

Target Audience

Embedded Device Professionals, Developers working in a regulated industry, DevOps professionals

schedule Submitted 4 years ago

Public Feedback

    • Max Saperstone

      Max Saperstone - Implementing DevOps on a Legacy Project

      45 Mins

      I recently was put on a project where we were doing development for a website. There was already a large code base, and we went in to add features in order to complete the site; including performing code refactoring when necessary. In order to accomplish this successfully, we wanted to build a complete DevOps pipeline, ensuring the application was being tested early and often: static analysis, unit, smoke, acceptance, security, feature, load, and performance. None of this testing was previously in place, and to ensure the refactoring doesn’t break anything, this testing became critical for us.
      This session will discuss setting up a complete DevOps pipeline, with a quick CI cycle, followed by automated and scheduled CD cycles to QA, Staging, and Production. We will cover the many pitfalls of integrating already built code into this process, and some lessons learned and good strategies for other teams looking to accomplish this. Tools and techniques used for a PHP project will be demoed, but all of these practices can be applied to any project.

    • Max Saperstone

      Max Saperstone - Custom Testing Frameworks

      45 Mins

      There are many testing tools and frameworks out there, and the question often is, which is the best one to use. The main things that I look for are ease of use, self documentation, and error handling. After working with Selenium for almost a decade, I have yet to come across a framework that provides that with ease. So I decided to write one. I wrote this framework to build upon Selenium's tools, specifically to provide more error handling capabilities and custom output reporting. While the Testing Framework is both designed and optimized for Selenium Webdriver, it can be run for any type of tests, including used for unit tests. An entire testing framework, including custom reporting metrics, is built on top of the basic TestNG framework. All of the Selenium functionality is wrapped, providing fallback capabilities, so that if an element is missing, or a check is performed that fails, the test do not crash, they continue forward, logging the error. All Selenium calls are automatically documented, and screenshots are taken anytime an action or check is performed. Setup was designed to be simple and quick, allowing more concentration on creating tests, and less worry about configuring.

    • Jeffery Payne

      Jeffery Payne - Building an Agile Company from Scratch

      Jeffery Payne
      Jeffery Payne
      Coveros, Inc.
      schedule 4 years ago
      Sold Out!
      45 Mins

      There's been lots of talk recently about how agile can be used to run and manage businesses. This presentation discusses the lessons learned while building Coveros into a successful company by using agile methods. Topics discussed will include: effective approaches for keeping an organization lean, leveraging agile principles for company structure and staff organization, using Scrum/Kanban techniques to focus staff on what's most important and minimize WIP, and using open book management techniques to assure everyone in the company can impact change. Challenges and issues in implementing these concepts will be discussed as well as how to overcome them. Participants in this session will leave with practical ideas about how to apply agile principles to their business (or division) and make it more successful.