The application formerly known as Hydra won the top prize in the International category in the second Mac OS X Innovators Contest. If you've visited their web site, you couldn't help but notice that every instance of "Hydra" has been substituted with "#####." That's because on August 13th a legal issue surrounding the name surfaced, and it has yet to be resolved.
Session by Mac OS X Innovator Contest Winner Robb Beal:
Rich Internet apps on the Mac face unique drag-and-drop challenges. One of the major issues is that they need to acquire additional context before accepting or dealing with dropped items. Robb Beal, Mac OS X Innovator Contest Winner, leads this session that features some of the UI issues that he encountered while creating Spring's ubiquitous drag-and-drop experience. Robb will also be a special guest at the Mac OS X Innovators Special Event on Wednesday night at the Conference.
O'Reilly Mac OS X Conference
Many of us in the developer community find these situations unnerving. This application was a free download created by a group of industrious students in Germany, who, as it turns out, are no more (and probably less) immune from legal entanglements than the biggest corporation.
As of the publishing of this interview, the creators of Hydra can't discuss the legal problems surrounding the name. But what they can talk about is how to build a great application that has won two prestigious awards. (To protect them from any further problems, in the conversation I've removed all instances where Martin referred to Hydra and substituted "#####.")
Martin Pittenauer of TheCodingMonkeys, the software development group that also includes Martin Ott, Dominik Wagner and Ulrich Bauer, talks about how this group of guys sat down and decided that they wanted to create a great Mac OS X application. Once they had the initial concept, they set goals for themselves and methodically reached each milestone that eventually led to a 2003 Apple Design Award, and an unexpected prize in this contest.
One of the things that jumped out at me in this discussion is how important process was to their success. But I should let Martin describe this in his own words.
Derrick Story: First off, I want to comment about how terrific the site looks and the great first impression it makes. Did you guys create that yourselves, or did you get some help?
Martin Pittenauer: Thanks for your compliments. The web site was one of my tasks. I took a look at Apple's web site and combined that style with what I'm searching for when I browse a piece of software's homepage: Meaningful screenshots, a feature list, feedback options, and fast access to the actual download. After some HTML work in ##### and some image tweaking in Photoshop, we had what we were looking for.
DS: And while we're at it, how did the name TheCodingMonkeys come about?
MP: We got the feeling that a lot of computer science students (and actually quite a few educators) seem to think that having a diploma saves you from doing actual coding work. In their world, every graduate that walks away from university to work for a company manages a staff of coding monkeys that implement his ideas. We think that's a less than humble way of thinking.
So when we searched for a name I remembered a speech given to students by C.K. Haun (Director of Developer Technical Support at Apple) at WWDC 2002. He talked about how getting a diploma does not save you from continuing to learn and how new team members at companies have to work from the ground up, doing a lot of "Coding Monkey" work.
DS: OK, I need to stop monkeying around here and get to your award-winning application. So when did the lightning bolt of inspiration first strike about your idea? Was it in the shower, on a walk, during conversation ...?
MP: It was a cold December day back in 2002 in southern Germany. We were eager to develop the next cool Cocoa application, an enterprise quite ambitious for us back then. At this time there weren't any tangible ideas, however.
We did a lot of ill-fated brainstorming but without real results. So we sat together again trying to come up with something great. We already agreed on Rendezvous playing a key role in our application, as we really like the idea behind it. So after hours of discussion, one of us came up with idea to build a distributed editor. Having done paired programming before, we quickly realized the potential of this idea.
While there was some discussion about how easy or impossible a non-locking implementation of collaboration would be, the desire for such an editor grew while talking about it. On the same night, a mock-up was designed that, looking back, didn't differ much from the actual final product. After a few weeks of research, it turned out that there has been quite some scientific progress on that topic, but there weren't any usable implementations. So we had a goal.
DS: Then what did you do? Work up a prototype, get some help, let it ferment? How much time passed between when you had the initial inspiration and the first working prototype?
MP: Since we had to finish some study work first, we actually started to work on ##### in February. To kick off the project, we established an infrastructure for software development consisting of a bug tracker and a Subversion repository. After working for about two weeks on networking and collaboration layers, we had a basically working version up and running.
As the project matured, submitting to the Apple Design Awards became an important goal, providing us with a fixed deadline for release. On our way to that deadline we did some sort of micro-milestoning. Every week we set up a set of action items for a specific milestone that was reviewed in an end-of-the-week meeting that also set the objectives for the next week. Internal milestones were named after cities on the way from Munich, where we are based, to Cupertino. This turned out to be a very productive and motivating process.
DS: I really like that image of the milestones being cities between Munich and Cupertino. I'm curious, what were some of them?
MP: The milestones were called Paris, Reykjavik, Nuuk, Halifax, Chicago, Denver, and Cupertino. While that's probably not a route any sane airline pilot may travel, it looked really good on our internal bugtracker as an "in-flight map" progress meter.
DS: OK, lets change gears for a minute. Do you have a mentor? Or maybe someone who helped you overcome the technical hurdles involved with bringing your idea to life? Tell us about that person and his/her role.
MP: If there is one person we can really call a mentor, that's certainly Rafael Kobylinski, who brought us to Cocoa in the first place. He established Cocoa and Mac OS X programming courses at our university, giving us a unique chance to get in touch with Apple technologies in our curriculum. In terms of technical hurdles, we were on our own.
DS: And how many people did you tell about your idea during the development phase? Was this something you kept under your hat, or did the Mac community at large know you were working on this?
MP: At first, only two or three people were aware of our project, as we didn't want to talk too much about a unfinished, still fragile project. On March 1st, we took the opportunity to show off a preview version of ##### at Wocoa, a gathering of European Apple developers, in Lausanne, Switzerland, to get feedback from some professional developers.
DS: So now that you look back, which was harder -- developing the application to the point that it was ready for public consumption, or the "sales, marketing, distribution" side of the equation?
MP: In our case, definitely, developing the application was the harder part. In comparison, we did not put too much effort into distribution and marketing. Our goal was to deliver a Mac-like application and a distribution channel (i.e., web site) that ties in seamlessly with it. So developing and designing an application that lives up to the "Macintosh experience" was certainly a much more difficult thing to do than creating a web site that fits this application.
DS: And has your approach to marketing it given you the results you hoped for?
MP: That and more. The web site traffic we generated on our first release just by sending a press release to the major Mac news services was amazing. After a while, we got picked up by Macslash and then Slashdot, which drove our site views through the roof. You could look at the web server's log just scrolling through ... :)
We also received (and answered) about 500 emails, all containing thanks, best wishes, and feature requests.
DS: So, just as we were getting ready to run this interview, I learned that TheCodingMonkeys won't be using the original application name anymore. I'm sure the situation is somewhat complicated, but can you give Mac DevCenter readers a brief update as to what is going on?
MP: Sorry Derrick, currently I can't comment on that issue. Going into detail would probably substantially jeopardize our financial situations and our application's future.
DS: I'm really sorry to hear that. I hope you can find a reasonable solution to this situation. What adjustments will you make in the future when developing your next great software application?
MP: Checking trademark databases, and probably even registering one for a freeware project, is obligatory. Being less naive is another lesson we learned. Not making money with an application doesn't mean you can't lose any on it.
DS: That's a great point. I hate it that you guys are having to go through this. But I also think it's important for our audience to have the opportunity to learn from your experiences. Also, let's look at the other side of things. Strictly from a development perspective, would you do anything differently next time?
MP: Building our application was a really great experience and we can't think of any major change to the actual process to improve it significantly. We certainly would set up a similar infrastructure and rely on a milestone-driven process with a fixed deadline, as we had the feeling this helped development greatly. Using ##### to develop ##### in latter project stages also helped to improve the quality of the codebase a lot and to keep focus, in our opinion.
DS: Do you have any other advice to pass on to Mac developers?
MP: Use the Cocoa, Luke. This framework is just insanely great. Once you get into it, you'll never want to do anything else. Its design is awesome, you can learn loads of good programming style just by using it.
Oh, and: use a good bugtracker and a good software configuration management; e.g., JIRA and Subversion.
Derrick Story is the author of The Photoshop CS4 Companion for Photographers, The Digital Photography Companion, and Digital Photography Hacks, and coauthor of iPhoto: The Missing Manual, with David Pogue. You can follow him on Twitter or visit www.thedigitalstory.com.
Return to the Mac Innovators Contest
Return to the Mac DevCenter
Copyright © 2009 O'Reilly Media, Inc.