On Being and Deliciousness, with Wil Shipley

yay couch

It's been awhile since we've had a nice chewable interview on the site, and I'm pleased to offer up a special treat: Wil Shipley of Delicious Monster, makers of Delicious Library. Mike Matas was going to sit in also (the couch comes with an ottoman), but as we'll get to, he has recently left the company for another opportunity.

If you've never heard of Wil, he has an interesting pedigree. He co-founded and helped lead The Omni Group for almost ten years, which originally developed software for the NeXTSTEP platform and now develops apps for Mac OS X. Omni Group is known for porting games, and apps like OmniWeb, OmniGraffle and OmniOutliner. After leaving Omni, he joined forces with another ex-Omni employee -- Mike Matas -- to start Delicious Monster.

Their first product, Delicious Library, billed itself as "The greatest media cataloging software in the world", and enjoyed an astonishing level of publicity and sales. It's features are too numerous to go into here, and are best seen via downloading the demo. If you don't have a Mac, the below screenshot should give you an idea...

wallpaper

Fair warning: This is a long interview, and it's all over the map, but there is another delicious treat waiting at the end...

Most know you and Mike left The Omni Group to form Delicious Monster, but the story of why you left hasn't come out. Why did you leave, and do you ever miss it?

It's hard to talk about leaving a company without sounding, I don't know... sniveling? I guess the biggest thing is, it wasn't my idea.

There were three of us on the board of directors, and the other two asked me to leave. I was told it was because I'd be happier on my own, where I could realize my own ideas and control my own destiny, since I hadn't been running Omni for about two years at that point, and I was clashing with management on an almost daily basis.

Obviously, I can only speculate on their reasons, but I would describe my style as "maveric," and most the company wasn't into that at this point. We had meetings where the consensus was "we're not an engineering company any more, we're a market-driven company," and that's the antithesis of the company I founded.

I'm also notorious for having a bad schedule (I've had insomnia since I was like twelve), and Ken felt like I couldn't effectively be part of the management team if I wasn't there during "core hours."

Whether they made the right decision for Omni is obviously something for Omni to say, and not me. At that point our most successful product release (and the ONLY product we released in those two years) had been the project that I'd just led (OmniGraffle 3), and this version had been written by me and two engineers off-site (one in another state), so I felt like this was a pretty clear indication that core hours aren't as important as, say, having a clear vision and motivating your people.

I started feeling like actual evidence and experience wasn't as important to Omni as was what was written in management and software books; so I was branded the crazy guy who wanted to ignore all the sage advice of my elders. Time and again our old policies, which had led to our success, were replaced by more conservative policies recommended by 'experts'.

My feeling was (and is): You don't adopt the mannerisms of big, successful companies when you're small, because those mannerisms aren't what made the companies successful.

They're actually symptoms of what is killing the company, because it's become too big. It's like if you meet an really old, really rich guy covered in liver spots and breathing with an oxygen tank, and you say, "I want to be rich, too, so I'm going to start walking with a cane and I'm going to act crotchety and I'm going to get liver disease."

The really important thing to remember is that what worked once won't necessarily work again, and in fact is less likely to work again because it's been done.

For example, the lesson from the iPod should be, "keep doing good designs and exploring new markets and providing integrated solutions until you hit on something people love," not, "come out with an MP3 player with a scroll-wheel and you'll make a zillion dollars." Because, as we've seen, companies that have done the latter have really flopped.

I certainly don't miss the last couple years at Omni, but I still love many of the guys there and I'm nostalgic for the early days. Some of us still do get to hang out, though, and I think my relationships with those guys are better now that they don't have to think of me as one of the people running the place.

If we fast-forward to Delicious Library, one of the notable things about its launch was just how much publicity it got for a brand new app; more than many apps from companies with larger 'backing'.

How important is marketing to the success of an app, and how do you approach getting the word out?

Marketing is huge. I've always felt there are two, equally-important parts to success: Step one is to create buzz, and step two is to exceed everyone's expectations. If you miss either step you're hosed.

Examples: Microsoft for years has been great at marketing but horrible at fulfilling even basic expectations (eg, "Will this computer run for a week without getting infected?"), and it's obviously catching up with them. Apple's been horrible at marketing (eg, "Hey, dummy, stop using your stupid PC and use our cool computer, you stupid idiot.") until very recently (cf, iPod), but their products have really rocked since 1997.

We were basically lucky in that we came out of the gate with a product that people really, really wanted (I think every programmer's first project is some kind of media database) and a look that was really, really cool (Go Mike). I'd like to at this point give Mike credit for coming up with almost all of the amazing UI, but I will say that the original idea for rendering the items as actual books and CDs and DVDs (with cases) on actual shelves was mine.

Mike's going to claim it was his, because he thought of it first, but he abandoned it and I called him one night and said we had to do it and we argued it out for a long time. (It was his idea to draw the full-sized covers instead of having a flat table like everyone else.)

To get the word out, we basically just talked directly to the various Mac websites and asked them to talk about us. This is the oldest technique there is in marketing, and it's still valid. Press the flesh, ask them point-blank to cover you. Mike did most of this, and it was obviously very successful.

Lets talk about that real-world interface metaphor for a moment. Users seem to really dig it in your app, but in the past these types of interfaces (Microsoft BOB and the QuickTime 4.0 player come to mind) have been recieved very poorly both by users and UI engineers.

Why do you think it works for your app while failing for others, and is it the kind of thing you 'felt' would work or had to do a lot of testing so you'd know you weren't bringing Microsoft BOB to the Mac?

I knew it'd work from the beginning, actually. The actual credit for the real-world metaphor in Delicious Library is a bit lost in the mists of my brain, but my recollection is that Mike always wanted to do full-size, beautiful covers, and one day I said, "Hey, look, let's draw them the correct sizes and aspect ratios and put shines on them and put them on shelves."

And Mike said (as he always did), "Yah, I thought of that last week, but I decided against it", and I said (as I always did), "Well, I think it'll be totally cool and compelling and we should do it and blah blah blah (half hour passes) and then when we eventually do comics we can blah blah... (more time)" and so Mike started mocking it up and his first mock-ups were horrible but we instantly knew we were doing the right thing.

photoshop

At one point we had an interface where we replaced Apple's brushed-metal with wood, and it looked really amazing but there were some technical issues and we finally decided that, actually, it was cool but it made the interface harder to understand. Sometimes you do stuff that's just cool for cool's sake, but you can't do it if it actually gets in the way of the app's transparency.

Speaking of cool for cool's sake... For v1.5, you added a Dashboard widget to Delicious Library, so one is able to click the Dashboard environment, click open your widget, search for a title, click it, then it opens up the title in Delicious Monster.

dashboard widgetIs this something you think gets a lot of actual use, or is it the kind of thing you're just 'expected' to do for those who have upgraded to 10.4 as a good Mac developer?

I honestly don't know how many people actually use it, although a ton of people have sure downloaded it. I'd love to hear from customers on this. I'm not a big widget guy myself, but sometimes you put stuff out there and see if it catches hold.

The widget was originally a technology demo and then Mike said, "Hey, this is pretty cool", so we productized it. That's not our normal process of development, but if a cat drops into your lap, you might as well pet it.

How much of the success of your product would you attribute to its iSight integration, and what made you think people would want to point their iSights at things? Earlier, similar efforts, like the CueCat didn't exactly catch the world on fire...

I thought up the iSight barcode scanning on about day two of being brought onto the project. Mike originally started this project in his company ("Mad Softworks") after leaving Omni, and when I left he and I joined forces (and named the new company "Delicious Monster," after my mom's plant).

I knew iSight scanning would one of those things that would tickle people silly if I could get it working, but I honestly had no idea how barcodes worked or if I had the processing power or if I could learn enough QuickTime to get everything going.

It ended up taking about a month to code, and was a ton of fun. For the first couple weeks I just took screenshots of barcodes and read websites about them and did research on what's already been done.

It turns out there are a number of toolkits for reading barcodes from images, but they are all relatively very slow (multiple seconds per image) and the ones I tested gave very bad results even for what seemed like clean images.

Everyone appeared to be thinking of barcode scanning as an image-processing and recognition problem, but it's not; this technology was invented in the 70s with hand-swiped wand scanners and really crappy chips, so you instantly have to say to yourself, "What's the trick to this that allowed them to do it on hardware 1/1000th as powerful as what I have?"

There were three tricks, actually, not one, and it took me two weeks of research to figure them all out.

I am very much in awe of the guy who invented barcodes; they are incredibly elegant. One trick is to notice that every digit in a barcode is two black stripes and two white stripes, so if you've read black-white-black-white you know you have a digit, no matter how quickly it happened. (If it happened too quickly, you can decide you're reading garbage and just bail.)

One of the rules of writing algorithms that I've recently been sort of toying with is that we (as programmers) spend too much time trying to find provably correct solutions, when what we need to do is write really fast heuristics that fail incredibly gracefully.

This is almost always how nature works. You don't have to have every cell in your eye working perfectly to be able to see. We can put together images with an incredible amount of damage to the mechanism, because it fails so gracefully and organically.

This is, I am convinced, the next generation of programming, and it's something we're already starting to see: for instance, vision algorithms today are modeled much more closely after the workings of the eye, and are much more successful than they were twenty years ago.

Wait wait wait, can you elaborate on this heuristics bit being the next big thing, because you just bent some people's brains. When I normally think of heuristics in computer science, I think of either "an educated guess" or "good enough".

I.E., a game programmer doesn't have to run out Pi to the Nth degree to calculate the slope of a hill in a physics engine, because they can get something 'good enough' for the screen using a rougher calculation... but hasn't it always been like that out of necessity?

Heuristics (the way I'm using them) are basically algorithms that are not guaranteed to get the right answer all the time. Sometimes you can have a heuristic that gets you something close to the answer, and you (as the programmer) say, "This is close enough for government work."

This is a very old trick of programming, and it's a very powerful one on its own. Trying to make algorithms that never fail, and proving that they can never fail, is an entire branch of computer science and frankly one that I think is a dead end. Because that's not the way the world works.

When you look at biological systems, they are usually perfect machines; they have all these heuristics to deal with a variety of situations (hey, our core temperature is too hot, let's release sweat, which should cool us off) but none of them are anywhere near provably correct in all circumstances (hey, we're actually submerged in hot water, so sweat isn't effective in cooling us off). But they're good enough, and they fail gracefully.

You don't die immediately if sweating fails to cool you; you just grow uncomfortable and have to make a conscious reponse (hey, I think I'll get out of this hot tub now).

Programs need to be written this way. In the case of reading bar codes, you don't care if you read garbage a thousand times a second. It doesn't hurt you. If you write an algorithm that looks for barcodes everywhere in the image, even in the sky or in a face or a cup of coffee, it's not going to hurt anything. Eventually the user will hold up a valid barcode, it'll read it, the checksum will verify, and you're in business.

And the barcode recognizer doesn't have to understand every conceivable way a barcode can be screwed up. If the lighting is totally wrong, or the barcode is moving, the user has to take conscious action and, like, tilt the book differently or hold it still. But this kind of feedback is immediately evident, and it's totally natural.

Because I can try 1,000 times a second, I can give immediate feedback on whether I have a good enough image or not, so the user doesn't, like, take a picture, hold her breath for four seconds, have the software go "WRONG," try adjusting the book, take another picture, hold her breath...

Humans are incredibly good at trying new and random things when they get instant feedback. It's the basis of all learning for us, and it's an absolutely fundamental rule of UI design. (This is also the basis of the movement away from having modal dialogs that pop up and say, "Hey, you pressed a bad key!" If you have to pause and read and dismiss the dialog, the lesson you get is, "Stop trying to learn this program," not, "Try a different key."

The Mac and NeXTstep were pioneers in getting this right -- just beep if the user hits a wrong key, so if she wants she can lean on the whole keyboard and see if ANY keys are valid, and there's no punishment phase for it.)

I've pinged a bunch of users about your product, and the overriding issue that kept coming up was performance, in the vein of "It feels heavy" and "Where are the cycles going?". Where are the cycles going?

Drawing those dang covers, and displaying all the fiddly fields in the info pane. We use bindings for the fields, and there can be performance issues as you re-layout all the fields as you change selection rapidly.

The user's just looking at the selected item in the main view, usually, but we keep the inspector up-to-date. (It's pretty cool - if you select two books by "Larry Niven" that have nothing else in common, the author name will draw as "Larry Niven" instead of just "Multiple Selection" like most apps do.)

With the covers, we were having issues storing all those gorgeous hi-res covers in memory when we got beyond 400 items, so I actually keep them as JPEGs in memory and decompress them to the screen every time they draw. Obviously, this is not a fast way to draw, but it enabled us to handle collections of up to about 2,000 items in the cover view mode without the app just blowing up.

Of course the faster your graphics respond, the more the user enjoys the app, so we're definitely playing with this.

Delicious Library has a couple of features which have become its hallmarks, like the real-world interface and its iSight integration. Are there pet features you think have been underappreciated?

Listing items for sale on Amazon with a single click is one of my favorites. It's such a great way to make money and prune your collection.

I've tried to sell stuff on eBay: I wasted a day taking pretty photos of the item and touching them up and making a listing and figuring out where it should go, and by the time I got signed up and verified and super-verified and all that, I'd spent like $15 to list a single item, and then it didn't sell.

I then listed a stereo for sale on Amazon (I just found the product page if you're curious, mine sold years ago) and added mine by typing a single line describing its condition, and magically a couple months later I got e-mail from Amazon saying, "We've credited your account, please ship the item now."

I couldn't believe it. They have all 3D pictures and all the specs already entered for you; it's just so civilized compared to eBay.

You've had some time for Apple's announcement that they'll be moving to Intel to sink in. As a Cocoa developer, does this scare you, excite you, or both?

I've been here before -- in 1996 NeXT ported Nextstep (the basis of Cocoa) to the Intel processor, and my company ported all its apps and sold them "quad-fat." That meant they ran on four processors, same binary. It was cool as heck.

Apple decided to use the more marketing-friendly term "universal" instead of "fat", but the tools and principles are exactly the same as they were in 1997. (Eg, the tool to extract a single processor binary from a "universal" binary is still called "lipo," as in liposuction.)

The move to Intel is going to mean my laptop is a lot faster, and that I can play games on my main machine without waiting eight months for slower versions to come out on the Mac.

This latter point is huge; I must know 100 people who've said they'd switch to Mac except for games. Heck, I caved in and bought the littlest Intel box I could find ("Shuttle" case) so I could play Half-Life 2; and yes it's nice for games but it's still three times as big as the two Mac Minis that run my entire company, and twice as loud.

And, when it goes to 'sleep' the fan on the ATI X800 video card keeps running forever, and of course that tiny fan is the single most likely part to break, so sleep is really useless and I have to shut the whole machine down every time I walk away from it.

Plus, it's installed about a zillion Windows patches and the sound crashes the first time I launch World of Warcraft in any given session. Meanwhile, the two little Minis just purr along. I rebooted one of them once in the last month, because mail wasn't going through, but it turned out to be our ISP.

I honestly think Apple's market share will double within a year of the Intel switch. I'm going to sink my money into Apple and Berkshire Hathaway.

If memory serves, the last time you were here they stopped making hardware... so let's skip to the present. Yes, you can play games on your main machine without having to wait for versions for the Mac, and Apple's marketshare may well double or even triple, but does that mean Mac OS X share will do the same?

I.E., what if people stop booting into the Mac once they're done playing, don't want to deal with dual-booting at all, or developers of larger software start telling Mac users to just boot into Windows (or boot up an emulator) to save costs?

They're not going to reboot to Windows. Windows sucks dogs and everyone knows it. I don't even have to quote the stories of Windows machines getting viruses after 10 seconds any more, because everyone has had it happen to them or someone they love.

They're going to use Wine (or something a lot like it) to play games. It's a perfect technology for this at a perfect time. Windows programs (or a subset of them) will run in a virtual environment on Mac OS X just as Java, Mac Classic, and X11 programs do right now.

The Windows user experience is so much worse than Mac OS X that I can't imagine anyone thinking it wasn't worth it to boot back. It's like saying, "Hey, it's too much trouble to leave the video arcade and go back to our office and get some work done... let's just stay here and sit on the sticky chairs, surrounded by 14-year-old skateboarders."

Speaking of user experience... Delicious Monster recently won two Apple Design Awards at WWDC. 1st place for 'Best Mac OS X User Experience' and runner up for 'Best Product New to Mac OS X', which means you get a cool custom-designed award and some prizes.

design awardConsidering your former company had won several of these over the years, did winning this year have any special significance?

Yes. It's hard to find the right words. I guess it was a real validation.

There's no way to be asked to leave a company and not ask, "Hey, wasn't what I was contributing worth what I was being paid?" I didn't really make that much at Omni; I was president but I made less than the V.P., and I made less than, say, a webmaster friend of mine from Nintendo. So, in my mind I was well worth my pay.

But if your two partners say, "We don't think you're worth it to us," it hurts you. It was a blow to my sense of self. I mean, that's not what they said, they said, "We think you'll be happier on your own," but I wasn't given a choice. I think, as an adult, I should really be allowed to pick my own happiness. If you're forcing me to go where you say I'll be happy, then I'm going to suspect something else is going on.

So winning my fifth Apple Design Award and second runner-up award this year rebuilt something inside of me. It was a goal I set when I founded my new company; like Lance in France, only without the strenuous exercise or extremely hot rocker girlfriend.

Let's talk about happiness, since you've been quite candid about your struggles with depression and "obsessive compulsive tendencies"; 'bursts of brilliance' where you sit and code for a day at a time until what you're working on is just perfect. This isn't that rare of a dynamic when it comes to smart programmers.

Do you think your ability to hyper-focus on a task is part of what allows you to excel at what you do, and would you be willing to give it up if it meant doing away with the depression?

I've been asked the "would you change it" question on a variety of bizarre qualities about me (that I share with a lot of my family) that have been both blessings and hinderances. The answer is always no. Fundamentally, I like who I am, and I feel blessed and incredibly lucky.

More, I feel a great sense of responsibility. When I saw Spider-Man for the first time I couldn't believe how much I resonated with it. I feel like I have to do something good for the world, because I've been given the chance and the ability. I've got money and I've got resources and I've got the ability to program. So, I'm obligated to do something for the world.

Depression is a sucky thing to deal with because it doesn't have much to do with how you're doing in life. I feel ungrateful every time I get sad, because in general my life really isn't too hard. I can say to myself, "Look, you've proven that you don't produce enough seratonin, you don't have to feel guilty for the tricks your brain is playing on you," but I still feel like a spoiled child.

My discovery is that everyone I meet is broken in some way. As I've gotten to know my friends and business associates and girlfriends, I've discovered they all have some kind of problem with their emotions. And they all compensate for it in different ways, so it's hidden from other people most of the time.

A lot of people really resent even the implication that they could be "crazy." They see taking drugs for it as the ultimate capitulation; that you've given in to your craziness and now you'll be crazy forever. They think it's a shortcut; you could just "snap out of it, soldier" and be better, but you're too weak.

Depression isn't like that, though. You don't "snap out of it." There's a chemical missing in your brain, and your whole life is like those dreams where every action you try to take is hindered by a huge pile of invisible wet blankets.

I think antidepressants probably are over-prescribed in this country, but I also think they are under-prescribed. Which is to say, I think some people who aren't really chemically depressed use anti-depressants as a replacement for therapy, which is what they need. But a lot of us weren't abused as kids, we just have a chemical imbalance.

And I think a lot of people who have the chemical imbalance are afraid to go to the doctor because we're taught to cover up our weaknesses and compensate for them, and we're incredibly good at it. I founded Omni and ran it for eight years while suffering from a pretty bad obsessive/compulsive disorder and depression.

I used to be afraid of being caught in traffic, of being at a new restaurant, of going to the airport, of social situations, of going on any trip longer than an hour. I essentially became completely agoraphobic.

Two days after I got on selective seratonin re-uptake inhibitors for the first time, I felt like the chains that had bound me for 30 years had dropped away. And that totally dropped away two days after starting on drugs. I felt like I'd been crippled all my life and suddenly I could walk. People ask me, "Are you going to be on drugs all your life," and I say, "I sure hope so!"

There's a segment of the developers that believe the Operating System is becoming less of a support system -- enabling users to use apps to do tasks -- and is instead incorporating more and more of the fuctionality of tasks a user may want to do, either as an app or a feature.

Do you think this concern of the OS eating third parties is overblown, or a real concern for developers going forward?

We're going to see more and more bundled software, and I guess it sucks if you're publishing something in the product category that just got bundled, but I've had this happen to me (cf, OmniWeb) and, you know, you just move on.

If we developers can't come up with new kinds of apps that Apple and Microsoft haven't thought of, then we probably shouldn't be in business.

I'd like to say, and I need to be delicate here, Apple never treated me shabbily when it comes to them coming up with similar, bundled software. I feel they really have been pretty dang decent to my companies, and have really done all I would hope for.

The only example I'm willing to give on this is that I often (usually) trot around ideas I'm having for apps to my engineering and marketing contacts at Apple, and every once in a while someone will mutter, "Hey, uh, don't work on that, OK?" And, you know, like in a PG version of Pulp Fiction, I just go, "Shucks, friend, that's all you had to say."

Are there aspects of Delicious Library -- both in interface and coding -- that seem simple enough to an end-user but were actually very difficult to put together? When faced with a real challenge, how do you approach it?

The trickiest part of Library for me was making it work with thousands of items. It's actually not too hard to get a basic library program working with a hundred items or so, but as you get bigger data sets there are so many tricks you have to do to keep performance tolerable.

With the interface, basically every piece of it looks simpler than it is. Every button and menu item was argued about and refined and redone and moved and changed, again and again, so we could get the perfect flow. If you pointed to even the smallest detail, like, say, the way some fields highlight when you mouse over them so you can pop up an action menu, I can tell you about months spent redoing that feature until it was perfect.

Making a simple user interface is a thousand times harder than a complicated one. I could literally write a skeleton of Delicious Library in a day, if I weren't worried about how all the buttons and fields interacted or looked. Adding the fun to the app is the hard thing, and a lot of the credit for that goes to Mike.

Is there a feature or quality of Mac OS X -- both as a developer and user -- that you think people aren't raving enough about? What are you aching to see improved?

Cocoa is finally getting the raves it deserves, but for a long time everyone thought Carbon was going to dominate.

The trick is, once you touch Cocoa you just can't use anything else. I've met maybe two people my entire life who've said, "Meh, Cocoa, whatever," and pretty much everyone else has completely gotten religion the day they started using it.

Nowadays, even the QuickTime team is redoing a bunch of their layers in Cocoa, which to me is amazing. (Years ago, when Apple first announced Mac OS X, I talked to a QuickTime evangelist at WWDC about how they were going to support Mac OS X, and he said, "Well, we have a cross-platform Java version of QuickTime, so we'll probably just provide that." How times have changed!)

On the other hand, the AppKit team really needs to get busy integrating CoreGraphics all the way up. CGRect and NSRect are still different structures. This is craziness. I'm constantly dropping into CG directly, because NSImage's API is so old, and I have no idea what's going to be fast and what might be hardware accelerated.

Erm, Apple said CGRect and NSRect were going to be folded into one structure back in the public beta days of OS X.

While it's not the end of the world, this isn't the only area in OS X's APIs where you see this kind of thing; do you ever worry that Apple's developer resources are spread too thin on too many fronts?

Nope. They're getting the best people in the world working for them, and I think as a company they're coming together more than they have in years.

When I talk to Apple engineers the difference in their moods from five or eight years ago is amazing. They all know Cocoa is where it's at, for example; two years ago most the QuickTime team would never have thought about supporting anything but Carbon.

Apple is seen as the "good guys" by most people in the industry, against Microsoft's "bad guys." Don't think that, when engineers graduate from college, they don't consider this.

Would you want to work for a company where people practically spit on you when you tell them what you do? Seriously, when I meet Microsoft people in Seattle they are usually sheepish to admit it. "Uh, well, I gave in, and see, I sort of work for, uh, m-i-c-r-o-s-o-f-t..."

Ok, so if they aren't spread too thin, why do you think CGRect and NSRect are still different structures when Apple was telling people that they were going to be merged almost 6 years ago?

I think the specific issue with CG and NSRect is that there is some conservatism on the part of the AppKit team -- they're very worried about maintaining backwards compatibility with old code, to the point where they aren't as aggressive about making changes as I would like.

If I had my druthers, NSImage would receive a huge overhaul and lose its fifty-billion different ways of drawing and caching, and just have a couple very fast paths that sit right on top of CoreGraphics and share its semantics.

Speaking of being spread to thin... Starting a startup probably comes with a lot of fun and excitement, but it's stressful. How do you keep from mentally imploding so you are still looking forward to coming into work every day?

Well, the usual... Booze. World of Warcraft. Driving the pimp-de-pimp-pimp-mobile. Shirt shopping.

One thing both Mike and I both do is work really hard, all the freaking time. We're always thinking about software, no matter what we're doing. We'll call each other up at like 2 AM and the conversation will literally be, "Hey, are you asleep? Good. Had an idea for the second panel; let's just take the borrowers..."

But both of us keep sane by mixing in fun with work, too. So, we'll be "at work" (at the café) and we'll suddenly go off on a jag about something totally stupid ("Hey, look at this screensaver!" or "Check out Airburst!") and spend hours on something totally useless.

coffee shopWil grinding at DM's 'office', aka the Zoka University Café.
Delicious employees practically live there.

To an outside observer, it looks like we're, like, the least disciplined people in the world (and, you know, in a way we are), but it's the unpredictability that keeps everything fun. When the guys decide it's too dang sunny to work and pile into a car and go to the mountains, nobody says, "Hey, we've got to work." Because we do work, all the freaking time. What we have to do is play.

The rumor is Delicious Library was the first of three apps you had up your sleeve, and now the word is you have something starting to reach fruition in the Delicious Skunk Labs. Can we get a hint?

Things recently changed a lot at Delicious, but I can say for sure that we're going to come out with Delicious Library 2.0, and in fact have been designing it since the day 1.0 came out, and coding on it since the day we shipped 1.5.

*Pout* Alright, let's jump back to Omni then. Few of us will ever found our own company, let alone a software company that lasts a decade, let alone leaving it to start another another successful software company.

Are there lessons you've learned from Omni that you've taken to Delicious Monster, or decisions where if you knew what you know now, you'd do differently?

I don't know that I'd go back and do anything differently in my professional life, just because I like where I am now, and that movie "Butterfly Effect" scared the poo out of me. Certainly there are mistakes I made along the way.

The biggest lesson for me has been to realize how much a company changes when you get more people. No matter what you hire people to do, no matter how much say they are supposed to have, they are going to have a say in how the company works.

If you get, like, 100 guys you hired to fix the photocopier in a room and they're all telling you your idea for some piece of software sucks, it's hard to ignore them. We're human. It's hard to say, "Look, guys, that's great, but you're photocopier repairmen, and I'm a software designer."

And, worse, even if you have confidence in yourself, it's hard to lead a group of people if there's a larger group that's afraid of your ideas. (Man, I don't want to sound like I have anything against photocopier repairmen, here. Seriously, they've never done me any harm, I'm just picking a profession.)

Another lesson is, don't be afraid to fire people. I was always really, really worried about my employees, and I was a wimp about firing people who needed it. After being fired myself, I feel a lot less like I owe anyone employment.

You earn it, or you're gone. I'm not saying, if you have a bad month, your ass is grass. I'm saying, if you're consistently not helping the company, you need to go or you'll infect everyone else, and it's just not fair to anyone.

Are there any decisions you made at OmniGroup that you're proud of?

I liked writing the philosophy pages that were the core to Omni in the old days. At WWDC a couple years ago several young kids came up to me and said, "Hey, we just wanted you to know, we're starting a company right now and we're using your mission statement and goals as our company's template."

That shit chokes you up, you know? Like, I don't have any kids, but my information is being passed on to another generation.

An old professor of mine who's a senior guy at Pixar told me a couple years ago that Pixar had a management retreat, and they printed out the web pages I'd written for Omni and held them up as an example of a company that "gets it." Pixar, man!

Yah, I'm proud of that. Damn proud. That's the shizzle, right there.

Almost four years ago, in a chat you said: "OS X means: Speed. Stability. Beauty." Mac OS 10.1 hadn't even shipped yet, and I think most could agree the first releases of OS X were pretty rough and somewhat underdeveloped.

Were the first two suggested features, or did you just want to believe? Do you think we're there now?

With a lot of RAM, I certainly found Mac OS X 10.0 to be faster and more stable than Mac OS 9. Now, obviously, people who use their machines differently might have had different results.

But the real point was: We have a real VM system, so we've got a much nicer chassis to build on than our competitors (except Linux, of course). We've got a 30-year history of multi-user protections working for us, so neither you nor malicious warez can install random crap and have your machine become unstable.

Beauty is a gimme, but I will say I can't wait until we've seen the end of aqua stripes. I'm so over those.

Someone once said to me we love software both for what it does now, and what we want it to do in the future: it's potential. You're part of a very small group of developers that has been following the technology from NeXT around years, going back to The Omni Group forming in 1993.

When you look back at where you thought NeXTSTEP would evolve then, and where it is now, where have the paths diverged?

I actually started programming NeXTstep (original capitalization) in 1989; the University of Washington was one of the early-seed sites for the original NeXT cubes, and so I started using the system at version 0.8. There are like six of us from those days still around.

One thing we're still waiting for is what the full version of Nextstep (new capitalization) 3.0 was supposed to be, which was "object soup," according to one of the fathers of the AppKit and one of my (now ex-) heroes, William Parkhurst (now a Microsoft employee).

Honestly, none of us at the time really quite understood what "object soup" meant, but it sounded awesome when he'd talk about it. I think what he had in mind was the next generation of what we're starting to see with metadata and Spotlight in 10.4.

So, hopefully we'll all have tasty soup in, uh... Liger?

You've built software for NeXT customers, then Windows customers via NeXTSTEP, and now focus primarily on Mac customers. How does the Mac base different from your other experiences?

Mac users love their machines; Windows users put up with their machines because they don't believe there's anything really better.

It's depressing, really, because it's like dealing with victims of abuse: "Seriously, there's a better world out there, and you deserve it! You don't have to put up with this! You can leave! Mac will treat you right!" And their response is right out of the textbooks: "Why would I trust Mac? I don't think anything can be good after this."

I wish I were joking above, but these are almost exact quotes from like a dozen conversations I've had.

I love the Mac user base because they tend to be people who are into trying out new software and recommending it to each other and giving the little guy a chance. Windows users have demonstrated, ipso facto, that they do not believe in the little guy.

The two types of Windows users I've identified at my café are:

  1. I use Windows to run Word and Excel and browse the web (and read e-mail in my web browser), and
  2. I'm a programmer and I spend all my time in a Windows IDE or hacking around with my system.

The problem is that market (a) already has all the software they think they'll ever need, and clearly isn't into looking beyond what they already have or they'd have noticed they could do all that they currently do, and more, but much easier, on a Mac. And market (b) is too small for me to aim any software at it.

Putting down the pom poms, do Mac users often just not have any other option but to give the little guy a chance? When you go to monster.com and search for "Cocoa", you'll get about 30 hits, with only 2 of them not at Apple Computer. Search for C#, and there are gazillions. Any Cocoa dev list is filled with people who love the tech, but just can't find work.

I've seen how you roll, so I'm not discounting that it's lucrative, but it begs the question if coding for the Mac means working for Apple or being an entrepreneur?

You're not going to see as many run-of-the-mill jobs in Cocoa, it's true. I honestly haven't looked around the market a lot, since I keep starting my own companies, so I haven't been in the market for a while.

I can say that the guys I've employed who've gone on to other jobs usually have no trouble at all finding work, and in fact usually make twice to three times the money. (Maybe this says I'm cheap?)

The Cocoa community is still small enough that when we want to hire someone we usually use the "young boys' network".

There has got to be a better name for that network... but bygones. It's clear that you're tied to Mac OS X, and have no interest in porting your software to Linux or Windows. As a developer, what would Windows or Linux need to kindle your interest?

A really stable version of Cocoa. It's all about the frameworks. People talk about Java vs. Objective-C vs. Python vs. whatever, and I think the discussions are just idiotic. It's like arguing what kind of needle you want to use on a syringe and not paying any attention to what substance you're actually injecting yourself with.

Frameworks are the substance of programming. You build on top of a good one, your program is solid and fast and comes together beautifully. You build on top of a bad one, your life is miserable, brutish, and short.

I have much respect for my homies running Linux, but I just don't care for the frameworks. I programmed X11 in college and it sucked rats. I'm not going back to that, ever.

Yay for frameworks, but we should also be fair that it's been a long time since you've been in college and if someone was basing their opinion on developing for the Mac now on impressions from a decade ago, you'd probably have an apoplectic fit.

When was the last time you looked at say, C# and the .NET on Windows or say, Mono on Linux?

Honestly, I haven't looked at the latest. After years and years of Microsoft promising that this set of frameworks was The Next Great Thing™, I've given up. I just don't have the time.

They're like the boyfriend who keeps coming back and saying, "Really, baby, I went to counseling, and I'm better now, just give me one more chance..." I don't want to be one of those chicks on Sally Jesse saying, "But I love him!"

I've lived through Microsoft's COM and Active-anydamnthing and MFC, and hearing how each one was going to really make it easier for programmers, finally. And, it keeps being bullshit. Now it's .Net and C# and soon it'll be Avalon, and I just can't believe people are buying it.

Microsoft has nothing to gain by making life better for small programmers. They have millions of lines of code written to the old, crappy Windows APIs, and they make all their money selling Windows and Office. If they actually enabled small programmers to do cool things, they'd be creating the very furry mammals which would be their eventual downfall.

Look, I don't think everyone at Microsoft is cackling in their offices, planning their next evil move. I'm 100% certain there are good-hearted people there, really trying to empower the users. But the problem is the company is fighting itself.

When 90% of your revenue comes from upgrading Windows and Office, you've got to ask, about everything they do, "Does this help Windows and Office?" And if the answer is no, you've got to assume that you can't really rely on that thing. Because it's going against the company's core values.

What on earth is extreme gardening, how did you learn about it, and how did the experience turn out?

Extreme gardening is when you rent a twenty-foot backhoe (amazingly, they require no license!) and buy a diamond sawblade and cut up the asphalt in your parking lot and dig it out with a CAT and have dirt put in and pick a bunch of huge trees and plants and put 'em in place with your giant backhoe, again.

You turn parking lot into jungle, with big machines. I'm self-taught, I'm proud to say. It was totally fun.

I (intentionally) ignored the advice of my plant lady and overplanted so the garden would look fuller the first three years, but other than it needing some pruning, I think it turned out wonderfully.

extreme garden("They ripped out my f$#&%ing bamboo.")
extreme gardenWill on the backhoe ("Three years ago; I weighed a lot more."
extreme gardenA pic of the asphalt garden at the old Omni offices.

It hasn't been announced yet, but Mike Matas is going to be leaving Delicious Monster for another opportunity. Where he's going, and how will it affect Delicious Monster -- and your products -- going forward?

Sadly, I can't say where Mike is going; that's his secret to tell or not. I think his new company has a thing about keeping employee's identities a secret, to prevent poaching.

Right, and there'd be no point in speculating if the company that has a thing about their employees being poached is also the company that stopped putting the names of their engineers in shipping software for the same reason...

I've never been one to engage in speculation, ever since I lost all my money in the crash of '01. He is going to work for a big company and he's going to be on a team of really talented interface designers, so for him this is a great opportunity to grow and it's also an amazing chance for him to really influence the entire industry. And he's very young and he really needs to explore the world.

Of course he's my friend as well as my business partner, and is an amazing designer, and I'm very sad to see him leave my company and to move away. He was always able to challenge me and keep me thinking, and I think I've done some of my best work with him.

the delicious boys, and use i know this is a terrible alt titleLost Monster: Generous reward upon safe return.

In the near term his leaving won't have much effect on Delicious Monster as a company. We still have the same people answering e-mail and doing the website and running the store and helping write our software. As for me, I love this company, it's where I belong. I can't imagine working for a big company after being my own boss all these years, and if I were to start a new company I'd want it to be just like the one I have now, and named the same, so why bother?

Most of the design work for Delicious Library 2 is done now, since Mike and I have been thinking about it ever since we first started work on Delicious Library 1, and he's been doing mockups since we shipped.

We've always known what we wanted the features to be in the 2 release, and we have another huge pile of cool things to do for a future release. The work on 2 is well underway and when we've shown it to Apple people they're blown away by it.

You aren't exactly a newbie when it comes to UI, didn't you have your hand in the user interface of some of the Omni apps?

Yah, I've done a lot of what I call "interaction design," which is when I think about features a lot, but I don't draw the icons or worry about the exact font or whatever.

UI work is really a broad term for a lot of different specialties, like drawing icons, laying out panels, interaction design, and feature specification. I can't draw icons one single bit, but the rest I have a lot of experience with, and really enjoy.

If Delicious does decide to start another product line, that's where we'll see a difference from the "Mike" days. Obviously, he had his strengths and weaknesses and preferences, and so will anyone we get to replace him, and so any new product we design is going to be different from one Mike would have helped design, but hopefully it'll be, you know, different but good.

An example is: Mike really likes very, very simple apps. Now, I do too, but Mike, for example, really hates incredibly featureful apps like Photoshop and OmniGraffle, whereas I think OmniGraffle is a really cool app that's just not for everyone. If you need to do certain things, you really want OmniGraffle, but not everyone needs to do those things.

Mike's preference was always: write apps for the 95% market, not the 5% market. That's what we did with Delicious Library; it's an app for your mom and my mom.

So, without Mike, maybe Delicious Monster will start writing deeper apps for 5% markets. Or maybe not? Maybe we'll do something in bio-tech or med-tech? We don't know yet; we've got a lot of work to do on Delicious Library 2 before we start worrying about that.

If there's one thing I've discovered, it's that there is no stable state in life. There is no getting somewhere and going, "Ah, *NOW* I'm going to park myself down and just rake in the fat loot." Change is scary, but it's also the foundation of life and happiness. We need it. We get bored and lazy without it. Once more, into the breach.

"But when the blast of war blows in our ears,
Then imitate the action of the tiger:
Stiffen the sinews, summon up the blood,
Disguise fair nature with hard-favored rage"

And you won't be say, changing your company name to 'Delicious Shipley' or anything like that, right?

No, I think my deliciousness is self-evident.

What's your alcoholic drink of choice?

I've been doing a lot of * and Cokes lately, where * can be rum, scotch, or whiskey. I'm pretty fond of them. I like to get the really expensive stuff and have the bartender yell at me about what a waste it is to mix it with Coke. But, really, the cheap stuff just tastes nasty, even with Coke.

I figure, I'm actually more discerning, because I can tell the nasty stuff even buried in cola. Also, life's too friggin' short, and I don't drink enough to not spend money when I do.


drunkenbatman addendum: For the record, my speculation about where Mike was going was a guess. However, a few hours before this went live, permission was given to tell me that the opportunity Mike is leaving for is indeed at Apple Computer.

I also mentioned I'd have a special treat for you at the end, and here we are. Throughout the interview, I've included little shots of Delicious Library throughout its development. Those types of treats are rare enough, but they come from a book Mike Matas created, The Art of Delicious Library, which is a sort of running evolution of the software from the whiteboard to the finished product.

Wil was not only gracious enough to allow me to use parts of it for the interview, he's allowing me to put it online here for everyone. A delicious and rare treat indeed. It's zipped to keep people from viewing it in their browser before downloading it, because it is large, so please do not link directly to it.

art of delicious monster

You wouldn't believe what it took to make this interview happen, and I have to thank Wil for giving me the crazy level of access he did. It's a transitive time at Delicious Monster at the moment, which means there is little time for anything, so mad love for giving up what was left over to talk to their users and my readers.

yummy alcohol posted button Posted by drunkenbatman
    July 21, 2005, at 04:04 AM


Comments (46)




Post a comment



Anonymous comments are allowed, but please enter something for a name.

And do endeavor to appear sane.









Remember personal info?