It was pretty clear, after we’d released the first version of SuperDuper! that, scheduling was something users were clamoring for. We kind of knew that was coming—it’s a pretty common feature of this kind of program. So, after Bruce and I talked about whether or not it was something that we wanted to do (it was), I started to think about how to accomplish the high level goal.
As (I think) I’ve said elsewhere, part of SuperDuper!’s philosophy is to keep things as simple as we can, and keep the options to a minimum even when that might mean disappointing a customer or two. The last thing we want is for SuperDuper! to grow into some giant, confusing beast of an application—and so, we’re pretty conservative about what we add, and take a long time to think about the simplest way to implement what could be complicated functionality.
So after thinking about this for a while, right around WWDC 2004 I sketched out a relatively simple change to the main SuperDuper! window: a Copy Later button. And, from that, a window that showed these scheduled copy operations, and a basic UI to set the schedule that was flexible, but not too flexible.
I do most of my initial UI design on paper, with basic “storyboarding” of the way things work and how they look, along with little notes about other behavioral issues that are implied by the design. I’ll try to scan one of two of those in here at some point, if anyone’s interested…
I was fortunate enough to schedule a session with one of Apple’s UI designers at WWDC, and ran through the existing UI, as well as the changes planned for Options and some other parts of v2.0. The reaction to the changes (and, to my surprise, to the existing UI—a topic for another post) was very favorable, so I felt pretty strongly that we were on the right track.
Bruce and I talked about the engineering necessary to achieve our goals, and soon thereafter we broke things down into what needed to be implemented along the path to v2.0 (much of which is in the current version of SuperDuper!). This included:
- “Settings documents”, which allowed a user to save all the information associated with a backup operation.
- AppleScript support
- Many internal changes to support “hands-free” operation
- An AppleScript framework that will actually run the backup itself (while being useful for other things, too)
What happened over the next few months is an interesting lesson in “losing the light”, and it all comes back to the Copy Later button. Stay tuned.