Top Banner
Feedback-driven Product Development Cisco’s development and innovation centre in Norway develops videoconferencing products, telepresence technology and collaboration solutions. This is embedded product development involving advanced mechanics, customised electronics, movable parts and millions of lines of software mostly written in C and C++. Over the last two decades we have gradually established a workflow that very much supports lean and agile product development for hundreds of engineers working closely together. A lot of effort goes into establishing effective feedback loops guiding the whole development process. We are not only talking about rapid feedback from build systems and continuous integration, but also from regression tests, advanced scenario testing and real users. The focus on establishing feedback loops goes beyond the product development workflow, it is a principle applicable to the whole organization. This talk will present a concrete insight into the software development workflow that we are using today, before discussing what you need to consider if you want to set up an equally effective feedback-driven product development workflow in your organization. a 30 minute session, Continuous Delivery & DevOps Conference in Oslo (CoDe) April 29, 2015 Olve Maudal how we do it at Lysaker and how you can design your own system
67

Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

Jul 18, 2018

Download

Documents

TrươngTuyến
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

Feedback-driven Product Development

Cisco’s development and innovation centre in Norway develops videoconferencing products, telepresence technology and collaboration solutions. This is embedded product development involving advanced mechanics, customised electronics, movable parts and millions of lines of software mostly written in C and C++. Over the last two decades we have gradually established a workflow that very much supports lean and agile product development for hundreds of engineers working closely together. A lot of effort goes into establishing effective feedback loops guiding the whole development process. We are not only talking about rapid feedback from build systems and continuous integration, but also from regression tests, advanced scenario testing and real users. The focus on establishing feedback loops goes beyond the product development workflow, it is a principle applicable to the whole organization. This talk will present a concrete insight into the software development workflow that we are using today, before discussing what you need to consider if you want to set up an equally effective feedback-driven product development workflow in your organization.

a 30 minute session, Continuous Delivery & DevOps Conference in Oslo (CoDe)April 29, 2015Olve Maudal

how we do it at Lysaker and how you can design your own system

Page 2: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

Feedback-driven Product Development

Cisco’s development and innovation centre in Norway develops videoconferencing products, telepresence technology and collaboration solutions. This is embedded product development involving advanced mechanics, customised electronics, movable parts and millions of lines of software mostly written in C and C++. Over the last two decades we have gradually established a workflow that very much supports lean and agile product development for hundreds of engineers working closely together. A lot of effort goes into establishing effective feedback loops guiding the whole development process. We are not only talking about rapid feedback from build systems and continuous integration, but also from regression tests, advanced scenario testing and real users. The focus on establishing feedback loops goes beyond the product development workflow, it is a principle applicable to the whole organization. This talk will present a concrete insight into the software development workflow that we are using today, before discussing what you need to consider if you want to set up an equally effective feedback-driven product development workflow in your organization.

a 30 minute session, Continuous Delivery & DevOps Conference in Oslo (CoDe)April 29, 2015Olve Maudal

how we do it at Lysaker and how you can design your own system

Page 3: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

Feedback-driven Product Development

Cisco’s development and innovation centre in Norway develops videoconferencing products, telepresence technology and collaboration solutions. This is embedded product development involving advanced mechanics, customised electronics, movable parts and millions of lines of software mostly written in C and C++. Over the last two decades we have gradually established a workflow that very much supports lean and agile product development for hundreds of engineers working closely together. A lot of effort goes into establishing effective feedback loops guiding the whole development process. We are not only talking about rapid feedback from build systems and continuous integration, but also from regression tests, advanced scenario testing and real users. The focus on establishing feedback loops goes beyond the product development workflow, it is a principle applicable to the whole organization. This talk will present a concrete insight into the software development workflow that we are using today, before discussing what you need to consider if you want to set up an equally effective feedback-driven software development workflow in your organization.

a 30 minute session, Continuous Delivery & DevOps Conference in Oslo (CoDe)April 29, 2015Olve Maudal

how we do it at Lysaker and how you can design your own system

Page 4: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

Feedback-driven Product Development

Cisco’s development and innovation centre in Norway develops videoconferencing products, telepresence technology and collaboration solutions. This is embedded product development involving advanced mechanics, customised electronics, movable parts and millions of lines of software mostly written in C and C++. Over the last two decades we have gradually established a workflow that very much supports lean and agile product development for hundreds of engineers working closely together. A lot of effort goes into establishing effective feedback loops guiding the whole development process. We are not only talking about rapid feedback from build systems and continuous integration, but also from regression tests, advanced scenario testing and real users. The focus on establishing feedback loops goes beyond the product development workflow, it is a principle applicable to the whole organization. This talk will present a concrete insight into the software development workflow that we are using today, before discussing what you need to consider if you want to set up an equally effective feedback-driven software development workflow in your organization.

a 30 minute session, Continuous Delivery & DevOps Conference in Oslo (CoDe)April 29, 2015Olve Maudal

how we do it at Lysaker and how you can design your own system

Page 5: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

Cisco Systems, Innovation CenterLysaker, Norway

Page 6: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

Telepresence

Page 7: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

Telepresence

Page 8: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

Some of the stuff we develop at Lysaker

Page 9: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

at Lysaker we are ~350 engineers

Page 10: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

most of us work with software developement

Page 11: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

but we also do...

Page 12: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

Electronics / Hardware

Page 13: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

Mechanics

Page 14: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

1992 2015

Industrial Design and User Experience Design

Page 15: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

Looking into

the future

Page 16: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

• embedded software development• about 200 software developers• typically more than 100 commits per day• 4-5 million lines of code, mostly C and C++• visible traces back to the late 1980’s• ~20 products, ~50 builds

The main codebase at Lysaker

Page 17: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

“... an organization that develops spectacular products and outperforms all competitors”

At Lysaker we have been developing telepresence products andcollaboration solutions for more than two decades (since ~1991)

Page 18: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

The secret sauce

Page 19: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

The secret sauce

Page 20: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

The secret sauce

The most important ingrediences

Page 21: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

The secret sauce

• Effective feedback loops• Slack• Professionalism• Focus on value• Systems thinking• Transparency• Release early, release often

The most important ingrediences

Page 22: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

The secret sauce

• Effective feedback loops• Slack• Professionalism• Focus on value• Systems thinking• Transparency• Release early, release often

The most important ingrediences

Page 23: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

Facts about advanced product development

Page 24: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

Few high tech projects are like running down on a paved road where you can see the ...

Page 25: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

... goal in the end of the road.

Page 26: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

Most projects are more like...

Page 27: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

extreme orienteering

Page 28: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

in impossible terrain

Page 29: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

with a group of people

Page 30: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

in the dark

Page 31: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

with only a sketchy map as guidance

Page 32: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

http://www.youtube.com/watch?v=oetF3UTIwbc

Page 33: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

http://www.youtube.com/watch?v=oetF3UTIwbc

Page 34: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

An example of a continuous integrationand deployment system

Page 35: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

Continuous integrationand deployment

system

Page 36: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

emulator

target

unit tests

Continuous integrationand deployment

system

Page 37: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

emulator

target

unit tests

continuous integration

QA status

Continuous integrationand deployment

system

Page 38: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

emulator

target

unit tests

continuous integration

QA status

code base

Continuous integrationand deployment

system

Page 39: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

emulator

target

unit tests

continuous integration

QA status

code base

Continuous integrationand deployment

system

Page 40: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

emulator

target

unit tests

continuous integration

QA status

unit tests

code base

Continuous integrationand deployment

system

Page 41: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

emulator

target

unit tests

continuous integration

QA status

unit tests module tests

code base

Continuous integrationand deployment

system

Page 42: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

emulator

target

unit tests

continuous integration

QA status

unit tests module tests

code base

builds

Continuous integrationand deployment

system

Page 43: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

emulatorsemulatorsemulatorsemulators

emulatorsemulatorsemulatorstargets

emulator

target

unit tests

continuous integration

QA status

unit tests module tests deployment engine

system tests

code base

builds

Continuous integrationand deployment

system

Page 44: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

emulatorsemulatorsemulatorsemulators

emulatorsemulatorsemulatorstargets

emulator

target

unit tests

continuous integration

QA status

unit tests module tests deployment engine

system tests

code base

builds

Continuous integrationand deployment

system

Page 45: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

emulatorsemulatorsemulatorsemulators

emulatorsemulatorsemulatorstargets

emulator

target

unit tests

continuous integration

QA status

unit tests module tests deployment engine

system tests

code base

builds

Continuous integrationand deployment

system

Page 46: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

emulatorsemulatorsemulatorsemulators

emulatorsemulatorsemulatorstargets

emulator

target

unit tests

continuous integration

QA status

unit tests module tests deployment engine

system tests

code base

builds

Continuous integrationand deployment

system

scenario testing softwaredistribution

Page 47: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

emulatorsemulatorsemulatorsemulators

emulatorsemulatorsemulatorstargets

emulator

target

unit tests

continuous integration

QA status

unit tests module tests

code coverage

deployment engine

system tests

code base

builds

Continuous integrationand deployment

system

scenario testing softwaredistribution

Page 48: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

emulatorsemulatorsemulatorsemulators

emulatorsemulatorsemulatorstargets

emulator

target

unit tests

continuous integration

QA status

unit tests module tests

code coverage

deployment engine

system testsstatic code analysis

code base

builds

Continuous integrationand deployment

system

scenario testing softwaredistribution

Page 49: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

emulatorsemulatorsemulatorsemulators

emulatorsemulatorsemulatorstargets

emulator

target

unit tests

continuous integration

QA status

unit tests module tests

code coverage

deployment engine

system testsstatic code analysis

code base

builds

Continuous integrationand deployment

system

scenario testing softwaredistribution

static code analysis

Page 50: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

emulatorsemulatorsemulatorsemulators

emulatorsemulatorsemulatorstargets

emulator

target

unit tests

module tests

continuous integration

QA status

unit tests module tests

code coverage

deployment engine

system testsstatic code analysis

code base

builds

dynamic code analysis

Continuous integrationand deployment

system

scenario testing softwaredistribution

static code analysis

Page 51: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

emulatorsemulatorsemulatorsemulators

emulatorsemulatorsemulatorstargets

emulator

target

unit tests

module tests

continuous integration

QA status

unit tests module tests

code coverage

deployment engine

system testsstatic code analysis

code base

builds

dynamic code analysis

Continuous integrationand deployment

system

scenario testing softwaredistribution

static code analysis

Page 52: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective
Page 53: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective
Page 54: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

We want something like that! Where do we start?

Page 55: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

We want something like that! Where do we start?

• Create a robust build system

Page 56: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

We want something like that! Where do we start?

• Create a robust build system• Integrate continuously

Page 57: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

We want something like that! Where do we start?

• Create a robust build system• Integrate continuously• Grow professionalism

Page 58: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

• Embedded? Create your own build system!• Check in build system with your code• Aim for a clean build, eg get rid of warnings (-Werror)• Superfast, incremental and partial builds• Heterogeneous development environment (avoid the VS6 effect)• Invest in writing good emulators• Make sure unit tests can run on dev machine, emulator and target• Integrate your test systems into your build system (--test-all)

Create a robust build system

Page 59: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

• Manual integration vs Automatic integration• Beware of sandboxes (comfortable developers are leathal!)• Continuous pain is the key to success• Test everything, for all commits• Superfast feedback• Invest in equipment for fast and complete system testing• Prune unused metrics and feedback mechanisms• Slim down your QA department

Integrate continuously

Page 60: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

• make sure you have enough slack in the system• avoid staged or gated commits, some broken builds are acceptable• focus on the flow of changes• make everything visible and advocate collective ownership• encourage code reviews, but avoid mandatory formal code reviews• beware of the observer effect• optimize for your best developers

Grow professionalism

Page 61: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

!

Page 62: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective
Page 63: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

Make sure that everybody is working towards a common goal.

Page 64: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

Control does not always work

Page 65: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

Focus on flow

Page 66: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

The more you tighten your grip, Tarkin, the more star systems will slip through your fingers.

(Princess Leia)

Page 67: Feedback-driven Product Development - …oma/FeedbackDrivenDevelopment... · This is embedded product development involving ... Continuous Delivery & DevOps ... up an equally effective

The more you tighten your grip, Tarkin, the more star systems will slip through your fingers.

(Princess Leia)