Introduction to the CoffeeBoy Series

CoffeeBoy Logo

Welcome to the introductive post of the CoffeeBoy Series. CoffeeBoy is a remotely controllable coffee machine capable of making multiple cups of coffee at once. In this series you’ll accompany the development process of the CoffeeBoy product, namely from design over construction up to refinement. This post briefly introduces the idea behind CoffeeBoy and what you can expect in this series.

The challenge

Imagine the following scenario. You’ve invited some friends for breakfast. You are in the kitchen making coffee for them, while your guests are sitting in the dining room having their breakfast. Of course, each guest has a specific wish regarding the coffee recipe: strong coffee without sugar, mild coffee with two spoonfuls of sugar, Cappuccino with extra milk froth, and so on. However, you can’t keep all those coffee recipe wishes in mind. Several times you have to go back to the dining room asking stuff like: “Sorry, how are you going to drink your coffee again? Weak, mild or strong? With milk and sugar?”.

This scenario shows three major problems:
1. You are the host, though not at the table with your guests.
2. You have to memorize each individual coffee recipe wish.
3. You have to wait until all cups of coffee are made.

Life is so hard! If there only could be a suitable product…

CoffeeBoy to the rescue!

The aim of this series is to create a product which solves the previously-listed problems. We’ll develop a product named CoffeeBoy1 overall consisting of the hardware components Coffee Machine and Remote Device, as well as of the software components Local Client and Remote Client. Like the barista of your favourite cafe, CoffeeBoy will accept and process orders for multiple cups of coffee. You’ll only have to pick ’em up.

A CoffeeBoy user will be able to submit her order either on-site by means of the Coffee Machine’s touch display, or from afar by means of the Remote Device. CoffeeBoy will also enable the user to (locally and remotely) perform common tasks like managing the coffee recipes and monitoring the ingredients inventory.

The below diagram shows the user’s point of view on CoffeeBoy. What then follows is a brief description of the respective CoffeeBoy components.

User's point of view on CoffeeBoy

Coffee Machine
The Coffee Machine will have features which are typical for coffee machines, like a power button, a touch display and tanks for ingredients (water, coffee beans, milk and sugar). However, it’ll furthermore feature a nozzle capable of moving from cup to cup and, dependent on the coffee recipe, spill out coffee (with admixed milk and / or sugar) or milk froth. The Coffee Machine will also run the software necessary to locally as well as remotely control the Coffee Machine.

Local Client
By means of the Local Client running on the Coffee Machine the user will be able to control the Coffee Machine with the touch display.

Remote Device
The Remote Device represents any kind of hardware that is able to run software and communicate through the network: a mobile phone, a tablet, a notebook, a desktop PC, a TV, you name it.

Remote Client
By dint of the Remote Client running on a Remote Device the user will be able to control the Coffee Machine from afar.

We’ll cover CoffeeBoy’s components in more depth in subsequent posts.

The series’ idea

Firstly the idea for this series is to have a well-designed and, from the reader’s point of view, well-known use case. This use case is the CoffeeBoy product. Then, armed with all the insights and knowledge gained in the design phase, it’s planned to realize this use case by means of a first approach. Lastly, if the author’s time and mood permits, it’s contemplated to realize this use case by means of alternative (maybe better) approaches.

The series’ schedule

The CoffeeBoy Series will proceed through four phases as illustrated in the below schedule:

CoffeeBoy Series Schedule

We’ll start with the introduction phase and end with the refinement phase. Each post will contain the above schedule in order to show you in which phase we currently are. In the next sections each phase will be described.


The first posts will introduce the process which we’ll apply to design CoffeeBoy. We’ll learn user experience (UX) design and the UX design approach according to Jesse James Garrett’s book The Elements of User Experience (2002). In order to give this series a more human and narrative flavor the author thought up broodforce Ltd., a fictive company which will develop CoffeeBoy. Throughout the whole series we’ll slip into the role of broodforce’s CIO Pete. broodforce will be introduced in the last post of the introduction phase.

UX Design

UX design is all about designing the right product for the right people. Across several posts we’ll learn, amongst others, the strategy, the requirements, the interaction design, the industrial design as well as the interface design for CoffeeBoy. Most notably we’ll meet the representatives for the users (i.e. the personas) for which we’ll develop CoffeeBoy: Amy and Bob.


In the construction phase we’ll get our hands dirty and bring CoffeeBoy to life. Thereby we’ll focus on the development of the software components enabling the user to control CoffeeBoy, namely the Local and the Remote Client. This means that the Coffee Machine, its firmware and drivers will be simulated respectively mocked. For the first construction approach we’ll apply a technology stack consisting of MongoDB, ExpressJS, AngularJS and NodeJS (aka MEAN stack).


In the refinement phase we’ll apply alternative approaches to develop CoffeeBoy. This phase will give the author the chance to tinker with new or other software engineering concepts, architectures, languages, technologies, techniques and tools. As long as the IT provides the author enough fuel for alternative approaches this phase will have an open end 😉

How to follow

You’ll find the CoffeeBoy source code at GitHub. If you want to get notified about new blog posts then follow broodlab on Twitter or subscribe to the broodlab RSS-Feed. Thanks for following!

Up next

In the next part of this series we’ll start with the introduction phase. There the author will drop some words about what’s important to know about UX design. Stay tuned!


  1. The name CoffeeBoy will be explained in a subsequent post 😉