47
code.talks 2015, Hamburg, Sep 30th 2015 50000 LINES OF CODE TO BREW A COFFEE T h i l o H o r s t m an n ! @t h i l o

Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

Embed Size (px)

Citation preview

Page 1: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

c o d e . t a l k s 2 0 1 5 , H a m b u r g , S e p 3 0 t h 2 0 1 5

50000 LINES OF CODE TO BREW A COFFEE

Thilo Horstmann !@thilo

Page 2: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

WHY THIS TALK?

2

Page 3: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

STRUCTURE AND TOPICS

3

PROTOTYPES

TESTING

ENVIRONMENTS

SECURITY

agile approach

challenges

adopted approach

introduction

lessons learned

Page 4: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

PROJECT OVERVIEW

4

PRODUCT SYSTEM

CONNECTED PRODUCT

SMART PRODUCT

PRODUCT

Page 5: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

KEY CHALLENGES

5

STAY AGILE IN A GLOBAL PROJECT

Page 6: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

KEY CHALLENGES

6

GETTING THINGS CONNECTED

Page 7: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

KEY CHALLENGES: GET CONNECTED

7

Page 8: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

KEY CHALLENGES

8

EVERYTHING IS OFFLINE

Page 9: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

KEY CHALLENGES

9

USER FLOWS ACROSS DEVICES

1

2

3

45

6

7

Page 10: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

KEY CHALLENGES

10

THERE IS NO MACHINE

Page 11: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

KEY CHALLENGES: GET THE UX RIGHT!

11Photo by Wikipedia/Terabass CC BY-SA 4.0

Page 12: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

KEY CHALLENGES

12

HTTPS?! JSON?! That’s just fancy candy for the internet kiddies… 01100111001101010101 !!!

Page 13: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

PROTOTYPES

13

Page 14: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

PROTOTYPES

14

DUMMIES

low fi hi fi

clickable

WALKING SKELETON

Hello World!

ALPHA

core functions

BETA

real users

RELEASE

live!

Page 15: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

PROTOTYPES

15

DUMMIES

USER TESTING / IDEATION

3D PRINTED

SPEAKERS TO MAKE COFFEE SOUNDS

Page 16: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

167

Page 17: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

PROTOTYPES

17

FAKE SERVICE

NEEDED TO IMPLEMENT APP / BACKEND

SOFTWARE THAT CAN RUN ON ANY DEV MACHINE

Page 18: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

18

Page 19: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

PROTOTYPES

19

FAKE MACHINE

WIFI SETUP DEVELOPMENT

BEAGLEBONE + NODE.JS

Page 20: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

20

Page 21: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

PROTOTYPES

21

THE BOX

SOME REAL HARDWARE

REAL USER CONTROLS

DOESN’T BREW COFFEE

Page 22: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

Double-click to edit

Page 23: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

PROTOTYPES

23

FUNCTIONAL PROTOTYPE

and !nally …

Page 24: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

… YEAH! SOME COFFEE :)

24Photo by Wikipedia/Takeaway CC BY-SA 4.0

Page 25: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

PROTOTYPES

25

DUMMIES WALKING SKELETON ALPHA BETA RELEASE

DUMMIES FAKE SERVICE

FAKE MACHINE

THE BOX

FUNCTIONAL PROTOTYPE

Page 26: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

PROTOTYPES

26

DUMMIES WALKING SKELETON ALPHA BETA RELEASE

DUMMIES FAKE SERVICE

FAKE MACHINE

THE BOX

FUNCTIONAL PROTOTYPE

minutes hours

weeks months

Page 27: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

PROTOTYPES

27

DUMMIES WALKING SKELETON ALPHA BETA RELEASE

DUMMIES FAKE SERVICE

FAKE MACHINE

THE BOX

FUNCTIONAL PROTOTYPE

FAKE SOFTWARE

REAL SOFTWARE

FAKE HARDWARE

REAL HARDWARE

Page 28: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

TESTING

28

Page 29: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

29

“YOU CAN'T BE AGILE WHEN YOU'RE KNEE-DEEP IN MUD”

Martin Fowler

Page 30: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

AGILE

30

working software

fast feedback

respond to change

simplest solution

automation

small, continuous improvements

LIGHTWEIGHT FAST FLEXIBLE

Page 31: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

TESTING

31

unit

integration

functional

Page 32: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

TESTING

32

Page 33: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

CONTINIOUS INTEGRATION FTW!

33

Page 34: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

TESTING

34

CONTRACT TESTS

FAKE / GUIDED USER INTERACTION

PARTIAL USER JOURNEYS

Page 35: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

ENVIRONMENTS

35

Page 36: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

ENVIRONMENTS

36

DEV TEST PROD

db

backendclient

dev machine

client

cloud

backend

cloud

db

cloud

Page 37: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

ENVIRONMENTS

37

db backend

client simulator

dev machine

fake machine

DEV

Page 38: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

ENVIRONMENTS

38

TEST

client

phone

cloud

db

backend

fake machine

local device

wi!

fake machine

local device

wi!

real machine

local device

wi!

Page 39: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

ENVIRONMENTS

39

cloud desk

automatic manual

minutes hours

Page 40: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

SECURITY

40

Page 41: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

SECURITY

41

What is the agile approach to security?

cross functional teams

automated testing

automated provisioning

threat modelling

Page 42: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

SECURITY

42

scenario I: you break your own machine

oh…

Page 43: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

SECURITY

43

scenario II: you break somebody else’s machine

oh…

haha!

Page 44: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

SECURITY

44

scenario III: you break ALL machines

it doesn’t stop!

haha!

what happened?!

I want co"ee!

oh…

Page 45: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

LESSONS LEARNED

45

Page 46: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

LESSONS LEARNED

46

resources matter, hardware is hard to change software has to be build around it5

offline + complex user flows analyse more than you used to4

don’t reinvent the wheel when getting things connected3

automate more than you first think is possible2

co-locate with the hardware people1

Page 47: Thilo Horstmann - 50000 Lines Of Code to Brew a Coffee - code.talks 2015

THANK YOU! LET’S MEET AT OUR STANDThilo Horstmann - @thilo

47