マイク・ガンダロイのCoder to Developer

From The Joel on Software Translation Project

Revision as of 20:35, 12 March 2007 by Aoki (Talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Joel Spolsky / 青木靖 訳
2004年5月5日 水曜

CoderToDeveloper.jpg

メモ: これはマイク・ガンダロイの素晴らしい新刊Coder to Developerのために私が書いた序文だ。この本はSybexから出版されている。

私が何に対してイラつくかわかる?

「すべてに対して」だって? あなた方は今や私のことをちょっと知りすぎているようだ。

だけどね、あなた、私が本当にイラつくことが何かというと、ソフトウェア開発について自分がいかに知らないかということに、多くのソフトウェア開発者が気付いていないということだ。

たとえば、私がそうだ。

10代の頃、私はIBM-PCのアセンブラプログラミングについて解説したピーター・ノートンの有名な本を読み終えると、自分はソフトウェア開発一般について知るべきことはすべて知っているのだと思っていた。へん、ワープロを作るソフトウェア会社だって始められるさ。それはきっと楽しいに違いない。私の想像上のソフトウェア会社では1時間ごとにコーヒーブレークがあって、ドーナツがただで振る舞われる。その頃の私の空想にはいつもドーナツが出てきていた。

私は軍隊を出たあと、大学に入ってコンピュータサイエンスの学位を取った。今や自分は本当にあらゆることを知っていると思っていた。あらゆること以上だ。それというのも、コンピュータサイエンス学科でくだらない線形代数やNP完全性や、どう見ても役立たずのいまいましいλ計算まで学んだのだが、それは教師たちが教えるネタが尽きたので、樽の底から引っ掻き出しているのだと思っていた。

全然違った。最初の仕事を始めたときに、コンピュータサイエンス学科が上品ぶって教えてくれないことがいかにたくさんあるかを知った。ソフトウェアチームワーク。ユーザインタフェースデザインについての実践的なアドバイス。ソース管理やバグトラッキングデータベースやデバッガやプロファイラのような商売道具。ビジネス関係の話。有名な大学のコンピュータサイエンス学科では、こういったことは「職業訓練」と見なされており、学問的でないという理由で教えようとしないのだ。そんなのは高校を中退した人たちが地元の専門学校で、自動車整備工や、空調修理技師や、(鼻をつまんで)「ソフトウェア開発者」になるために学ぶことだというわけだ。

そういう態度は理解できなくもない。何にしても、有名な大学の多くは、自らの目的を学生に人生を生きるための準備をさせることだと考えており、職業技術を教えることは目的ではなく、殊に今学んだ技術が10年後には陳腐化しているような変化の大きな職業であればなおのこと埒外だと思っている。

その後の10年の間に、私はソフトウェア開発とソフトウェア製造に必要となるあらゆることについて、膨大なことを学んだ。私はMicrosoftのExcelチームで働き、それからViacomのWebチームで働き、その後Junoでメールクライアントの開発をした。で、どうだったと思う? 学習サイクルのいずれの時点においても、私はソフトウェア開発について知るべきことはすべて知っているつもりでいたのだ。

「オタクが自信過剰のくそったれというだけじゃないの?」とあなたは言うかもしれない(「くそったれ」の部分にはたぶんもう少しきわどい表現を使って)。申し訳ないが、これは私バージョンの序文だ。無礼なことを言いたいのなら、自分で序文を書いてもらいたい。そうして私の序文は破り取って、代りに自分のを挟んでおけばいい。

ソフトウェア開発には何か奇妙で、神秘的な性質がある。そのためみんな自分はやり方が分かっていると思いこむのだ。私は以前人文系出身者でいっぱいのドットコム型の会社で働いていた。彼らはソフトウェア開発の経験もなければトレーニングを受けてもいなかったが、ソフトウェアチームを管理したりユーザインタフェースをデザインする方法が分かっているつもりでいた。これは奇妙な話で、なぜなら人は実際にやり方を知っているのでない限り、破裂した虫垂炎を除去したり、自動車のエンジンを組み立て直すやり方を知っているとは思わないからだ。それがどういうわけかソフトウェア開発の話になると、知るべきことはすべて知っていると思っている人間がそこらじゅうにウヨウヨしている。

何にしても、責任はあなたの肩にかかってくることになる。あなたはおそらくソフトウェア開発の仕方を自分で学ばなければならないだろう。本当に運がよければ、最高のソフトウェア開発者たちと一緒に仕事をして、彼らから学ぶことができるだろうが、多くの人はそのような機会に恵まれているわけではない。だからマイク・ガンダロイが今あなたの手にしている本を書くことを引き受けてくれたのを、とてもうれしく思っている。あなたがコードを書ける人間からソフトウェア開発のできる人間へと移行するために知らなければならない最も重要なことについて、この本は非常に良く書かれた楽しい入門となっている。コーダーとソフトウェア開発者というのは同じものだと思ってる? 違うんだよ。それはおおよそ、クレヨンを使って簡単な単語を書いたりNを逆順に書いたりできる6歳児と、絶賛するレビューを受けミリオンセラーになる本を書く成功した小説家くらいの違いがある。ソフトウェア開発者になるということは、製品のアイデアを選び、開発チームを作り、最新の開発プロセスを整え、ソフトウェア製品を、それも適切なソフトウェア製品をデザインし、それを製造できるということを意味する。何でもいいからソフトウェア製品を作るというのでなく、問題を解決し、ユーザを喜ばせる高品質なソフトウェアを作るのだ。ちゃんとしたドキュメンテーション付きで。それにWebページも。それにセットアッププログラム。テストケース。ノルウェー語版(ブークモール版とニーノシク版のどちらも)。前菜にデザート。それに丸印や矢印の書き込まれた27枚のつやつやした8x10版カラー写真を付けて、それぞれの写真の裏に説明を書き込む。(ごめんなさい、アーロ・ガスリー。)

そしてある日、ついにあなたは、すでに遅すぎるかもしれないが、目を覚まして言うのだ。「うーん、ソフトウェア開発で本当に必要になることを、私はよく分かってないのかもしれない」。その日より先、あなたは自分がソフトウェア開発者であると名乗ることができる。そうなるまでは何もないわけではない。1時間ごとにドーナツが食べたいと思っているなら、あなたに祝福あれ。


(オリジナル: Mike Gunderloy's Coder to Developer)

戻る

Personal tools