How Toyota Is Like A Startup And Other Thoughts

The New Yorker recently ran an article titled “The Open Secret of Success.” It talked about how Toyota has sold more cars than General Motors has in the first three months of 2008. What makes this significant? G.M. has sold more cars anually than any other company for the past seventy years.

So how did Toyota, a company that makes a line of fairly unremarkable cars, outsell G.M.? Innovation. However, it is innovation in process, on the assembly line, rather then product. The Toyota Production System is a remarkably efficient system that has been continuously fine tuned since the late 1940s. No other car company has been able to keep up with Toyota despite them being very open about their process and even helping G.M. improve its production system. So how does Toyota stay ahead?

The answer has a lot to do with another distinctive element of Toyota’s approach: defining innovation as an incremental process, in which the goal is not to make huge, sudden leaps but, rather, to make things better on a daily basis. (The principle is often known by its Japanese name, kaizen-continuous improvement.) Instead of trying to throw long touchdown passes, as it were, Toyota moves down the field by means of short and steady gains.

This reminded me of what Paul Graham wrote about startups and the future of web applications in his book, Hackers & Painters. In the essay entitled “The Other Road Ahead” he talks about how server-based software, i.e. web applications, is the next big thing and how they are ideal for startups. He wrote this essay in 2001 which says something about his amazing insight. One of the things he touches on is exactly what Toyota has been doing for over half a century, incremental updates.

With server-based software, you can make changes almost as you would in a program you were writing for yourself. You release software as a series of incremental changes instead of an occasional big explosion. A typical desktop software company might do one or two releases a year. At Viaweb we often did three to five releases a day.

In way, Toyota operates like a giant startup in terms of refining its process. It implements millions of ideas a year from its workers, not all of which work, but the net effect is that the process is constantly getting better. Likewise, the hundreds, if not thousands, of web startups that have popped up in the last few years have taken the same approach in developing their products. Take 37signals for example. If you look at their product blog, you can see that they are always adding new features to their products.

The result is that Toyota and 37signals have become leaders in their respective industries. I think this tells us something about how companies work. The most widely used model of leaps of innovation is outdated. Imagine what Microsoft could do if they took the kaizen approach? No, monthly patches don’t count. I want a continuous stream of new features. However, in order for big companies to do this, they would have to change the way they work entirely. They would have to get rid of all the layers of bureaucratic bullshit that often ends up being a complete waste of time. Graham says they need to keep teams small and agile.

As Fred Brooks pointed out in The Mythical Man-Month, adding people to a project tends to slow it down. The number of possible connections between developers grows exponentially with the size of the group. The larger the group, the more time they’ll spend in meetings negotiating how their software will work together, and the more bugs they’ll get from unforseen interactions. Fortunately, this process also works in reverse: as groups get smaller, software development gets exponentially more efficient. I can’t remember the programmers at Viaweb ever having an actual meeting. We never had more to say at any one time than we could say as we were walking to lunch.

But here we reach a paradox. Toyota is a large company, but they seem to be able to operate like a startup (at least in improving their production system). Why can’t other big companies do the same? My theory is the same reason other car companies can’t keep up with Toyota. The reality is that they can, they just aren’t willing to take an approach puts so much responsibility into the hands of the lowly worker. Any change in a big company has to go through a ridiculous chain of approval (I’ve seen this at my school too…) which is just too slow. Kaizen means being quick and agile but this runs counter to the traditional management paradigm.

I’m not sure how one would go about changing the way a company operates in such a big way–or if it’s even possible for that matter. The startup model of operating may not be suitable in all situations. However, I have no doubt that there are some companies that could benefit from it. The existence of startups competing against large corporations proves it. Perhaps one day they will be forced to change in order to compete against startups.

Contemplating Mac

I’ve been using my current laptop for a 2-3 years now. It’s an old Dell Inspiron 6000 that I got for about $1,000. It works fine for the most part, but the wireless is flaky and dies on me randomly which kills it for me. I need my wireless to be rock solid and reliable. Then there’s also the fact that it’s getting a bit hard to multi-task with some of the newer, more demanding applications. It’s only packing a 1.6 GHz Pentium M, 512 MB of RAM, and integrated Intel graphics. Not much, I know, but it’s gotten me through high school. Keyword: high school.

Dell Inspiron 6000

I’ll be off to college this fall and I figure this old clunker isn’t going to last me another four years. Originally I was planning on getting another Dell. But recently I’ve been playing with the idea of getting a Mac instead. Scandalous. Those who know me reasonably well know that I’ve been a self-proclaimed Mac hater for years. (I’d like it to be noted Mac does not equal Apple. I’m quite happy with my iPod touch actually.)

The reason I’ve been considering switching to Mac is three-fold. First, I don’t want anything to do with Vista. I personally don’t like the new Aero design and when die-hard Windows fans start complaining about problems, I get worried. Moreover, I find it interesting that the successor to XP actually has higher system requirements. Call me crazy, but aren’t revisions supposed to be leaner and faster rather than more bloated and demanding?

My second reason is just personal curiosity. I have never actually sat down and used a Mac extensively. I used them in elementary school, but those were pre-OS X days and I’ve used them infrequently in the library computer lab at my school. With that said, I’ve never really had any problems with it besides not knowing how to do something on my part.

And finally, my third reason is that some of the programs available only on Mac just look damn cool. I’ve lost count of how many times I’ve wished Quicksilver, Adium, Growl, or Coda were available for Windows too. Yes, there are Windows alternatives, but none do it quite the same or as elegantly as the Mac apps appear to do. Looking at the programs I have installed on my Windows laptop, I realized that all the apps I use daily like Firefox, iTunes, Office, and the Adobe suite are on Mac as well. I’ll also admit that some of the features built into Mac OS X like Time Machine look pretty nifty.

The way I see it, I wouldn’t be losing much if I switched to Mac. If I really need something from Windows I can always Bootcamp. So I started looking at the different Mac laptops: the MacBook, the MacBook Pro, and the MacBook Air. The MacBook Pro would be my first choice because the MacBook only has a 13 inch screen, which I think is too small, and the Air does not have an Ethernet port, which I think is still necessary at this point in time. BUT, the Pro has a base price of $1,800 even with an educational discount. That’s a lot for a college bound kid.

MacBook Pro

At the moment, I’m still evaluating whether I really want to make the switch. There’s nothing really compelling about Windows that I feel like I couldn’t live without, but on the other hand, are there any problems with Windows that would drive me to switch to Mac? I haven’t really decided yet. I’ve used Windows all my life, but I can’t help but be curious what Mac is all about. I still have some time to think about it and according to AppleInsider the MacBooks are slated for a design overhaul. Maybe they’ll come up with something that will make me a convert when Q3 2008 comes around.

FIRST Robotics Retrospect

I don’t think I have mentioned on here that I have been participating in the FIRST Robotics Competition this year. We had talked about doing it last year when we finished InvenTeams and I was asked to join drafted. I had no intention of participating at the beginning of the year because I would be busy with college applications, scholarships, and other senior stuff I need to get done in order to go to graduate and go to college. In retrospect though, I think the last eight weeks have been pretty damn fun.

To be honest, I didn’t think we would be able to make a robot in six weeks. We knew nothing about robotics, didn’t have the proper tools, and the team as a whole seemed like a ragtag group of freshmen and sophomores who were just looking for some free food. Many people left after the first few meetings and didn’t come back. All I have to say to those people is that I understand why they left. We weren’t doing much in the beginning, but I feel the need to say that they missed out on what I truly believe is one of the most unique experiences you can have in high school. Every school has football, basketball, swimming, mock trial, band, etc. but not every school has a FIRST Robotics team. Not everyone has the opportunity to build a robot in six weeks and pit it against other robots in a competition.

Team 2542 Go4bots

To the people who stuck with the team through all six weeks, I couldn’t be more proud of you guys. I didn’t think we could do it, but we pulled through. We had a working robot by the end of the competition. That’s not to say there weren’t problems though. There were a lot of things the team could have done better, myself included, but for a rookie team, I think we did a phenomenal job.

Our robot wasn’t quite finished when we shipped it off to the Memorial Coliseum. Fortunately they give you an entire day before the competition to get your robot into working condition and do a few practice matches. We didn’t get our robot ready in time to compete properly because we were all racing to get our robot to pass safety inspection. We didn’t actually pass until the morning of the competition and we did not get to test for problems. All day Friday, our robot suffered problems ranging from power issues to drive train failure. What impressed me while I was working on the robot was that no one gave up despite the robot having failed five times in a row while in competition—sometimes the robot didn’t move at all. The team’s resilience and determination and clever improvising impressed me more than anything else. Also impressive was everyone’s willingness to help. Despite being in competition, all the teams were more than willing to help other teams get their robots into working condition. Special thanks to the Team 1359 Scalawags for giving us a tremendous amount of help.

I was the driver for our team, so I didn’t get to watch much of the semifinals and I was too focused on driving the robot to notice the crowd. During the finals though, I can say with confidence that the crowd had enough energy to rival anything I have seen at a high school basketball or football game if not surpass it. Some team actually started a mosh pit that I might have joined during a six minute timeout…

It actually kind of saddens me that I won’t get to be part of next year’s Robotics team since they have a lot more experience and knowledge now. I suppose there will be other interesting things to do in college, but I still wish I had another year to do FIRST just to show what Gresham is capable of. Maybe I’ll comeback to mentor next year’s team. If not, I have faith that it will do well in FIRST, InvenTeams, or whatever program they decide to do next year. Rock on.

I Hate Misleading Progress Bars

I was installing Autodesk Inventor the other day. It went pretty smoothly, though it took an ungodly amount of time as CAD programs like Inventor do—I think SolidWorks took even longer. But one of the things that annoyed me was the misleading progress bar. Like most program installations, Inventor has a little bar that fills up as the installation progresses. Except this one filled up more than once.

The entire point of a progress bar is to let the user know how much longer he or she has to sit around waiting. Having the bar fill up and then restart and fill up again defeats the entire purpose. There was no way for me to know how long I had to wait before I could use my computer again besides the broken progress bar that served absolutely no purpose other than to give me some sort false hope of going back to work soon.

Inventor is not the only program I’ve used that does this either. This has been a long time peeve of mine that drives me up the wall sometimes during really long tasks. If a progress bar doesn’t accurately show how far a process has gone, than it’s just a useless progress bar that should be replaced with a more useful indicator.

You could argue that the progress bar is there to show the user that the process is working and hasn’t frozen and died. But there’s a reason why it’s called a progress bar. When a user sees a bar filling up, he expects it to be an indicator of how far a long a process is and how much it has left to go. A good example of this is the WinRAR’s progress bar when it’s creating an archive. The top progress bar does in fact fill up several times, but that’s because it shows the progress for each file being archived and it tells the user this—no deception there. The bottom bar fills up once, and only once, to show the progress of the archive as a whole.

WinRAR Progress Bar

If you want to let the user know something is simply working, make an animation. For example, when you’re burning a disc in Nero it shows a little animation of a file flying into a disc. It also has a progress bar, but it actually works. Some programs are really stuck on bars though and that’s okay if you do it right. Take the Flock splash screen for example.

Flock splash screen

These are called indeterminate progress bars, but I like to call them busy indicators or animations. It has a bar, but it’s not filling up. It’s more like a worm racing across a bar. Windows XP does the same thing on its boot screen. What does this accomplish? It tells the user that the task is busy working through the use of motion, while not deceiving her into thinking that there are x minutes left to go.

I’m no usability expert but I’m pretty sure one of the goals is not to confuse the user. If there’s going to be a progress bar, make sure it works. If it doesn’t, then either don’t put one, or clearly make it a busy animation. A progress bar and a busy indicator are two very different animals and deserve to be clearly distinguished.