5 Obstacles to Continuous Delivery in Embedded Software

  • 292 views
Uploaded on

Presented at Electric Cloud Spark 2013, October 16, 2013, http://www.electric-cloud.com/summit/ …

Presented at Electric Cloud Spark 2013, October 16, 2013, http://www.electric-cloud.com/summit/

Based on content from blog-post at http://www.electric-cloud.com/blog/2013/05/03/5-aspects-that-makes-continuous-delivery-for-embedded-different/

Continuous Delivery means making sure your software is always production ready – that any build could potentially be released to users at the touch of a button using a fully automated process.  This relies on comprehensive automation of the build, test and deployment process, and excellent collaboration across all teams involved. While the absolute majority of the general theories and concepts defining Continuous Delivery are very much valid also for embedded product development organizations, the typical technical environments are vastly different from what’s commonly being referenced. Legacy, infrastructure, lead times, and compliance are all very common challenges (in many cases intertwined with each other) that needs to be addressed if you are to succeed with Embedded Continuous Delivery. Finally it is also important to understand that the end goal of a Continuous Delivery implementation for an embedded product development organization is typically very different than what it would be for a product development organization based on web or cloud based technologies.
 
This talk will discuss how the concepts of Continuous Delivery are applied across a wide range of embedded industries, highlighting 5 key aspects and common pitfalls that needs to be considered gating a successful Embedded Continuous Delivery implementation.

More in: Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
292
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
7
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • Agile = frequent, smaller deliveries  Small batch sizesContinuous Integration = build/test every check-in  Fail fastContinuous Delivery = any build potentially released to users  Continual flow through processContinuous Release = release every good build into production  Eliminate waste (WIP)On next slide, mention speed bumps (optimize constraint points)This is a generic representation of a software delivery pipeline. Across the top is coordination between stages and often times siloed groups which need to happen. But in each stage, such as Dev, are many other steps that need to happen in an orchestrated manner, to determine if the project can move to the next stage or not.This “pipeline” is modeled using a derivation of the lean manufacturing principles, which actually map well to software delivery as well. Lean manufacturing famously came out of the Toyota Production System, where they looked at how to build better automobiles more quickly. They did this by optimizing their constraint points, so that no work get’s backed up waiting for them. Work that is waiting is called WIP (work in progress) and is considered to be waste. The goal of Lean is to weed waste out of the system.This parallels software delivery where a slow build time, for example, can make a developer wait, and fall out of context, resulting in much more time and effort spent when troubleshooting. Another constraint area is in system/environment configuration, which can be needed at every stage of the delivery process, yet when done manually, out of context of the greater focus, can take weeks to accomplish.And so, accelerated software delivery requires an end to end system which is flexible to work with 100’s of tools, can integrate, manage, and fullfill the resource demands, and orchestrate activity across all of the delivery pipeline stages.

Transcript

  • 1. 5 Obstacles to Continuous Delivery in Embedded Software Presented by David Rosen
  • 2. Embedded Continuous Delivery Obstacle: Infrastructure
  • 3. Continuous Delivery Defined Continuous Release Continuous Delivery Continuous Integration Agile Development Define Develop Build Test Release Operate Requirements Model Version Control IDE Compile Build Functional Non-Func Deploy Configure Provision Monitor • • • • Agile = frequent, smaller deliveries Continuous Integration = build/test every check-in Continuous Delivery = any build potentially released to users Continuous Release = release every good build into production 4
  • 4. Embedded Continuous Delivery Obstacle: Legacy
  • 5. Embedded Continuous Delivery Obstacle: Infrastructure
  • 6. Embedded Continuous Delivery Obstacle: Infrastructure
  • 7. Embedded Continuous Delivery Obstacle: Compliance
  • 8. Embedded Continuous Delivery Obstacle: The End Goal
  • 9. Q&A