Make it Like an Espresso Machine
My company had a great year. A seriously-fantastic, blew-past-our-revenue-targets-in-June, doubled-our-insurance-premiums (‘cause those are tied to revenue lest the insurance companies go hungry) kind of year. I’ve had plenty of the other kind of year, this was way better. It was a ton of effort and everyone had to work some extra hours to meet demand as we were scaling up staff as quickly as prudently possible. Beyond paying the requisite overtime, and giving everyone some pay bumps, I wanted to improve daily life a little bit. We’d all be spending a little more time in the shop, it should be a tad nicer. Now, when I say we had a great year, this isn’t a Silicon-Valley great year. Nobody is lighting cigars with $100 bills here in little Warren, Rhode Island, but we can blow a little cash for a treat. Heck, if you can’t enjoy the good times, what are you going to do during the inevitable bad times? So I bought a few celebratory upgrades to the break room, but my favorite was an espresso machine.
Not everyone in our company drinks coffee, but nearly everyone does, and those of us that enjoy coffee really enjoy coffee. So I wanted to get the best espresso machine and headed over to The Wirecutter to find it. Reading through their typically thorough reviews, it dawned on me that I actually didn’t want the best espresso machine. What I wanted was a reliably very good cup of espresso with as little fuss as possible. I don’t want, nor do I want my co-workers, to learn how to operate an espresso machine to pull the perfect shot. I just want to enjoy my coffee. The ideal machine would be no machine, rather a nice cup o’ joe materializing whenever I got a hankering for some robust, flavorful coffee. So I bought the recommended beginner machine and super-convenient grinder to go with it. It is about as close as you can get to one-button perfection. Stick the basket in the smart grinder, tamp the grinds down a bit, lock it into the espresso machine, press one button and moments later you have a consistently good cup of espresso.
With better machines you can pull a better shot, but you have to be more engaged in the process to operate the machine properly. By contrast, Breville Bambino Plus hides all the complexity behind one button. It obviously doesn’t make the internal process any easier, water still needs to be heated properly and pumped through the grounds at the correct moment, it just hides the complexity and uses software in the machine to do its best to mimic a good barista. You work for me, coffee machine.
This approach mirrors my feelings on designing scenic automation equipment for live entertainment. The products we design at Creative Conners aren’t the best in the sense that they aren’t the most sophisticated or don’t have the most features. Instead, we aim for simplicity. Breathtaking effects are absolutely achievable with Spikemark, but my goal is to make it possible for anyone to get into automation and move stuff. To achieve that goal I sacrifice features to keep the software accessible. The best automation system would be no automation system, where the scenery magically moves the way the designer envisions without any motion controllers, or drives, or rigging, or cue programming. Keep it as minimal as possible, hide the complexity, let us do more coding to keep it simple for the technicians charged with realizing the designer’s intent. That’s the lens I look through when scrutinizing our products.
As I look over the Spikemark UI with that critical eye I see complexity that needs fixing. Over 15 years of development we’ve of course added many features to the software. Those features are great and definitely needed. Projection mapping integration and ad hoc UDP messaging and grouped motion are all fantastic capabilities. But then I look at the Properties Pane for a typical machine and the huge list of parameters that can be adjusted gives me shivers. There’s a lot of numbers to tweak. And who the heck understands it all besides those among us that are anointed automation gurus?
Over the past 15 years, I’ve noted that users have less and less appetite for learning intricate software. I think that’s a good thing. It used to be that every decent sized application required studying and digesting hundreds of pages of instruction manuals. Nobody really wants to do that anymore, including me. Learning to use the software is not the goal. The software is merely the required tool to get to the goal. Our customers want to move stuff on stage. Everything else is a necessary evil, a distraction from their real purpose. Further, the majority of our customers are not full-time automation technicians. Automation is just one small aspect of their job. They are Technical Directors, Stage Carpenters, sometimes even Production Managers or Stage Managers that are trying to get a show up and ready for the audience.
The design of an automation system spans several disciplines, so I use a lot of different software to get my work done. Besides writing C and VB.Net and Python to help develop our software, I also use AutoDesk Fusion360 for mechanical design and EagleCAD for PCB design, and QuickBooks and Excel and Illustrator and... yeah a lot of software. EagleCAD, for example, is a great tool for circuit design and PCB layout, but oh my lord is it a bizarre, funky, unintuitive mess of a UI. I dread opening up that software after it’s been dormant on my hard drive for months, knowing that it will take hours to re-orient myself to the application. So I have sympathy for our customers. Maybe they haven’t opened Spikemark since last year when they loaded-in Christmas Carol and they just want it to work. Make. It. Move. Please. For the love of God. Move. Now!
The coming year promises to be a big year on the software product side for us. We’ve got some big network protocol changes happening under the hood, and some even fancier platform changes that have been months in the making. As we slosh around in the lower layers of Spikemark I’m taking notes on how we could use some of the new plumbing code to simplify the higher levels of the application. Get it all down to one button. Make it like an espresso machine (or as close as possible).