GoTheDistance

ござ先輩と言われています。(株) クオリティスタートという会社をやっています。

Getting Real 第1章を和訳してみた

公式ページの邦訳に魂が入っていないのとid:elm200氏の邦訳に刺激されて、公式ページの第1章だけ、オレ流で邦訳してみた。予想よりかなり難しく、3連休の最終日に頑張ってしまったのは秘密だ。ウケたら調子に乗って、いつか続きをやる。

Getting Realとは

顧客に喜んでもらえるWebアプリを作りたいって?じゃあGetRealする時だ。Getting Realは、より少なく、より早く、より良くソフトウェアを作るためのやり方のことだ。

Getting Realは、ソフトウェアにおける現実を表現するもの(チャートやグラフ、ボックス、矢印、図式、ワイヤーフレームとか)を全てすっとばして、実際に動くものを作るってことだ。

Getting Realは、より少なくするってことだ。より少ない集合体、より少ないソフトウェア、より少ない機能、より少ない事務作業、つまり本質的でないものを全て、より少なくするってことだ。(そしてあなたが本質的だって思ってることのほとんどは、実際はそんなことないんだから)

Getting Realは、小さくあり続けること、そしてアジャイルでいることだ。

Getting Realは、インターフェイス、つまり本物の画面からスタートするってことだ。そこからはじめることで顧客が実際にあなたのソフトウェアを体験することが出来るし、そこから後ろ側の機能を作っていけるんだ。こうすれば、ソフトウェアが間違った方向に行く前に、正しいソフトウェアとのインターフェイス*1を得ることが出来るんだ。

Getting Realは、反復(iteration)すること、そして変更のコストをより少なくすることだ。

Getting Realは、Webベースのソフトウェアにとって、それを立ち上げ、微調整し、継続的に改善していく完璧なアプローチに関する全てなんだ。

Getting Realは、ただ顧客が必要としているものを提供し、必要としてないものは全て取っ払うことなんだ。

Getting Realの恩恵とは

Getting Realは、あなたによりよい結果をもたらすものなんだ。なぜかと言えば、Getting Realは、様々な問題に対するあなたのアイデアの代わりに、あなたが解決しようとしている実際の問題に強制的に向き合わせるからだ。Getting Realは現実と向き合うことを強制させるんだ。

Getting Realは、機能仕様や一時的でしかないドキュメントに先立って、本当に使う画面を作ることに賛同してもらうことなんだ。機能仕様ってのはできたように思わせてしまうし、それを元に合意が取れても、幻想なんだ。それに対し、実際のWebページは現実そのものなんだ。それがあなたの顧客が実際に目にして使おうとしているものなんだ。それが重要なんだ。

Getting Realはあなたをより早く動かすことができるんだ。それが何を意味しているかと言えば、抽象的な概念の代わりに現実にあることをベースに、ソフトウェア上の決定を下せるようになるってことだ。

最後になるけど、Getting RealはWebベースのソフトウェアにとっては理想的なアプローチなんだ。箱の中*2にソフトウェアを導入して、アップデートに1年も2年も待たせられるような古いソフトウェア・モデルは過ぎ去っているんだ。インストールされたソフトウェアとは違って、Webアプリケーションは1日、1日という単位で継続的に進化することが出来るんだ。Getting RealはそういったWebアプリケーションの優れた所を活用するためのもので、そこに全ての価値があるんだ。

生き生きとしたソフトウェアを書くための方法とは

生き生きとしたものを書くってことは、無駄がないってことなんだ。1つの文には無駄な単語が無いし、1つの段落には無駄な文章が無い、同じ理由で絵を書くってことも無駄な線がないし、機械を作るってことも無駄な部品が無いってことだ。これは書き手が全部の文章を短くしたり、詳細を全てに書くことを避けたり、概要だけしか扱わないってことじゃないんだ。その代わり、1つ1つの言葉が語りかけてくるってことなんだ。

-ウィリアム・ストランク・ジュニア著 「文体の構成要素」より

もうこれ以上肥大化しちゃダメだ

昔のやり方:期間が長く、官僚的で、やれって言われたことだけをやるプロセス
典型的な結果:肥大化して、忘れられて、月並みに壊れていくソフトウェア。最低だ。

Getting Realによって取り除けるもの

何ヶ月、時には何年もかかるスケジュール
あてにならない機能仕様
収拾のつかない議論
ダラダラ続くスタッフ・ミーティング
何十人も雇う必要性
無意味なバージョン・ナンバー
パーフェクト未来を描いたピカピカのロードマップ
終わらないユーザー要望
サポートのアウトソーシング
非現実的なユーザー・テスト
意味の無い事務作業
トップダウンの上下関係

素晴らしいソフトウェアを作るためには、何トンものお金、巨大なチーム、長期間に及ぶ開発サイクルといったものは要らないんだ。こういったものは、重くて、よくわかんなくて、変更しようにもできないアプリケーションの原材料なんだ。Getting Realは全く逆のアプローチを取っているんだ。

この本で書かれていること

哲学をもつことの重要性
なぜ、小さくい続けることがよいことなのか
どのようにより少なくソフトウェアを構築するのか
どのように俊敏にアイデアからカタチにすることができるのか
どうやってチームを編成するのか
なぜ、徹底してデザインをしないといけないか
なぜ、書くことがとても重要なのか
なぜ、競争を回避するべきなのか
どのようにアプリケーションをプロモーションし、話題を広げるか
うまくいくサポートの秘密
立ち上げた後、その勢いを保つTips
…その他多数。

この本では、大局的に見ることを中心に書いてあるんだ。詳細に書かれたコードやCSSの巧妙なテクニックという泥沼に嵌らないように、Getting Realのプロセスの中の主要なアイディアや哲学を中心に紹介したいと思ってるよ。

この本のターゲット

大きなアイデアをもって取り組んでいる起業家、デザイナー、プログラマー、マーケターなどだ。

古きルールがもはや全く当てはまらないことに気がつくよ。毎年CD-ROMでソフトウェアを配布するのかい?2002年に作ったソフトウェアってどれぐらい残ってるの?バージョン番号?そんなもん窓から捨てなさい。あなたに必要なのは、ソフトウェアを作って、立ち上げて、微調整することだ。それから洗い流して、また作って立ち上げて微調整することを繰り返し行うんだ。

もしかしたら、今はまだアジャイル開発やそれに伴うビジネスに関ってはいないけれども、そういったことをもっと学びたいという方も対象になる。今までの記述に何か響くものがあるんだったら、この本はあなたのためにあるよ。

注意

この本はWebアプリケーションを作ることをメインにしていますが、この本にある多くのアイデアはソフトウェアと関わりの無い活動にも適用可能なものです。小さなチームのこと、迅速にプロトタイプを作ること、反復することが当然起きるものだと予期すること、そしてここにある多くのものは、ビジネスを開始したり、本を書いたり、Webサイトをデザインしたり、アルバムを作ったり、その他様々の試みにとってのガイドとしてお使い頂けるものです。一度Getting Realをやってみて頂ければ、人生の様々な場面でそのコンセプトを応用することができるのです。

公式ページより全然いい感じ!オレ頑張った!寝る!

*1:接点、関りってトコか

*2:ハードウェアってことだろう。Webアプリはブラウザだけあれば使えるんだから、ハードありきではないってことだ

SQLを学習できるWebサービスを作りました。