Thursday, January 26, 2006

Great Design

Posted by Phil Aaronson at 4:53 PM

I enjoyed Joel Spolsky's Great Design: What is Design? (First Draft) article, but I think what's missing is the single most common reason products lack great design: time.

Companies will often spend an enormous chunk of a new product's development cycle deliberating over what amounts to market positioning. Meanwhile, the clock's ticking and none of that is about building a well designed product. By the time a decision has been made and a consensus reached very little time is left in the schedule. The engineers actually making the product are rarely left much more than what's needed to design and build a first iteration.

Joel writes:
When you're designing, you're satisfying lots of difficult constraints. One false move, and you fall into the abyss. It's frigging hard to get this right. You think I know how to solve the Motorola RAZR phone power-switch button? Heck no! I'm sure that the design team over there spent weeks working on this.
That's possible I suppose, but my guess? The problem with the RAZR phone's on/off button was not caused by falling into that abyss. The one where you agonize over the design and fail to satisfy lots of conflicting constraints perfectly after weeks of work. Instead it was most likely a design flaw either missed or allowed to ship because of schedule demands. They fell into that other abyss, they ran out of time.

Update [3 Feb 2006]: There appears to be another design abyss: putting forth so much effort that you just can't walk away. The good-money-after-bad abyss? Turning Limitations into Innovation, Marrissa Ann Mayer, vice-president for search products and user experience at Google,
... people working on it have spent so much time and are so personally invested that it's too painful to walk away. They often know the project is misguided, yet they see the effort through to the painful, unsuccessful end. That's why it's important to discover failure fast and abandon it quickly. A limited investment makes it easier to walk away and move on to something else that has a better chance of success.

Monday, January 23, 2006

Yahoo! TV

Posted by Phil Aaronson at 10:50 AM

Oh fer crying out loud Yahoo!, implement an AJAX/Flash version of the TV schedule page. Especially the TV module on my.yahoo.com. I just want to scroll across time easily without reloading the page. I'm beggin' here.

Thursday, January 12, 2006

Lightroom, Photoshop and Adobe

Posted by Phil Aaronson at 11:05 PM

If you haven't read the Shadowland/Lightroom Development Story by Jeff Schewe yet, you should. There are a couple key passages in there I want to highlight. The first one is the opening paragraph:
The development of Adobe Lightroom, code named Shadowland, was not something Adobe started after Apple announced Aperture. The Shadowland project has been going on for years.
The emphasis here reads: Apple didn't think of this first. We both thought of it independently. I'm fine with that, because he's right, applications don't spring into being like Athena, from Zeus' head, fully grown, armed and armored. But what's been troubling me is a different question, that is, if it hadn't been for Apple's Aperture, would anyone have ever seen Lightroom outside of a few pro photographer pre-alpha users?

Jeff hinted at this same question in his article:
However their contention-that an application designed for pros could be a reality-was proven. In many respects, Aperture actually helped save Lightroom. It gave the dev team and all of Adobe a target to shoot at-and the engineers at Adobe are nothing if not competitive (as well as being pretty darn talented).
Lets also tick off some curious list items.

1. Lightroom was written in Cocoa, NeXT turned Mac OS X's development environment. Which is really to say, it's not a Windows application. David Young had to say in his Dissecting Lightroom article.
On the whole I'm very excited to see a big company like Adobe going with Cocoa for the implementation of what surely will be a major product in their portfolio. To me, Lightroom shows the rest of the world (read: not Cocoa programmers) a couple of things, such as that a) big companies can use Cocoa too! It's not just for one-man shops anymore and b) one can use Cocoa to make an interface be whatever you want to be, for better or for worse.
Or read another way, no other major software player outside of Apple ships Cocoa applications. Major software players, with very few exceptions either build for Windows, or they build with an eye for cross-platform Unix development or both. Correct me if I'm wrong here.

2. Then there's the use of the Lua scripting language. Which up until a week or so ago, I'm ashamed to admit, I had never even heard of. Gus Mueller of Flying Meat fame had this to say:
Holy Crap. 40% [Lua scripts]? Wow. That's nuts. I had heard it described as a Cocoa app, so I needed to download it to check it out.
Exactly. Holy Crap. That's nuts!

3. Finally I'm just going to come out and say it: Photoshop. Photoshop is Adobe's golden goose. Their cash cow. Precious few companies have the sheer hutzpah to so much as scratch their cash cow. And frankly Adobe doesn't have the hutzpah. We are talking about a company that still charges an arm and a leg for fonts they've had in their vaults since Adobe became Adobe. I know Guy Kawasaki seems to think all good intrapreneurs should kill their cash cows. But how often does this really happen? It's rare. Rare enough to make you stop and think.

And don't tell me Lightroom doesn't compete with Photoshop. Just like Aperture doesn't compete with Photoshop. Right.

Here's my guess at the story behind the story of the development of Lightroom. Originally it was Lightroom the research project. The prototype. And because it was a prototype Adobe management were fine with the OS X only Cocoa code base, the Lua scripting language and the dinner parties and research trips with photographers. These things play well with the cash cow, because nearly everyone at Adobe outside of the small development group probably saw Lightroom as a testbed for a few new features destined for another reason to upgrade to Photoshop XXIX SC.

But then came CoreImage and Aperture. And if I'm reading the tea leaves right, it scared a few people. And a Cocoa based, Lua scripting, cash cow threatening, free beta from Adobe no less was born. Fun, fun times. First Apple builds an Intel box, and now Adobe bends a few rules. Who would have thought?

[Update: 1/24/2007] since1968 has a nice interview with Mark Hamberg that validates a lot of the things I said above. I especially liked this quote,
And so we would go through discussions internally about “Well how many people are there like this? How big is this market? Maybe what we want to do is just add something on to Photoshop.” A variety of things like that.
Bingo. Exactly what I was saying.

Links:
  1. Shadowland/Lightroom Development Story by Jeff Schewe.
  2. Lua scripting language by Gus Mueller.
  3. Dissecting Lightroom by David Young.
  4. The Art of Intrapreneurship, by Guy Kawasaki via RSS.
  5. Lightroom, A First Look and Primer by Michael Reichmann
  6. Lightroom Beta download, Adobe/Macromedia.
  7. Panic On CoreImage.
  8. CoreImage, my original impression.
  9. Mark Hamberg Interview: Adobe Photoshop Lightroom, since1968.com

My Blog Is My Web

Posted by Phil Aaronson at 6:27 AM

Dave Winer writes:
Let me tell you where my weblog is. Then it knows what my interests are. Give me search results relevant to who I am.
Which I think is exactly right. It's almost exactly the feedback I gave during the Q&A portion of an internal talk describing Yahoo!'s MyWeb algorithms. My blog is my web, so why not use that for MyWeb instead of making me save and rank search results? But we shouldn't stop there, we need an additional set of markup so that you can be absolutely clear about what your blog is saying. The obvious example, if I link to something and say, this is terrible, the search engine should know this. If I link to something and say, this is terrific, it should know that too. And if I link to another blog and say, I trust this, then absolutely the search engine should know this. Not so much for ranking results in general, but for ranking results for me.

Disclaimer, I work for Yahoo!

Links:
  1. Dave Winer's search suggestion.
  2. My My Web, article I wrote about MyWeb.
  3. Yahoo!'s MyWeb Beta.

Tuesday, January 10, 2006

My Life Is Bread

Posted by Phil Aaronson at 7:02 AM

Lyrics and I just don't go together, I'd be the first to admit it. My latest gaff, and one my wife can't stop making fun of; I thought the opening line to James Blunt's You're Beautiful was, "My life is bread." It's really "My life is brilliant." But damn, "bread" got stuck in my head for some reason. Blunt, you're killing me here man.

Tuesday, January 03, 2006

Caltrain Fare Hike

Posted by Phil Aaronson at 10:11 AM

I love this misleading press releases: Caltrain Fares To Change January 1, 2006.

The 5.6% increase they're touting in particular. The reality is that the cost of a one-way ticket rose by $0.25 across the board in this latest increase. For a one-zone trip the price went from $2.00 to $2.25. That's a 12.5% increase. For four-zone trip, which is San Francisco to San Jose the price went from $6.50 to $6.75, a 3.8% change. Go back a little further and compare to 2002 fares the trend gets very clear. In 2002 a one zone ticket cost $1.50, where one zone was slightly smaller than it is today and the San Jose/San Francisco trip cost $6.00. Since 2002, local users have seen a whopping %50 increase, while San Francisco/San Jose commuters have seen a 12.5% increase or roughly $0.75 across the board.

The message they're sending of course is simply, don't use Caltrain for short, local trips. Now that a one zone ticket costs $2.25, more than a ticket on the NYC subway, it's time to introduce a one stop (one stop not one zone) ticket for local use at about $1.

[Update: 7-Jan-2006] After I posted the original note, I also sent a copy via the Caltrain feedback form. They sent me a response pointing out that the Gilroy to San Francisco fare has only increased 2.7% and that senior fares remain the same. They also pointed out that most of their riders travel relatively long distances.

Which is pretty much exactly my point. Of course most of Caltrain's customers travel relatively long distances, their fare pricing policies have made sure of that.

Monday, January 02, 2006

What's Hard About Software

Posted by Phil Aaronson at 8:30 AM

Lets drag out pointers one more time. Here's a fun blog mashup, read these articles together.

Can Apple do Better than Objective-C?, by Nitesh Dhanjani
As far as the development world is concerned, it is my opinion that Microsoft has done wonderful things with .NET, while Apple hasn't churned out much innovation (not recently at least.) I'd like to see Apple developers gain more choice. With every iteration of OSX, there seems to be so much effort put into innovation of desktop components, but the development environment is age old. I use Objective C because I have to, while I use recent languages such as C# and ruby because I want to.
What's interesting about Nitesh Dhanjani's article is what he's not saying here. The original version of the article, the one he took down, was an email conversation with Steve Jobs with references to pointers. Specifically complaining about having to deal with them. From the new content, innovation then, in the author's mind, is in large part about removing pointers. Could he be the product of a JavaSchool?

The Perils of JavaSchools, by Joel Spolsky
If I may be so brash, it has been my humble experience that there are two things traditionally taught in universities as a part of a computer science curriculum which many people just never really fully comprehend: pointers and recursion.
Spolsky-Recursion by Tim Bray, is largely in defense of Java (he works for Sun after all), but he adds concurrency to the list:
My experience differs from Joel’s in another respect: Recursion is mildly hard. Closures and continuations are hard. Concurrency is very hard. I never found pointers hard at all.
My addition would be, getting ten or twelve coders to work together on the same project: really really hard.