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

#Last time Looking Back―By Bart Eisenberg

In 2009, my former editor Kentaro Kanebako and I worked out a rough sketch for a new article series for this magazine. ⁠Software Designers: The People Behind the Code⁠⁠ would introduce Western industry professionals to their Japanese counterparts: namely, you. We would talk about what they do for a living and what they thought about it. What inspired them when they were growing up? What trends do they see? What tips can they give? What about their jobs do they love What are the challenges? What's on their mind?

I got lucky with my first interview. Steve Lord, director of the U.S. National Weather Service's Environmental Modeling Center talked about how his teenage years racing sailboats on Long Island Sound sparked his interest in weather forecasting, and about the algorithms, hardware, and coding talent behind the numerical models his team produced. He said that Moore's law enabled better models leading to better forecasts and described what it takes to learn the craft. The interview was, in many ways, a model in its own right for the 40-plus conversations that followed.

Often, the toughest part of the assignment was getting the interview itself. While some people, even well known CEOs, responded immediately, others took months of waiting. And some declined or never returned the call. A common denominator seemed to be an interest in Japan. If they did business there, or planned to, or even if they just were a fan of manga, anime or sushi, they were more likely to want to appear on these pages. I imagined the interviews as two people ⁠talking shop⁠⁠ over coffee. But in fact, this was a far-flung group, located as close as the Silicon Valley, still a 90 minute drive from my house, and as distant as Europe, New Zealand and Japan. So in practice, I sat in my home office and we connected by cell phone, whose poor voice quality and drop-outs I learned to hate, or--my favorite by far--Skype.

Each interview was recorded as an MP3 file, which my wife Susan patiently culled down and transcribed. I edited the transcription into a draft article, an introduction followed by a question and answer, ⁠Q&A⁠, which I sent to each subject for review. Not all reporters agree with that approach, fearing that people will try to rewrite and sanitize their quotes. But that never happened, and the profiles were more accurate, as a result.

Upon arrival in Japan in 2010、
in Kanazawa
Upon arrival in Japan in 2010, in Kanazawa

In reading over the articles for this ⁠best of⁠⁠ collection, I noticed that some people have a gift for quotes that are insightful, funny, ironic, or revealing. Those people are a bit over-represented here. But while not all of us have a silver tongue, I found gold nuggets throughout the collection. That breadth is reflected here, as well.

On a Sierra backpack last summer, it struck me from nowhere that the time had come to wrap up the series. At age 62, I've already set aside much of the work that has sustained me in a 30-year career. This series was harder to let go of, but I want to make more time in my writing life and see what, if anything, comes of it.

Ruby inventor Yukihiro ⁠Matz⁠⁠ Matsumoto is famous for talking about ⁠programmer happiness.⁠⁠ If there's one ribbon that binds these interviews together, that may be it. I wish you the same. Arigato gozaimasu.

Learning the trade

What's wonderful about software development is that your work can speak for itself. That's especially true now with code-sharing platforms like GitHub and Bitbucket that allow you to really prove what you're capable of. You can show that you built a website and get a job as a developer. I realize that's a non-corporate view of the business world, but at least in the startup community, we're really big on people just proving that they can do the job at the lowest rungs of the profession, then looking for more opportunities from there.

Vanessa Hurst, Co-Founder, Girl Develop It

At a lot of environmental science education programs, particularly in United States universities, you learn how to manipulate the black box, but not what's inside. Many people can run a set of code to generate a forecast because they know what inputs are available, and they can work on the fringes of the system to make changes. But in order to deliver better results, you've got to go inside the code and change the inner workings. We have a harder time finding those kinds of scientific programmers because that kind of education is harder to find.

Steve Lord, Director of U.S. National Weather Service's Environmental Modeling Center

The downside, at Princeton and probably every university, is that kids now spend an enormous amount of time multitasking in class, so much so that the instructor is no longer their primary focus most of the time. I don't know what to do about it. I have tried to find ⁠teachable moments⁠....I've run Wireshark, a packet sniffer which can eavesdrop on wireless communications. That presents some good technical lessons about radio, networking protocols, and privacy. The subliminal lesson is that you don't know who is listening to you―it could even be the guy at the front of the room.

Brian Kernighan Professor, Computer Science, Princeton University

For a lot of young women, computing and engineering are not cool. Women who are quite capable of studying computer science are choosing with their feet. Even though eight of the ten fastest growing industries have an IT component and you can get a job with an undergraduate degree that pays quite well, women are not choosing the profession. Some buy into the myth that all the jobs are being outsourced, or that you have to sit in front of a computer all day long. For many women, the computer industry has an image problem.

Telle Whitney, President & CEO, Anita Borg Institute for Women and Technology

[Experienced programmers] actually have more patience for doing things the right way. They've been burnt too many times to take shortcuts. Less experienced developers quite understandably love the thrill of building things. The act of building is exciting, but it can be hard to prevent that thrill from completely dominating your view. So it is often more difficult to convince an undergraduate of the value of seeing the bigger picture, of understanding the importance of designing something well: not just to execute the first time, but to have the right kind of structure and support the right kind of features.

Daniel Jackson, Professor, Computer Science, MIT

If you are a student just considering your future, I think you want to leave college with a good understanding of the fundamentals of your chosen field. That's because the areas of specialization are so dispersed and so quickly changing, that you can't count on any narrow field of study to carry you through your working life. For example, if you are interested in control systems accelerators, you might be better off thinking of yourself as a mechanical engineer or an electrical engineer, rather than more narrowly as a hardware/software integrator.

Chris Timossi, Software Engineer (retired), Lawrence Berkeley National Laboratory

I think most people program their careers by coincidence, as well. They pick something to study--maybe influenced by a good teacher. They don't really know what the job market looks like or what a career in that field would be like. They go to work, the decades pass, and they look back and realize they never actually made a decision about where they were headed.

Chad Fowler, author and VP of Engineering, LivingSocial

On coding

Programming is an inherently creative endeavor that just doesn't lend itself very well to 12 hour days. My brain, at least, is not constructed so that it can perform at its peak for that many hours a day. It's not like you can work for 12 hours and get 90 percent of the performance instead of, say 7 hours at 100 percent performance. The productivity decline is much steeper than that. And it's only when you are operating at your peak that you spot those breakthroughs that ultimately transform your work.

David Heinemeier Hansson

I'm a Samurai coder: I love to code. When I do it, I experience what people call the ⁠flow⁠, meaning that you are so engaged in what you are doing that time disappears. I get up some mornings at 4 am, code for a few hours before the family wakes up, take the kids to school, go do yoga for an hour, and then jump back into the flow. I look up and it's already late afternoon

Andrew Stone, Founder and CEO, Stone Design―creator of Twittelator Pro

In the physical world, an engineer's job is to build a project to spec. But in the world of software, sometimes it's the case that you start building a bridge, then halfway through realize what you really need is a boat. As developers, we can make that switch because software is, well, soft. That, to me, is why programming is so gratifying.

Adam Wiggins, co-founder, CTO, Heroku

[Jazz and software development] both require a lot of steady practice: you have to do it every single day. And one thing I noticed early on is that the people who become amazing musicians sound terrible when they practice. If you went by the practice room, you would want to cover your ears. And the reason is that they were practicing what they were bad at. It's so tempting when people are listening to run through the things you can blaze through. But that's when you need to practice the stuff that you are worst at. That's the only way you are going to make yourself better.

Matthew Mullenweg, Founding Developer, WordPress; Founder, Automattic

At Aso (2010)
At Aso (2010)

Secret ingredients

When you look at debates, say, of Android or Blackberry versus iOS or Windows vs. Apple, the difference often boils down to happiness: how a technology makes you feel when you use it. When you buy an Apple computer, there is no line item on the invoice for ⁠happiness,⁠⁠ but there should be because that's one of the main things they are selling: the overall user experience.

Adam Wiggins, co-founder, CTO, Heroku

A lot of times, we are going in unchartered territory, and we really have to think about what will differentiate us in the marketplace. To cite just one example, from the beginning, Google Maps has given users the ability to drag the map with the mouse. That was very different from the previous interaction models of Mapquest and Yahoo! Maps, in which you are clicking on corners. ….The core interaction is really what differentiates us. People say: ⁠ah, that's exactly the way it's supposed to work.”

Sasha Verhage, Design Lead, Google User Experience

I've been a movie fan all my life. I love reading. I love linear narrative media. But in the late 70s, I fell in with a group of writers and comic book creators who were playing Dungeons and Dragons. This crazy game wasn't about us listening to someone else's story, but about creating our own story, together. The power of that idea was so immense that I wanted to do that for a living. And when I got into the video game business a decade later, I noticed that a lot of the games were essentially a designer telling players what exactly they must do to complete the game, and in what sequence. My aim was to counter that by bringing the role-playing experience of Dungeons and Dragons to video games―to allow players to tell their own story.

Warren Spector, creative director, Disney Interactive Studios' Junction Point

Collaboration

The Ruby movement has two sides. One is about the language syntax and functionality. The other is about the relationship between people. I do think the community is helped when people are nice to each other. Niceness promotes the whole ecosystem, the contributed libraries, Ruby on Rails, the RubyGems package system. I think all of these develop from a certain kind of relationship between human beings. So we have a well-developed technical side and a social side. One of the attractions of the Ruby language is that we have both.

Yukihiro ⁠Matz⁠⁠ Matsumoto: Ruby Inventor

Matz is always talking about having fun, but I think it goes beyond that. He has built a community and a philosophy about living with kindness and excellence. Great programmers and great people of all kinds can appreciate that.

Bruce Tate, author and independent consultant

[Researcher Hirokazu Kato and I] had complementary skills. He has fantastic skills in computer vision research and software development, and I was strong in interface design. We were both hard workers, willing to put in the hours needed to get everything done. The cultural differences were not as great as you might think. New Zealand has some strong connections with Japan, and since that time, he and his family have come to visit a couple of times, which I've enjoyed very much. I think Japanese people like visiting New Zealand because our country is somewhat like Japan. We too are a country of long islands with mountains and a strong connection to the sea―but without so many people.

Mark Billinghurst, Director, The Human Interface Technology Laboratory New Zealand

I think [Hacker Dojo] is best described as the answer to the quest for a third place, which is neither home nor work, where you can socialize both casually and professionally, where you can get things done and bounce ideas off of other people. Traditionally, cafes and salons have provided that third place, and today, Starbuck's provides a nice place to work, but there's not much of a community there. If you went up to somebody with a laptop and asked what they are working on, you'd get: ⁠Dude, I'm drinking coffee; leave me alone.”

David Weekly: Founding director, Hacker Dojo

One thing that's interesting about wikis is that they reverse the usual collaborative process. Usually, collaborators review and review and review--then publish. On a wiki, you first publish, then review, review, review. And that has a big impact on a system of collaboration in that it keeps the cycle time up. Things happen fast if you publish first, then review.

I know a computer scientist who plays music in a group. He says that when they hit the first chord, they already know how everybody is feeling. The sense of how they're doing is immediate and that immediacy is a natural thing--humans are set up to do that in fractions of a second. We stretch it out because we sometimes don't know how to communicate on shorter time scales when we're doing traditional work. Traditional work was driven by inter-office memos typed up on carbon paper. Now we have computer networks to speed things up. Networks aren't quite as fast as a jazz band on the first note, but they're getting close.

Ward Cunningham: wiki inventor; agile programming pioneer; CTO, CitizenGlobal

Consensus is in our DNA. That, in turn, has attracted a certain kind of developer: someone who can listen to the opposing view and, at times, give way without holding a grudge. If you are not that kind of person, then you'll probably get weeded out of the ASF development process. ASF has given presentations about the ⁠poisonous person syndrome⁠―referring to how just one inflexible person can poison a software project. It's important to know how to encourage those people to rethink that mindset. And it's important to realize that even the best developer in the world is not worth that kind of damage to the community and the project.

Jim Jagielski, chairman, The Apache Software Foundation

Sometimes you don't need consensus. Sometimes dictators are a good thing. Sometimes you need somebody to say ⁠this is how it's going to be―let's go do it.⁠⁠ It's so easy to get into the mode of wanting to please everybody, and the more people you have in a meeting, the more people you need to please―and the longer it takes.

David Heinemeier Hansson, creator of Ruby on Rails

Data security

God loves Wikimedia: we know that because a hurricane hasn't yet hit Tampa. Everything we care about lives on a single floor in Tampa. It's secure in the sense that random ninjas couldn't go in there and slash our servers. But this is an office building in a city where there is lots of hurricane activity, which means it doesn't have super good peering opportunities. There aren't a lot of other clients of this little company where we are hosted that have good connections to the international telco network. In other words, given that we are one of the top websites in the world, we are hosted in the wrong place.

Danese Cooper, CTO, Wikimedia Foundation

In Yakushima, along with his wife Susan (2012)
In Yakushima, along with his wife Susan (2012)

Entrepreneurship

One of the things I love about startups is that the team you have is pretty much the team you'll continue to have. You can hire and fire individuals, but if the startup company decides to do something different, they do it with the same in-house team. Whereas when a big company invests in a new product and cancels an old one, they are more likely to pull together a new team with the appropriate skills for that new product. If you are were on the old product, you may get laid off. I thrive in an environment where if we decide to do something different, we are still committed to the people we've got.

Sarah Allen, Chief Geek, Mightyverse

Way, way too many people have this notion that they'll do whatever it takes right now―and then something magical will happen: ⁠I'll get bought out, I'll be a huge success and then my life will be great.⁠⁠ It just doesn't work like that. I've talked to a good number of entrepreneurs who have built a successful business, sold it for a lot of money―enough to retire to the mythical beach and sip margaritas all day. And what happened? Six months later they are back in the game because humans are not meant to be beach potatoes. We don't get any intellectual joy from it. So they come back after six months, perhaps with another idea. And chances are this new idea is not as good as their first.

David Heinemeier Hansson

The hardest decision an entrepreneur can make is: should I pivot, or should I persevere? It's not a formula: everyone has heard those stories of entrepreneurs who just stuck it out through one more iteration and made the concept work. And there are others who just pivot around in a circle, going nowhere.

Eric Ries, creator of the Lean Startup methodology

The reality is that most things you launch are going to fail, or are not going to be the hits that they could be. But without launching them, it's impossible to get the feedback you need to make them into what they will ultimately become. Like the iPhone 4. The earlier iPhones weren't that great. They were relatively slow and clunky. They were beautiful in their own way, but the fourth generation was a turning point: it's incredible what they have done, but it only happened over four iterations.

Matthew Mullenweg, Founding Developer, WordPress; Founder, Automattic

Open Source

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 didn't 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.

David Heinemeier Hansson

When you want to contribute to open source, you need to overcome your shyness and your fears of getting laughed at. You don't want to feel you can't make your point because you don't have a sufficient enough command of the language. I have my own scars to prove that. I'm not only a self-taught programmer, but I never studied English at school either, and I find that the language issue kicks in every single time. And of course, we Europeans do have a bit of national pride. We don't want to speak English―we want to speak our own language.

Gianugo Rabellino, Founder, CEO, Sourcesense

Languages

I loved Basic. It's a wise language, and most people don't give it respect. When I went to college and started picking up C, a part of me died.

We have essentially been doing application development using languages based on C/C++ for about 30 years. And that's crazy. The whole Java syntax is based around a language originally created to build an operating system. I think that languages have a shelf life. The Java Virtual Machine is fantastic, and there are some interesting things happening there now. But for applications development, maybe we should never have been using Java in the first place.

Bruce Tate, author and independent consultant

I've never believed in C++. It is the worst of both worlds. It's a remarkably arcane language which I think is impossible to write correctly. It's not that I think Ruby is a universal language by any means. There are some kinds of software I would never dream of writing in it. Of course, there are some kinds of software I would never dream of writing, period.

The thing that made Ruby interesting and fun for me is how well it integrated existing stuff--like Ruby's object model, which is very much like Smalltalk's. Matz himself is a language nut, and he produced a Frankenstein of a language that brought stuff in from other places. The genius of Matz is that he took these disparate sources and wove them into something useful. I don't know if you can imagine two more unalike languages than Perl and Smalltalk. Yet somehow, he married them, and their kid came out looking pretty decent. That takes a lot of skill.

Dave Thomas, author, publisher, developer

A lot of the things I work on don't need the efficiencies that come from coding at that level. But I really value that I used C for six months. The experience made me cognizant of data structures and optimization in every high-level program that I write.

Vanessa Hurst

Japan

All this made me wonder why there isn't a more entrepreneurial Silicon Valley-type culture in Japan. There aren't many start-ups there; far fewer than here. I think start-ups require three things. You need a lot of creativity and engineering talent. Japan clearly has that in spades. You need a dedicated work ethic, to be able to put in 16 hours a day for a couple of years. Japan clearly has a ton of that: I've seen people there work crazy hours routinely. But the third thing you need is a good investment climate, where you might get $10 million for your idea to jump start your company. That's been missing: venture capitalists are much less active in Japan.

Phil Libin, CEO, Evernote Corporation

They say that in Japanese culture, nobody should stick out: that's how they create harmony. I personally think you should stick out, be the best you can be, and do everything that you dream: no matter how big it is, you should try. For all of the successes I have, I've fallen on my face ten times more. It doesn't stop me―it just makes me stronger. I learn from it. I think: how can I do this differently?

Cyan Banister, angel investor; co-founder and CEO, Zivity

In very general terms, I'd say that the Japanese developers tend to be meticulous about how they think about every tiny detail of a project. They pay more attention to pre-planning on one hand and documentation on the other―whereas in India, we sometimes move on too quickly after we've got the basic functionality coded. Ideally, you want to do both: get the functionality, and spend the time to perfect it. That's a benefit we get when our Japanese developers visit our India office. They often stay for a month or two, enough to form a strong team with complementary skills. Another benefit of course is that our teams are thinking much more about internationalization. That's true for China, as well.

Raju Vegesna, Evangelist for Zoho

I think Japanese programmers probably like to put their absolutely best work out there. But that's not an open source value. We send code out all the time with notes attached saying ⁠I know this section is ugly, but it's just a placeholder.⁠⁠ That approach is more conducive to having a conversation because the coding hours haven't yet been put in.

Danese Cooper, CTO, Wikimedia Foundation

I gave a talk to Japanese entrepreneurs and investors, many of them young, who essentially asked: ⁠How do we reconcile this idea with the Japanese way?⁠⁠ And I told them that I learned these ideas from the Toyota production system. And they looked at me like I was crazy--even crazier than the average American--because to them, the Japanese way was very bureaucratic, top-down, and non-innovative. They felt that these companies, including Toyota, had lost the agility of their earlier years. And that's classic behavior of general management--when you get good at something, you tend to become fixated on doing it better and better.

Eric Ries

Looking back

There's a story about a government auditor who wanted to weigh everything associated with the early Arpanet, which evolved into the Internet. He asked Bob Taylor, who headed the effort, how much the software weighed. Taylor told him it didn't weigh anything--it had no physical existence. The auditor came back a week later reporting that he had found rooms full of boxes of punch cards--and they collectively weighed tons. Taylor said yes, but the software is in the holes.

Many young filmmakers and authors spend a huge amount of time looking into the past and even referencing older works. But if you go to an academic computer science program you learn almost nothing about what came before. When it comes to networked information, our memories are short.

Marc Weber, founding curator, Internet History Program, Computer History Museum

The Internet is like electricity. It started with one light bulb--or in our case--two hosts, UCLA and SRI. And now the whole world is lit.

Elizabeth ⁠Jake⁠⁠ Feinler: Information Scientist; Internet Pioneer

Looking forward

I have trouble thinking about what the future is going to be or drawing too many generalizations from the past. I'm more interested in what interesting projects we can do now. I think a good project is like a good story: there should be some conflict, some obstacles to overcome, some unexpected plot twists and turns, and some unexpected results.

Steve Russell, Spacewar! Creator and Intel developer

You want to be able to solve the problems that you face, but carry as little baggage as you need to do it. I think that's an effective way to live life.

Jon Bentley, Distinguished Member of Technical Staff, Avaya Labs Research

In my room
In my room
Note)
The job titles listed here are of the time the interviews were conducted.

おすすめ記事

記事・ニュース一覧