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

#21Sarah Allen, Chief Geek, Mightyverse

Some software developers thrive in large companies. Others find their heart lies in startups. Among the latter is Sarah Allen, who holds the cheeky title of ⁠chief geek⁠⁠ for Mightyverse, a mobile-focused startup that is taking online language translation to the next level. The website, which is in beta, features short videos of things people actually say: not just conventional words, phrases, and sentences, but jokes, slang, lyrics, and technical terms. Mightyverse recently released an iPhone app, "MightySushi," which gives Japanese sushi-related phrases along with the English translations. She also heads her own San Francisco Web development consulting firm, Blazing Cloud.

Allen got her start in programming at age 12 when her mother, a former teacher, launched a new career selling Apple computers, and in the process, launched her daughter’s career, as well. In those days, Apple IIs came with a book on BASIC. Allen read hers and got proficient enough to teach the language at a summer camp. At Brown University in Rhode Island, she majored in computer science and visual arts, then joined a startup, Company of Science and Art, founded by some college friends. CoSA created the motion graphics application After Effects, which was acquired by Aldus and is now sold by Adobe.

画像

In 1992, Allen landed a job at Apple working on ⁠an ill-fated project, the so-called Apple Open Collaborative Environment, which was not open at all.⁠⁠ She moved on to short stints at Aldus, inventor of the early desktop publishing program PageMaker, and Adobe, which acquired Aldus in 1994. ⁠Then I was done with big companies. I was lost in the crowd and didn’t feel like I was making a big enough impact.⁠⁠ Allen turned her back on mainstream Silicon Valley and found a home in smaller organizations, where the budgets are smaller but the job descriptions are less confining.

Many developers would view large technology companies as a better place to work: more secure, more opportunities for promotion. What are the drawbacks?

At a large company, in theory at least, you have tremendous resources--but you have less autonomy and control. And without the control, the size of those resources can be deceptive. You have more overhead, you go to more meetings, and you must spend more time convincing people of your ideas, which is appropriate in a big organization. But all of this means that everything is slowed down to the point that, by the time you’ve gotten your product to market, the market has changed. That’s always true, of course, but in a big company, your ability to change that initial mission is very limited.

Are startups the reverse of that: fewer resources, more control?

Exactly. And if you are young in your career, a startup can give you phenomenal experience and more senior roles than you will get at a big company. Your role will be less defined, so when opportunities arise, you can step up and meet them yourself--because there’s often nobody else to do it. On the other hand, if you are in the wrong situation, or are not with people who respect you and give you the right opportunities, startups can be brutal.

What are the most important skills to succeed in a startup?

Initiative is key. People think that in a startup, the leaders are especially important because you rely so much on them for mentoring. But in the startup environments that I was in, we were all a bunch of kids and figuring it out together. The more you can be self-directed in a startup environment, the more you are going to get out of it.

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 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.

Many programmers discover that software development is as much about people as it is about code.

And as a manager, you have to realize that there is more than one right way to solve a problem. Different engineers will have a different aesthetics, will warm to different problems, and will execute differently. You may have two competent engineers who will both solve the problem. But the first will write code that is robust and delivers performance, with log files that gleam, while the second will make it a beautiful end-user experience. A good manager will recognize that both can play important roles. Most of the world still believes that software and machines are things that can be created by robots. But they are not: they are tools made by humans for humans. And the humans that make the tools express themselves differently.

I see this in the work I’m doing with Mightyverse because we are essentially trying to solve a communications problem: in a global economy, how do you communicate not only across languages, but across cultures. In building a developer team to address this challenge, the most important thing is not necessarily their skills and prior work experience, but that they ⁠get⁠⁠ the problem and therefore will create the solution that’s needed. It’s an iterative process, and an exciting one.

How is it an iterative process?

Software is never done. I used to think you came up with a mission, a spec, a set of requirements, a PRD [product requirements document]. Eighteen months later, you’d deliver a finished product, and that’s the final word until the next release. But I’ve come to see product releases not as a final destination, but snapshots of an ongoing journey. With Web applications, that’s even more so. Most of the time, users aren’t even aware of when there is a new release. The application just evolves over time.

With Mightyverse we’ve been doing something that was articulated well by Eric Ries and the lean startup movement, which has been a force here in the San Francisco Bay Area. His insight is that the main product of a startup company is learning, not products. We do new software releases in order to really understand what the product is that will solve this problem out there in the world. Because the project is so highly iterative, the ideas we are exploring are much larger than what you see when you go to our website.

You head technology at Mightyverse, but you also have a consulting company, Blazing Cloud. How does that work?

The team I’ve built are employees of my consulting company, and we work on Mightyverse in between other gigs. That approach came out of my earlier startup experience, where we took on other projects when the money got thin. That kept us employed, but did result in some compromises to our original product vision. That tension is inevitable. On one hand, you have someone who will pay you a lot of money to do their project. On the other hand, you have this vision that could potentially attract thousands, or hundreds of thousands, or millions of people eventually willing to pay you, as well. When you have bills to pay, it’s really easy to deceive yourself into thinking that these two scenarios are the same thing.

You are still facing that problem: you are the “chief geek” at Mightyverse, but you aren’t working at that full time.

That’s right, and it means that I don’t have as much time as I’d like for Mightyverse. But it also means that the time I spend on Mightyverse is truly dedicated to Mightyverse’s vision. I can make decisions about Mightyverse that are not influenced by my making payroll. That liberates us to do the right thing and build the right product. My goal is to be full time at Mightyverse, and that Blazing Cloud will at some point continue without my involvement.

You are also involved in attracting women to the Ruby on Rails community.

I became a member of that community because of Mightyverse, which had already developed a Ruby on Rails Web application before I got involved. So when I took over technical leadership and learned Ruby on Rails, I found myself in the midst of this community in which women comprised only about three percent. That’s dramatically less than the industry as a whole. It seemed to me that this specific microcosm of the Ruby community was eminently solvable. So I collaborated with another woman, Sarah Mei, to improve the situation at least here in the Bay Area. The workshops have been hugely popular: we typically teach 50 women per weekend, and over the last year and a half, we have seen women comprise up to 20 percent of the gathering at local Ruby meetups. It is exciting to see such an impact over such a short time.

Is that important for women, for the community, or both?

Frankly, I’m doing this for selfish reasons: I don’t want to be the only woman in the room. I’ve always tried to hire mixed teams, sometimes successfully, sometimes not. I like to be in a group that has lots of different people. And while I don’t express it if I’m the only woman in the room, I’m very conscious of it, and I think other people are conscious of it when I speak. Moreover, I believe that it is essential that the people who make software in the world be reflective of our society--otherwise the right software won't get built.

One of the things that was remarkable about the Ruby community, from my experience at least, is that people were really nice. They were welcoming. They answered questions. [Ruby on Rails inventor] David Heinemeier Hansson has a mixed reputation in this regard, but before I even knew anything of that, I was scouring the newsgroups to get up to speed. In one case, the first two responses were the dismissive: ⁠why don’t you just Google that.⁠⁠ But the third response was from David, himself, who first said welcome to the community, and then answered the question. I thought that was really cool. That’s the type of community I want to be a part of.

One advantage you bring to Mightyverse is your language skills. You speak Spanish and German, and you are learning Japanese.
画像

If I hadn’t studied computer science, I might have majored in cognitive science―because I’m interested in how different languages influence how you think and what you choose to say. As for Japanese, I actually started learning the language when I was 11. My mother studied Asian culture and lived in Japan before she was married. We lived in the Philippines when I was in the fourth grade, and on the way home we stopped and visited her Japanese family whom she lived with when she was in Japan. I learned more Japanese, only recently to discover how warped my version of the language was. For example, I spelled Konnichiwa incorrectly as こにちわand thought that いただきます meant "let's eat".

Last year when one of our Japanese investors came to visit, I learned a Japanese phrase using Mightyverse: 井の中の蛙大海を知らず. It means that the frog in the well does not know the great sea. The phrase communicated my sense that it’s to look at our website and really see where Mightyverse is headed. A colleague at Mightyverse who is a native Japanese speaker helped me understand more completely the breakdown of the words and what the phrase means.

But when I finally summoned up my courage to say this phrase, a magical thing happened. All of a sudden, I established a connection with somebody who speaks English very well, but not to the depth he would have liked. By pouring all of my thoughts about Mightyverse into this one phrase, I think he really understood what I was trying to communicate. It also established a touch-point for conversation. He told me the phrase came from an epic poem. He shared with me some poetry. The leap across languages turned out to also be a leap across cultures.

おすすめ記事

記事・ニュース一覧