Upgrade to Pro — share decks privately, control downloads, hide ads and more …

50000 lines of code to brew a coffee

Jan Riehn
January 24, 2017

50000 lines of code to brew a coffee

We are used to agile software development. The tools and methods to thrive towards continuous delivery are mature. We can spin up environments in minutes, test our software automatically and deploy to production with a single click.

Connected devices bring a new layer of complexity to a project.

Hardware prototypes evolve in much longer cycles than the software. Automated testing becomes a challenge when user flows spread across multiple devices and involve human interaction. Environments for continuous integration suddenly move back from the cloud to real devices on our desks.

This talk is about the lessons learned from a real life project that builds a system around a connected consumer device. The goal is to highlight some of the challenges and our approaches to tackle them. There are patterns evolving that are a good guidance for other projects.

Jan Riehn

January 24, 2017
Tweet

More Decks by Jan Riehn

Other Decks in Programming

Transcript

  1. 50 000 LINES OF CODE FOR A CUP OF COFFEE

    Philip Peter | Jan Riehn @jriehn 1
  2. 50 000 LINES OF CODE TO BREW A COFFEE 3

    010101010011001110010101010110 011001101101010101100110011100 110101010111001110011101001100 111001101010101100110011100110 101010110011001110011010101011 001100111001101010101100110011 100110101010110011001110011101 010101010100110011100110101010 011001110011010101011001100111 101010101100110011100110101010 110011001110011010101011001100 111001101010101100110011100110 101010110011001110011010101011 001100110011010101011001100111 001101010101000
  3. PROTOTYPES 13 DUMMIES low fi hi fi clickable WALKING SKELETON

    Hello World! ALPHA core functions BETA real users RELEASE live!
  4. PROTOTYPES 19 DUMMIES WALKING SKELETON ALPHA BETA RELEASE DUMMIES FAKE

    SERVICE FAKE MACHINE THE BOX FUNCTIONAL PROTOTYPE
  5. PROTOTYPES 20 DUMMIES WALKING SKELETON ALPHA BETA RELEASE DUMMIES FAKE

    SERVICE FAKE MACHINE THE BOX FUNCTIONAL PROTOTYPE minutes hours weeks months
  6. PROTOTYPES 21 DUMMIES WALKING SKELETON ALPHA BETA RELEASE DUMMIES FAKE

    SERVICE FAKE MACHINE THE BOX FUNCTIONAL PROTOTYPE FAKE SOFTWARE REAL SOFTWARE FAKE HARDWARE REAL HARDWARE
  7. PROTOTYPES 22 DUMMIES WALKING SKELETON ALPHA BETA RELEASE DUMMIES FAKE

    SERVICE FAKE MACHINE THE BOX FUNCTIONAL PROTOTYPE define interfaces and data structures implement and test features
  8. TESTING 26 Problem 1: How do you test the integration

    with something that doesn’t exist?
  9. SECURITY 48 scenario III: you break ALL machines it doesn’t

    stop! haha! what happened?! I want coffee! oh…
  10. WRAP UP 59 Build prototypes and fake hardware Test everything

    works smoothly together Get this stupid thing connected Avoid security disasters Try to hide technology from user 0 50 000
  11. LESSONS LEARNED 61 resources matter, hardware is hard to change

    software has to be build around it 5 offline + complex user flows analyse more than you used to 4 don’t reinvent the wheel when getting things connected 3 automate more than you first think is possible 2 co-locate with the hardware people 1