Developer's Perspective―海外エンジニア/ブロガー 直撃インタビュー+翻訳エッセイ

第1回 「Joel on Software」Joel Spolsky:翻訳エッセイ編―プログラムマネージャになるには

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

仕様書? マジで? アジャイルじゃないね

仕様書が無意味な官僚的ペーパーワークの結果であるような開発組織はあまりに多く,仕様書を書かないという考えを中心とした運動が起きた。しかしこれは見当違いだ。機能仕様書を書くことはアジャイルな開発の中心であり,それはコードを書く前にたくさんの可能なデザインを素早く検討できるからだ。コードと比べ,仕様書はずっと簡単に変更できる。仕様書を書くという行為自体が,頭の中にあるデザインについてじっくり検討することを強い,デザインにある欠陥を素早く見つけ出すのを助け,より多くのデザインを試せるようになる。機能仕様書を使う開発チームはより良くデザインされた製品を生み出す。より多くの可能な解法をすばやく探索するチャンスがあるためだ。彼らはまたコードをより早く書けるが,それは何が必要になるかについてより明快なイメージを持っているからだ。機能仕様書は非常に重要であり,⁠仕様書なしにはコードを書かない」というのがFog Creekにおける数少ない絶対的ルールの1つになっている。

画像

機能仕様書が具体的に取る形態はさまざまであり得る。機能仕様書がすべきことは,プログラムがどのように振る舞うか説明するということだ。内部的にどういうしくみなのかについては何も言わない。機能仕様はもっとも高いレベルのビジョンの記述( 1ページに収まる新機能の説明⁠⁠ から始まる。ビジョンが定まったら,ストーリーボードを作成する…。ユーザがアプリケーションをどう使うかを示した画面のモックアップと動きについての詳細な説明だ。多くのタイプの機能,特にユーザインタフェースが中心となる機能については,このストーリーボードができれば仕様は完成する。Jason Fried,もうプログラムを書いてもいいよ

良い機能仕様書の書き方については,私の4部作注5を読んでほしい。私の書く典型的な仕様書が見たければ,Fog Creek Copilotの完全な仕様書がダウンロードできる。

ユーザインタフェースのストーリーボードでは表現できない隠れた振る舞いを持った複雑な機能については,もっと詳細に書き留めたくなるだろう。いずれにせよ,仕様を書き出すという行為自体が,問題点や矛盾や設計上の問題を,コードを書き始めるずっと前に見つけ出せるようにしてくれる。だからコードを書く時点では,予想しないような問題が現れてコードを書き直したり,最適でないデザインに甘んじるというようなことはずっと少なくなる。

注5)
やさしい機能仕様

どうしたらプログラムマネージャになれるか?

プログラムマネージャになるために必要なことの大部分は学習だ。テクノロジについて学び,人間について学び,政治的な組織にあってどうすれば力を発揮できるかを学ぶ。良いプログラムマネージャは技術的なデザインを行うエンジニアのアプローチと,コンセンサスを築き人々をまとめる政治家の能力を併せ持つ。これに取り組む上で読んでおくべき本がいくつかある。

プログラムマネージャがする仕事についてよくカバーしている本は,私の知る限りではScott Berkun の"Making Things Happen" だけだ注6⁠。この本から始めるといい。Scott はInternet Explorerチームのプログラムマネージャを長年務めていた。

プログラムマネージャのもう一つの大きな仕事は,ユーザインタフェースのデザインだ。これについてはSteve Krug の本"Don't Make Me Think: A Common Sense Approach to Web Usability"(翻訳『ウェブユーザビリティの法則⁠⁠/ソフトバンククリエイティブ,2007年)と,それに私の本"User Interface Design for Programmers"(Apress, 2001 年)を読んでほしい。

最後に,安っぽく見えることは承知しているが,Dale Carnegie(デール・カーネギー)が1937年に書いた「人を動かす」⁠創元社 1999年)を,対人スキルを磨くための素晴しい入門書として挙げておこう。Fog Creekにおけるマネジメントのトレーニングで最初に読ませている本がこれだ。読むように言うとみんな笑うのだが,読み終わったときにはみんなこの本が好きになっている。

注6)
旧版の翻訳『 アート・オブ・プロジェクトマネジメント ―マイクロソフトで培われた実践手法⁠⁠/オライリー/2006年

著者プロフィール

Joel Spolsky(ジョエル・スポルスキー)

WebサイトJoel on Softwareにより世界で広く知られているソフトウェア開発プロセスのエキスパート。Fog Creek Softwareの創業者CEOであり,Stackoverflow.comをJeff Atwoodとともに立ち上げた。以前にはMicrosoftでExcelチームのメンバーとしてVBAをデザインし,Juno Online Servicesで数百万人が使うインターネットクライアントを開発している。著書に『User Interface Design for Programmers』(Apress,2001),『Joel on Software』(Apress,2004),『Smart and Gets Things Done』(Apress,2007),『More Joel on Software』(Apress,2008),編著書に『The Best Software Writing I』(Apress,2005)がある。

URL:http://joelonsoftware.com


青木靖(あおきやすし)

ソフトウェア開発者/翻訳家。訳書に『Joel on Software』(オーム社 2005年), 『Best Software Writing』(翔泳社 2008年), 『ソフトウェア開発者採用ガイド』(翔泳社 2008年), 『Eric Sink on the Business of Software 革新的ソフトウェア企業の作り方』(翔泳社 2008年),『More Joel on Software』(翔泳社 2009年)がある。

URL:http://www.aoky.net/