A few weeks ago I joined my Polymorph colleagues for our regularly irregular, all-hands Makerdays — two days of fun, hacking, sharing, learning.
It’s certainly irregular that I am able to attend: I am one of the more remote workers (though far from the most distant from the company’s Stellenbosch office) but it was travel time well invested. Most Polymorph people work from home most of the time, and we regard ourselves as a “remote-first” company, but there is still much to recommend getting together in one place, especially when the purpose is to have some free exploration time outside the constraints of normal projects.
Maker Days are our small-company version of a certain internet search company’s “20% Time”. Initially we tried allocating a half-day a week for everyone to use on personal projects or explorations. It did not work well. Half a day is simply not enough time to get anything meaningful done, especially on top of a morning’s project work. Our next iteration was to try devoting one full day a month to personal projects. Better, but still not great. In building software or hardware, a day is just not very long, either. So our current iteration — we’re nothing if not agile to our bones — is two full days for personal projects, every second month, and it seems to work quite nicely, even if client projects occasionally put a spoke in our scheduling.
There’s no pressure around Maker Days… people are welcome to take part or not as they wish, to focus on making or learning as they wish, and particularly no pressure to make anything “saleable” or “product oriented” (though that’s OK, too, as you’ll see). It’s just an opportunity to use our skills in a more playful way than everyday project work allows.
This Maker Day was a great example. The first morning saw sixteen of us gathered in the office open-space.
As usual we run a continuous Hangout session, with camera, mic and speakers covering the whole room so that remote colleagues can take part, too. Dawid kicked off the session by summarising the various projects and organising the Polymorph All Comers Rocket League Tournament. Maker projects include
- Herman exploring how voice-activation might be useful for IoT devices. Voice-recognition on a Raspberry Pi? Sounds challenging to me!
- Mitch is building his robotic dog Rotti, powered by an Arduino Micro.
- JP, assisted by Russel on UI development, building on to his Soaring Coach app — an app to help novice glider pilots.
- “Helena 2.0”, a new project aiming to build applications to make our esteemed Office Manager’s work a little easier by automating common data-gathering tasks. This project attracted quite a large team of helpers.
- Pieter and Anthony have opted for quieter, one-person learning projects — Anthony delving into the upgrade path from Swift 2 to Swift 3, and Pieter learning the ins-and-outs of accessing devices from Android using Bluetooth networks.
- Christine is working on a Tetris game for Android devices.
- Colin is setting up the new 3-D printer we’ve acquired and gathering resources together to make it easier for those of us keen to try it out.
Preliminaries out of the way, everybody goes to work on their chosen project. Those working in a team self-organise and lay their plans for the two days, the objective being to have something to demo by Friday afternoon. Dawid posts the Rocket League double-knockout ladder, and the games begin.
Thurs, 11 a.m.: All is quiet, but for Duke and Pieter dueling for Rocket League supremacy off in the lunch-room. I am feeling a little like a spare-part, being one of the few people not actively engaged in “making”. Mitch shows me the workings of Rotti, his robot dog. This Maker Day he is working on integrating a Bluetooth module so that Rotti can be let off his leash. He’s had to disable Rotti’s head movements, though, because the Bluetooth module is in the way. The “Helena 2.0” team have decided that gathering “Know Your Company” questionnaires makes for a good start towards their larger goal. They’ve chopped the task into bite-sized pieces, and feel confident that they can deliver a MVP by the end of Maker Days.
Lunchtime! Everybody takes a break and we all share Pizza. Not for long, though — everybody is eager to get back to their projects. There’s a definite vibe of “get stuff done” so that each project will have something concrete to show for their work when the two days are done.
4 p.m.: Dawid calls a halt for the day, and everyone gives a quick synopsis of their progress and learnings so far. Mitch has his code talking to the robot’s Bluetooth module, Christine has Tetris blocks falling down her phone’s screen, and is figuring out how to use gestures to move and turn the shapes. Russel has converted the Soaring Coach UI to use Angular and Bootstrap and has successfully uploaded flight data to the server. Herman’s RasPi is recognising speech and seems ready to start controlling stuff tomorrow. It will just be some LEDs for now, to prove the concept. Colin has the 3-D printer calibrated and has set up a Slack channel for us to share our 3-D printing experiences and resources. Ryno is printing Polymorph’s first model — a Pokemon. We call it a day.
Friday morning is bright and sunny — a perfect Spring morning in Stellenbosch. I arrive a little late, having squeezed in a breakfast meeting with an old friend and colleague. A kind of hush has settled over the office open area, broken only by the murmur of the “Helena 2.0” team brainstorming in the Conference Room next-door. Christine is tapping away at her Tetris game, JP is calculating distances and times on his phone, figuring some test values to plug into the unit tests he can now write for his newly-refactored, and much more comprehensible, code. The code is all about figuring out whether a glider is circling, catching rising air to gain altitude. Herman’s mouse needs a charge. Where are Mitch and Rotti? Seems they’ve decided to work at home today.
12h00.: Christine’s Tetris app now responds to swiping and twisting gestures. After playing with it for a while we conclude that the twisting gesture is “sorta awkward” as a way to orient the blocks. Also, there’s a bug in the block-generation code — we’re only getting S-shapes.
JP seems to have solved his circle-detection problem and is busy writing more unit-tests to validate his solution.
Herman had vastly improved the reliability of his voice-recognising code by reducing the vocabulary it works with, and by changing some of the trigger words to be more distinctive. We’re not sure whether he’s pushed the Raspberry Pi beyond its capacity, whether we’re seeing the boundaries of the library’s capacity, or, as seems likely, some combination of the two.
The “Helena 2.0” team is progressing well on the KYC module — they can ask questions, get answers, and the devs are just tying those two together. Other team members are working on copy for instruction and marketing video, and Paul has developed a beautiful logo for the app.
15h00.: Things start to wind down for the day. Each team does a short show-and-tell of what they’ve achieved over the past two days of Making.
- Christine shows off her Tetris app. Blocks get moved from side to side by swiping, and she has settled on a double-tap gesture for rotating blocks.
- Anthony describes the breaking changes he sees in Swift 3.0, though he rates them as “mostly good changes”. His firm recommendation is that new development should adopt Swift 3.0 sooner rather than later.
- Herman is disappointed. He has run into some last-minute bad behaviour in the RasPi GPIO library. The library thinks that the pins he has assigned are already in use by something else. More debugging is required before he can consider his work “finished”.
- Pieter reports that the Estimotes he started out trying to use turned out to be pretty useless — too many issues with dodgy battery connections and battery life — so he ended up doing all his Bluetooth explorations between two Android devices. He comments that in the long run it was more educational using the low-level Bluetooth commands than some API which would have shielded him from the nitty-gritty details. He has one device detecting and measuring light levels, and the other displaying a light-meter, the data flowing via the Bluetooth link between them.
- JP has fixed the bugs in his circle-detection logic, and Russel’s completed a bunch of back-end changes on Soaring Coach. He’s successfully migrated the app to run completely on AWS.
- “Helena 2.0” has not only gained its first functional module, but has also acquired a “real” name. Henceforth it will be known as “Kanto”. Not only have the team built a fully-functional app, they’ve also made a proof-of-concept video explaining the value proposition for the Kanto MVP, and a website to market the product.
The winner of the Rocket League Tournament is Paul. He confesses to having had “some prior experience” that gave him an edge over most of us fumblers. All-in-all, a highly successful two days. Loads of fun, lots of learning. We all celebrate with beers and snacks, and look forward to our next Maker Days, currently planned for November. Maybe you’d like to join us?