A9’s Video Yellow Pages

A9 launched a new service today that they simply call Yellow Pages. But these Yellow Pages are not your ordinary business directory lookups! They actually have photos of the storefronts of the businesses, and you can actually “line up” these photos as a virtual street walk! Its really neat!

The service itself has yet to prove real value to me, but I do like the idea so much that I promise to continue giving it a real shot. But I really enjoyed reading about how they built this service. They actually put together some GPS-ready cars with a rooftop mounted camera and pounded the streets manually. Thats fantastic!

In case you haven’t heard of A9, they are a technology focused spinoff created and owned by Amazon. In case you haven’t heard of Amazon, um, well, how the heck did you find my blog?

Google/Browser Wars again

Browser wars are coming back. Google still denies that they are going release a browser, but they are definitely creating one. There are two clear factors:
1) They hired the lead developer from firefox.
2) When you install firefox, the home page is set to this google web page. As you can see, the page is hosted at Google, and yet branded specifically for Firefox and Google.

On the whole, I believe competition is a great thing. So I’m really glad to see another browser in the market.

At the same time, however, my selfish developer side is lamenting the end of the days of only one browser. This will unfortunately trickle down to end users with watered-down web applications again.

The reason that web applications will suffer is because web developers will now start building for yet-one-more browser to be compatible with. Remember back to 1997 when there were literally about 6 different browsers that every website had to support? (3 versions of netscape, 3 versions of IE) Writing websites was a horrible experience. Each site ended up picking the minimalist set of browser features just so that the application would work everywhere.

Well, every browser has bugs, even firefox. As I’m playing with it, I see them all the time (especially around javascript event handling and such). As the market splits, web application developers will find themselves increasingly running into potholes where code *should* work in both places, but only works in one.

And of course, the browser vendors are trying to lock users into their own applications too. They do this by providing tools and features which they simply know won’t work well on the other browser. For example, ASP.NET has some code which works great on IE, but deliberately doesn’t try to render on non-IE browsers (such as the javascript-form-validation code). This makes it hard for developers to use those features without having to consciously not support the other browsers. Google will do this type of thing too.

For end users, it may not be too bad this time – if there are just two versions. You’ll need two browsers – some applications will only work in IE, some only in Firefox. Many applications today already deployed only really support IE (its fair, since they were deployed before firefox was born), and its unlikely that the sites which created them will switch to supporting Firefox for quite some time. Some of them are very popular web applications like OWA (Outlook’s Web Access).

But, we know that Microsoft will eventually have a new version out too. In a year or so, I wouldn’t be surprised if websites had to navigate through the bugs of Firefox 1.0, Firefox 2.0, IE 6.0, and IE 6.5!! (Don’t forget safari!)

Anyway, don’t get me wrong; I very much think having more browser choice is a great thing! Its just a bit sad to have development get splintered again.

American Chopper and Software Engineering

Like many people, over the last 6 months I’ve become a huge fan of American Chopper, a TV series on the Discovery Channel about Paul & Paul Teutul’s Orange County Choppers. If you haven’t seen this show, it chronicles some of the goings on at a father-son custom motorcycle building shop. They build some very cool bikes with a lot of style; and along the way we viewers get to watch them conflict and get angry with each other due to their radically different work styles.

If you know me, you probably would think this show is pretty out of character for me. I feel that way a bit myself! After all, I don’t ride bikes and I’ve never really had much interest in them. I’m just a geek that builds software for a living. But I’ve gotta tell you, this show is great. And more surprising to me is that I’ve recently found myself at work quoting American Chopper as examples of how to build software! Am I mad? (probably) I’m sure Paul Sr would be a bit surprised to hear that there is much in common between building software and building bikes!

Its all in the dynamics of the show. Paul Sr is always Mr. Responsible. He’s furious when the shop is not clean and organized, and even more furious when bike’s aren’t getting built to schedule. Paul Jr, on the other hand, is pretty casual about schedules. He’s very creative, and always has yet-one-more-idea for how to improve the bike. But that creativity comes at a cost, and usually its his father’s frustration that deadlines won’t get met. Paul Jr says his dad does nothing but gripe and sit back with his “size twelves” up on the desk. Paul Sr says his son, who he affectionately calls “numb-nuts”, wouldn’t ever get a bike finished if it weren’t for Sr’s constant monitoring.

Well, if you can envision it, its a lot like software. Depending on who you ask, building software is considered part art, part science. I think those that went to “engineering” school really want it to be a science. (I’m one of those!) But in fact, its not really. For any given problem, there are an infinite number of ways to write code which will solve the problem. A scientific problem always has the same right answer. But there is definitely no “right” answer in software. Likewise, building a bike is part science – a lot of physics and mechanics go into engineering a bike that operates smoothly and safely. But, the custom bikes have as much art to them as science, and there is no right answer either. Because of this creative element, schedules on these types of tasks are hard to do. If it were a science (like building a car on an assembly line), you know exactly how long it will take to build. But when you are building something artistic, something never built before, how long will it take??

This is the core give-and-take of software engineering.

So, in the course of a 60 minute American Chopper show (actually they usually build the bikes over the course of two episodes), you can watch the complete dynamics of the software lifecycle! It starts with the problem to solve – either building a Spiderman themed bike, or an IRobot bike for Will Smith, or a bike to dedicate to the firefighters of 9/11. This is the requirements gathering phase. Then it moves into the design phase, where they figure out what to do with the bike. Then the team usually does a bit of bonding in the form of some out-of-work event before moving into the “heads-down” building phase. After building, it goes into final assembly, then a short test cycle, and then its done!

But what is remarkable to me is to watch the tradeoffs between Paul Sr and Paul Jr. Sr is all about schedules, business, and getting things done. He’s the one that built the shop from nothing, and really understands the value of being efficient, clean, and professional. Jr is younger and a bit sloppier with his work habit, but relentless in applying detail to making great bikes. He cares about schedules, of course, but if he comes up with a way to make the bike better late in the game, he’ll take the risk to make the change. Fortunately, the two are in constant battle with each other. Ironically, if they agreed on everything, they’d probably make bikes that weren’t half as good as they are!

Software is the same way. You’ve got folks on the team that are trying to keep things moving forward, on schedule, and consistent. There are other folks on the team who’s job is to build the product and be creative, making sure that its high quality, innovative, and as good as it can be. Sometimes, we don’t realize what the “best” way to implement is until we’ve already started. Unfortunately, the only way to fix it is to iterate on the design while in the implementation process. If you don’t do it, you won’t have great software. And if you do it, you’ll risk your schedule and possibly miss the date!

Anyway, the overlaps are amazing. If you are planning to be a software manager soon, watch this show. You’ll learn about how to balance creativity vs business, about team morale, about coaching (see their youngest in the crew – Cody), and about conflict. Its really cool.

There are some differences, though. In the virtual world of software, we sometimes crash. On the Chopper show, they have less tolerance for that.

Well, thanks for listing to my abstract thoughts on software…. Maybe I just like watching TV and calling it work.

Desktop Search Summary

With Yahoo now in the game, all the major players have now officially entered the desktop search market! I should writeup at least a short and completely unbiased summary.

MSN Desktop Search BETA. Launched Dec 13, 2004.
The MSN product has been pretty well received. As you’d expect from Microsoft, it integrates with the Desktop, Outlook, Explorer, and Internet Explorer. The user gets a common interface from all entry points, and the product can search across email, files, and a rich set of content types.

Yahoo Desktop Search BETA. Launched Jan 10, 2005.
The Yahoo product was built by X1. (I love their company motto – “Breaking the found barrier”)They are one of the oldest desktop search products that have been on the market. As expected, the product looks just like X1, and has received high marks over the last year for its depth of features. Because it is the X1 product, I expected it to be pretty stable. I was surprised that my installation of X1 immediately crashed while indexing – twice! But, after it finished, it seemed to work okay. The great thing about X1 is the great features – it indexes very quickly, has a wonderful “search while you type” feature, and a great preview pane. It indexes more types of files than any of the other desktop search products. The only other complaint I can see with it is still its garrish user-interface. X1 really wants to be its own application; you need to leave it up and running all the time if you want to use it effectively; and it takes up a lot of space on your screen and task tray. For some users, this works well, however I personally prefer the search tools that are more concealed into the locations where you use them, so that you don’t have to see them when they aren’t in use.

What is unknown about Yahoo is whether or not they had plans to build their own desktop product, and that X1 is a bridge, or whether this is their real entry into the market. Either way, starting with X1 was probably a great step for Yahoo, as X1 is one of the top products available today.

Google Desktop Search BETA. Launched Oct 14, 2004.
I’ve reviewed the Google product before. And much has been written about it. Overall, people seem to agree that its a good little engine, and it works for some people. However, the Web-Centric approach which Google took is not really what most users want. The product has a number of security issues, limits the user to viewing 10 search results in a web browser, and lacks any sort of email search capabilities. For the world’s search leader, this was quite a surprise to many.

Ask Jeeves BETA. Launched Dec 15, 2004.
Poor little ask jeeves. The product works, and its fast, and provides the basics of desktop search. But, considering that they bought Tuckaroo to help build this engine early in 2004, Ask just arrived too late with too little to be interesting. For a smaller player like Ask Jeeves, they really needed to get this out 6 months earlier in order for it to have market impact.

Lookout Released 1.0 May 25, 2004.
Lookout is the oldest of the products I’m listing here. Its an email search tool, designed and optimized for searching Microsoft Outlook email only. For desktop search, its just not up to par with the file indexing of the big engines. But for email search, it still provides the most in-depth search capabilities.

One quick note: A lot of the reviews say things like “Microsoft and Yahoo are just copying Google, who released desktop search last year.” While it may seem like that on the surface, its a pretty naive statement overall. In the case of MSN, for instance, we know from Microsoft that the product was built from the ground up. Since it was released only a month or so after the Google product, we know that there was very little copying done. Anyone in the software business can tell you that in order to ship a product within a month or two of a competitor, not only did you have to be working on it before the competitor launched, but you basically had to be code complete and in final test. Further, the approach taken by Microsoft is radically different than the web-centric approach used by Google. To say its a copy, or a knee jerk reaction is pretty silly. In the case of Yahoo, the same logic also applies. They were probably at least talking to X1 before the Google product launched, although it may be a close call. Its pretty fast to close a licensing deal and build a re-branded version of the product in just two months. Who knows. Maybe it was a copy of Google. But the innovation in the product existed WAY before Google even existed.

Anyway, kudos to all the players now in this space. When a user gets that first, fast search (regardless of which Desktop Search product they use), there is a common reaction of amazement and understanding – how much better our lives are when we can find stuff.

Now, where is the “find my car keys” search each morning?