thilo horstmann - 50000 lines of code to brew a coffee - code.talks 2015

Post on 12-Apr-2017

420 Views

Category:

Internet

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

WHY THIS TALK?

2

STRUCTURE AND TOPICS

3

PROTOTYPES

TESTING

ENVIRONMENTS

SECURITY

agile approach

challenges

adopted approach

introduction

lessons learned

PROJECT OVERVIEW

4

PRODUCT SYSTEM

CONNECTED PRODUCT

SMART PRODUCT

PRODUCT

KEY CHALLENGES

5

STAY AGILE IN A GLOBAL PROJECT

KEY CHALLENGES

6

GETTING THINGS CONNECTED

KEY CHALLENGES: GET CONNECTED

7

KEY CHALLENGES

8

EVERYTHING IS OFFLINE

KEY CHALLENGES

9

USER FLOWS ACROSS DEVICES

1

2

3

45

6

7

KEY CHALLENGES

10

THERE IS NO MACHINE

KEY CHALLENGES: GET THE UX RIGHT!

11Photo by Wikipedia/Terabass CC BY-SA 4.0

KEY CHALLENGES

12

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

PROTOTYPES

13

PROTOTYPES

14

DUMMIES

low fi hi fi

clickable

WALKING SKELETON

Hello World!

ALPHA

core functions

BETA

real users

RELEASE

live!

PROTOTYPES

15

DUMMIES

USER TESTING / IDEATION

3D PRINTED

SPEAKERS TO MAKE COFFEE SOUNDS

167

PROTOTYPES

17

FAKE SERVICE

NEEDED TO IMPLEMENT APP / BACKEND

SOFTWARE THAT CAN RUN ON ANY DEV MACHINE

18

PROTOTYPES

19

FAKE MACHINE

WIFI SETUP DEVELOPMENT

BEAGLEBONE + NODE.JS

20

PROTOTYPES

21

THE BOX

SOME REAL HARDWARE

REAL USER CONTROLS

DOESN’T BREW COFFEE

Double-click to edit

PROTOTYPES

23

FUNCTIONAL PROTOTYPE

and !nally …

… YEAH! SOME COFFEE :)

24Photo by Wikipedia/Takeaway CC BY-SA 4.0

PROTOTYPES

25

DUMMIES WALKING SKELETON ALPHA BETA RELEASE

DUMMIES FAKE SERVICE

FAKE MACHINE

THE BOX

FUNCTIONAL PROTOTYPE

PROTOTYPES

26

DUMMIES WALKING SKELETON ALPHA BETA RELEASE

DUMMIES FAKE SERVICE

FAKE MACHINE

THE BOX

FUNCTIONAL PROTOTYPE

minutes hours

weeks months

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

TESTING

28

29

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

Martin Fowler

AGILE

30

working software

fast feedback

respond to change

simplest solution

automation

small, continuous improvements

LIGHTWEIGHT FAST FLEXIBLE

TESTING

31

unit

integration

functional

TESTING

32

CONTINIOUS INTEGRATION FTW!

33

TESTING

34

CONTRACT TESTS

FAKE / GUIDED USER INTERACTION

PARTIAL USER JOURNEYS

ENVIRONMENTS

35

ENVIRONMENTS

36

DEV TEST PROD

db

backendclient

dev machine

client

cloud

backend

cloud

db

cloud

ENVIRONMENTS

37

db backend

client simulator

dev machine

fake machine

DEV

ENVIRONMENTS

38

TEST

client

phone

cloud

db

backend

fake machine

local device

wi!

fake machine

local device

wi!

real machine

local device

wi!

ENVIRONMENTS

39

cloud desk

automatic manual

minutes hours

SECURITY

40

SECURITY

41

What is the agile approach to security?

cross functional teams

automated testing

automated provisioning

threat modelling

SECURITY

42

scenario I: you break your own machine

oh…

SECURITY

43

scenario II: you break somebody else’s machine

oh…

haha!

SECURITY

44

scenario III: you break ALL machines

it doesn’t stop!

haha!

what happened?!

I want co"ee!

oh…

LESSONS LEARNED

45

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

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

47

top related