Software Designers~The People Behind the Code~(英語)

#5 David Heinemeier Hansson (part 2)

この記事を読むのに必要な時間:およそ 6 分

David Heinemeier is the creator of Ruby on Rails and a principal with the application development firm 37Signals. He was our guest here for the May issue of Software Design, and weve asked him back for an encore.

Hanssons range of opinions cant be neatly boxed in. When it comes to the business of software development, hes a tough critic, arguing that startups, and even some famous companies, have ignored business fundamentals--over-relying on venture capital and the largess of parent companies instead of figuring out how to turn a profit. But at the same time, Hansson argues that the culture of software development is in danger of becoming too rigorous. It should attract not just engineers, but artists; not just guys, but women, too.

We talked about all of this, as well as Hanssons love of photography, in this follow-up conversation.

You’ve advocated that startup companies should know early on how they are going to making money. That opinion seems like common sense, but it has also been controversial.

Back in 2007, Michael Arrington, the founder of the TechCrunch blog, wrote that I was “driving companies to the deadpool” by persuading some startups to charge for products that were already commoditized. He called that practice “suicidal.” He cited one deceased company, Feedlounge, which was charging for an RSS reader―when its competition was both free and better known. The implied notion was that if only they had not charged for their product, everything would have been blissfully all right. That of course is totally moronic, an example of the ridiculousness of the West Coast mentality toward paid services.

Since then, several famous companies and divisions―all with free services―have been criticized for not having a plan to reach profitability: Twitter, Facebook, and YouTube, among them.

Absolutely: Ive made the same argument about Flickr. For years weve been saying that you cant make up for free with “bulk.” High traffic alone does not guarantee profits. Thats especially true for services that are expensive to run, like YouTube with its massive bandwidth requirements. You have to have a plan, and if you dont, you are going to end up with a huge deficit. YouTube can hide that deficit inside the massive cash cow that is Google, but that doesnt mean that the practice of giving away services shouldnt be looked at critically.

The term “profitable” means more than just running at zero deficits. True profitability must factor in what may be millions of dollars already spent on research and development, and for a parent company, the millions or billions in the purchase price. All of this is being left out of the conversation when we are talking about so-called “Internet successes.” There are indeed free services that do very well. But there are large, well known services that get a free pass on the baseline fundamentals of profitability. In 1997, Microsoft bought Hotmail for a reported $300 million. Since then, after you factor in the all the development and running costs, did Microsoft make that back? Im not so sure that they did.

Why arent journalists digging into this? The problem with holding these brands up as great successes is that it tells young entrepreneurs: “thats how I should be running my business.” Its more fun to tell the story about how a service came out of nowhere to become an Internet sensation. Its a lot more boring to talk about simple business statistics: revenues, expenses and profits. But thats become a gaping hole in the coverage of these companies.

Some companies have at least talked about “monetization.” YouTube, for instance, now runs adverting on some video streams. Are you saying that’s not enough?

It may be enough, but the practice came so late. Im skeptical about companies that spend years in free mode before finding a magical formula that is somehow going to pay. Yes, it happens. It happened to Google, which had a great search technology, but no clear plan on how they were going to monetize it. And they did come up with the golden egg: paid advertising links. But that success happens only just enough that startups think it will happen to them.

You live in Chicago and talk about a “West Coast mentality.” Are you saying there’s a cultural aversion out here to hard-nosed thinking?

I think theres a cultural mind bubble on the West Coast―and I can see why. There are all these companies with millions of dollars in venture capital funding, which takes away the urgency of making money. The lesson is that you can postpone profits for years, because thats what everyone else is doing. The business climate becomes an isolated echo chamber that tempts you into thinking you dont have to worry about the baseline fundamentals that everyone else in the world has to worry about.

What about open source projects?

The open source model works exceptionally well for improving software infrastructure, but not for end user products. At 37Signals, it makes perfect sense for us to put countless hours into Ruby on Rails because these are the tools we use to build a business. But if we didnt have a business, that effort would make no sense at all. The problem arises when the charitable philosophy of the open source world “bleeds” into the profit-oriented commercial world. Because at the end of the day, everybody has to eat―and just giving away your talents will not magically make that happen.

Sun is a good example. I love many of their open source products, but for Sun, pouring all those resources into those projects was only going to work if they had something else to fund that effort. And they didnt. So Sun ended up getting bought out by Oracle, which does have a plan and a revenue stream.

Is Firefox the exception that proves the rule―an end-user open source product that has turned into a business?

It absolutely is. Firefox is a great example of end-user, open source software. And luckily enough, Mozillas deal to make Google the default search engine on Firefox has really paid off. But how many other examples do we have? Almost none.

You’ve taken a “softer” stance on the culture of software development. For example, longtime developer Robert “Uncle Bob” Martin argued in his RailsConf 2009 keynote speech that Ruby developers are endanger of getting sloppy and should take a rigorous, test-based engineering approach. But you think the profession needs artists, too.

Some of this might be a semantic distinction. But I do think there are possibilities beyond the archetypical engineering role Bob Martin well represents in his quest for high professionalism. There is also a role for artists―people who are less rigorous in following the rules, more experimental in their approach. The wonderful part of the Ruby on Rails community is that we have such a great mix of both. This is very evident at RailsConf, where you have people with all sorts of backgrounds. Weve attracted people who have just made the transition from designer to programmer, as well as hard core engineers with five years worth of computer science education. Its important to cater to and care for both of these branches of the community.

Would you have come up with Ruby on Rails if you had approached coding with the discipline Martin advocates?

I wouldnt have been interested in code, at all. I wanted the experience of practicing the craft, which to me is much more about artisanship than engineering. So the engineering culture has contributed a lot―but not everything. My overall point is that there are many approaches to solving a problem and creating new kinds of software. That means attracting people to the profession from a variety of backgrounds and perspectives.

Do you see any projects beyond Ruby on Rails that demonstrate the value of an artisan approach?

One of them is the Apache CouchDB project, which is an example of a document-oriented database. Another example is SimpleDB from Amazon. The developers have turned the conventional wisdom about relational databases on its head. They ask: what if we did things really differently. What if there were no constraints, at all? What if the schema was completely liquid and we did things we dont normally do? Thats an artists approach, more than an engineers.

You also argue that the profession needs more women. Do you think a hard core engineering stance is keeping women away?

I think thats a huge part of it. I recently asked one woman, a writer, what the world of programming meant to her. She talked about the tech support person at work who couldnt communicate at a human level. She said that the profession seemed mechanical, even binary. And that is the stereotype: for most people, programming seems incredibly boring. So I talked to her about the community around Ruby―who we are, what we liked, and the idea of beautiful code. And she began to see us in a new light. We need to talk more often about that side of the craft, because in doing so, we can attract a wider group of people. At the same time, there are gender differences, and not every profession is going to have a 50-50 ratio. And I dont think the reason for fewer women programmers has to do with sexism or “alpha programmers” who scare women off.

Bob Martin’s critique is not only directed at programmers, but at the language itself. He argues that Ruby, like Smalltalk, could become less popular because it lets programmers get away with writing bad code―much more so than C++.

I dont know if thats really true. C and C++ arent immune from bad code just because you have to compile them. Ive seen plenty of horrible code in those languages―the code compiles, but youd never want to read it again. The same is true for Java code, which has rigorous standards for compilation. Even so, the worst code Ive ever seen in my life is Java code.

Finally, I want to ask you about all the photographs you’ve put up on your blog. Is photography a hobby?

I love photography. I like that you have a set number of constraints: the viewfinder which crops the world, as well as the aperture, exposure and ISO light sensitivity. Just in tweaking those limited parameters, you can come up with something magical.

What camera do you use?

A Canon 5D Mark II. Its a great camera―an amazing example of how much the state of the art in digital photography has moved forward. But its important to remember that people are also taking superb pictures with their cell phones. Thats a good reminder that you can make something exceptionally great even with very limited constraints.


Bart Eisenberg

Bart Eisenberg's articles on the trends and technologies of the American computer industry have appeared in Gijutsu-Hyoron publications since the late 1980s. He has covered and consulted for both startups and the major corporations that make up the Silicon Valley. A native of Los Angeles and a self-confessed gadget freak, he lives with his wife Susan in Marin County, north of San Francisco. When not there, he can sometimes be found hiking with a GPS in the Sierra, traveling in India, driving his Toyota subcompact down the California coast, or on the streets of New York and Tokyo.


1980年代後半より,『Software Design』や『Web Site Expert』などの雑誌に,アメリカのコンピュータ業界のトレンドと技術に関するレポートを執筆しています。シリコンバレーで,スタートアップ企業から大企業まで幅広い分野でコンサルタントを務めました。

ロサンゼルス生まれで,自称ガジェットフリークです.現在,妻のSusanとともに,サンフランシスコ北部のMarin County在住。また,SierraのGPSを携えてハイキングしたり,インドを旅したり,カリフォルニア海岸をドライブしたり,NYや東京の街中を歩いたりしています。