I’ve been using Keyboard Maestro for about five years now, and I've always wondered who developed the program, and what is the story behind its development.
Well, the developer of Keyboard Maestro, Peter N. Lewis kindly agreed to an email interview exchange in which he shared how Keyboard Maestro came about, his role in further developing the program to the version it exist today, and his process for keeping such a powerful program updated.
I want to thank Peter for taking the time to respond to my questions.
After you read this interview, I invite you to follow up with one or two of your own questions, or just simply give Peter some positive feedback about how Keyboard Maestro is working for you.
1. Let's start with your background? Where the heck do you live, and what's your background as a Mac developer?
I was born in Jamaica, grew up in Montreal, and moved to Perth, Australia when I was 12, and have been here ever since. I got my first Mac in 1986 and started releasing free and shareware Mac applications in the early '90s.
I formed Stairways Software in 1994 and developed Internet applications through the 90s which proved to be good timing as the Internet grew exponentially over those years.
My main program then was a file transfer application called Anarchie, later renamed to Interearchy, and which I sold to Matthew Drayton (at the time working for me as the lead developer) in 2007.
2. When was Keyboard Maestro first launched; what motivated you to develop it; and about how long did it take you to develop it?
Michael Kamprath wrote Keyboard Maestro for Mac OS X and released it in early 2002. Work on version 2 commenced, but life and work got in the way of his further development, and Keyboard Maestro languished for over a year. At the time I was already a dedicated Keyboard Maestro user and contacted Michael to query the long delay. On discovering that he was considering abandoning it, I offered to purchase Keyboard Maestro to ensure its continued development. So in mid 2004 I acquired it and released version 2.0 as a Stairways product shortly afterwards.
After selling Interarchy I was able to focus on Keyboard Maestro, and the development has continued apace since then, with major versions released in 2008, 2009, 2011, 2013 and 2015. During that time Keyboard Maestro's user-base has increased a very steady rate of around 10% every five or six months, going from a relatively unknown application to one that is widely known and used by many thousands of people every day.
3. Wow, you were an actual user of KM before you started continuing its development. Okay, so then what drew you to start using KM back in it's early stages, which was before OS X was released?
Keyboard Maestro was written for OS X, so it was one of the early OS X applications (it was a continuation of a program called Application Switcher on Classic Mac OS).
The big challenge for me was coming to terms with a whole new code base that I had not designed, using a language (C++) that I was not overly familiar with.
After releasing original version (which was largely Michael’s work), the next two major versions required significant re-engineering to give it a really solid base to build on. So version 3 was an almost complete rewrite of the engine and underlying structure, getting all the fundamentals in place. Then version 4 was an almost complete reimagining of the user interface.
There have been a lot of improvements and changes since version 3 & 4, but they all build on those two releases — the structure of version 3 and the UI of version 4.
4. What challenges did you face in furthering the development of the program? Where there challenges because of Apple's operating system back then?
One of the biggest challenges Keyboard Maestro has faced is Apple’s continued efforts to lock down the system. For example, Apple’s requirement that all Mac App Store applications be sandboxed, so version 5’s entrance in to the Mac App Store followed quickly by its departure with the release of version 6.
It is unfortunate that Apple excludes productivity applications from the Mac App Store, but in other ways it is a good thing — being outside the Mac App Store has numerous advantages. For example, it allows me to easily control the purchase process, easily issue refunds, communicate with my customers, offer upgrade pricing, and more.
Upgrade pricing is probably the most important since I firmly believe that paying for upgrades gives the best results for everyone – it closes the feedback loop to ensure that I am working as much for existing customers as I am trying to gain new customers, and it ensures that I only get paid if I keep doing a good job.
5. You made reference to sales of Keyboard Maestro in the Mac App Store. Did having the application hosted in the store bring you different type of buyers for the program, such as customers getting acquainted with the program for the first time? And what type of Mac users do think generally use Keyboard Maestro?
I think the Mac App Store was good for getting wide exposure early on, but these days you just get lost in the millions of other applications unless you happen to get lucky and Apple promotes you. And since there is no communication between me and the Mac App Store customers, it is extremely difficult to help them get started. And because there is no trial on the Mac App Store, it is very hard for a potential customer to see the value proposition.
Once you have used Keyboard Maestro for a while, and it has saved you a few hours, then it becomes an easy choice to make the purchase – and frankly if it cannot save you a bunch of time then you should not be purchasing it. So this works both ways as I have no desire for people to purchase Keyboard Maestro and not get value out of it.
As for the type of people using Keyboard Maestro, it generally tends towards the Mac power user, but this is actually a shame in some regards. The people who have the most to gain from Keyboard Maestro are the ones doing repetitive work (which tends to be a lot on computers) and especially those without highly developed skills to find other ways to automate their activities.
One of the big problems I have is getting Keyboard Maestro into the hands of people it could benefit is that Keyboard Maestro seems quite complex to use, but it really isn't. It is simply a matter of saying “when I do this, make the computer do that”. “When I press F1, open my Quicken accounts; When I press F2, open my bank’s web site; When I plug in my backup disk, run my backup program; At 8AM, launch Calendar & OmniPlan; When I connect to my home network, launch Twitter & open my Facebook page”. All of these are trivial macros which would take perhaps a minute to set up and then make your life easier every day.
6. I’ve really liked your recent major updates, and especially when you released the new icon for your application. I use the icon a lot on my blog site. So in terms of updates, what's your process for working out the upgrades? Do you work on coding a little each day, or do you work on it in spurts? Do you beta test features with a few users? In general, what's you overall process for doing development work, and how long does it typically take to get new upgrades developed and released?
The process for each day tends to be similar. Usually I start by clearing the support (and other) email, including the forum, and then the remainder of the day is spent programming.
The overall development cycle for Keyboard Maestro follows a fairly consistent pattern over a period of about two years (preferably more like 18 months, but it has tended to be more like two years). After a major release there is a lot of general support and maintenance work, so not much programming gets done. Fixing up any issues that were missed in testing and polishing any rough edges. This continues on through several minor and bug fix updates over the next year or so, rounding out some or the major new features, or adding other minor changes. Each of these releases is beta tested by a small group of customers.
After that work starts on the next major release. By that point, I usually have the outline of the major features I want to do. I usually try to have a good mix of engine features (new facilities that Keyboard Maestro can perform) and user interface features (improvements to the editor and the look of the various features). Because a lot of Keyboard Maestro is in flux at this point, I usually just work on it alone with only me beta testing. When the major version is mostly complete, then I start formal beta testing while writing the documentation for the new version. The beta testers inevitably find some issues, but more importantly they point out features that would better complete or compliment other features. When everything is ready, the new major version is released and the cycle repeats.
7. Here's one of my burning questions as a long time user of KM: there's a Macro Inspector feature in KM that reports how much time a user has saved by triggering individual macros. For instance, it says I have saved 9 hours by typing a string trigger that inserts a ? mark for me, which is much quicker than me looking down at the keyboard to make sure I'm clicking the question mark key.
According to the inspector, I have used that that macro 3088 since July 22, 2015.
How does KM determine that time? How accurate would you say that report is? I have no doubt that it saves me typing time, but I'm curious if there's some type of algorithm used to determine the time?
Basically each action that executes has a guess for how much time it has saved you. So something simple like typing a keystroke saves you a fraction of a second, but activating an application might save you a couple seconds if it is already running, but a few more seconds if it needs to be launched.
Executing a script might save you ten seconds for example. The stats for the number of times and the starting date of the macro were added when Keyboard Maestro 7 was released (July 22, 2015), so you probably have used that macro a lot more times (probably many thousands) before then. But mostly that is a bit of fun – it does make it clear that Keyboard Maestro is saving you lots of time.
8. And finally, what advice would you give to new users of Keyboard Maestro for getting the most out of the program? How should they approach learning how to use it?
My recommendations for starting Keyboard Maestro would be to first read the Quick Start, and then do the Tutorial (Help ➤ Tutorial). At that point you should be able to create a simple macro. After that, start simple and grow organically. Rather than try to jump straight in and automate your whole payroll system, start with macros that automate parts of the problem. Perhaps start by launching the payroll software and position the windows. Then create another macro that helps you add an entry. Then later on you can look at joining the various macros together. But if you try to do the whole thing at the start you're likely to be daunted and give up and miss out on the benefits you could have gotten from the simpler macro while you expanded your skills.
And join the KM forum, and ask if you have any problems or need any help. Keyboard Maestro is designed to be very orthogonal, with each part complimenting each other part. So you can start with the basics and get good value out of it, and then with each thing you learn it multiplies what you can do.
I hope you enjoyed reading this interview as much I did asking and getting the feedback. I sort of feel like Peter is a hero of mine when it comes to using the Mac. I couldn't imagine using an Mac computer without having Keyboard Maestro installed.
Keyboard Maestro saves me the trouble of so many repetitive tasks, as Peter points out, the program is not difficult to use, though there is a lot to discover.
If you like this article, please share your thoughts about the program and how you're using it in your daily workflow.