Paul Graham 「ハッカーと画家」から。

by tanabe on March 02, 2005

DB Magazine 2005APRとWEB+DB PRESS vol.25を買いに行ったついでに「ハッカーと画家」を購入。

先日、「知っておきたかったこと --- What You'll Wish You'd Known」を紹介したPaul Grahamの著だ。

ハッカーと画家 コンピュータ時代の創造者たち

まだ途中までしか読んでいないのだけど、気になる文章がそこかしこにあるので、一部をご紹介。


プログラミングスタイルについて

「例えば大学で私は、コンピュータに手を触れる前に紙の上でプログラムを完全に理解しなければならないと教わった。でも私はそういうふうにはプログラムできなかった。私が好んだやり方は、紙の前ではなく、コンピュータの前に座ってプログラミングすることだった。」

「私の知る限り、私が大学で教わったプログラミングのやり方は全部間違っていた。作家や画家や建築家が創りながら作品を理解してゆくのと同じで、プログラマはプログラムを書きながら理解してゆくべきなんだ。
 これを知ることは、ソフトウェアの設計に大きな意味を持つ。まず、プログラミング言語は何よりも柔軟でなければならないということが言える。プログラミング言語はプログラムを考えるためのものであって、既に考えたプログラムを書き下すためのものじゃない。」

ソフトウェアのデザインと競争力

「Yahoo!に入ってみたら、そこではハックするということはソフトウェアを実装するということで、デザインするということではないということが分かった。プログラマは、プロダクトマネージャのビジョンとかいったものをコードへと翻訳する技師と見なされていたのだ。
 どうも大企業ではそれが普通らしい。そういうふうにすれば、出力のばらつきを抑えることができるからだ。 」

そうそう。同じ会社の社員でも企画部と開発部の2部制なのが実情だ。そして、企画部すら実態はやはりコードへの翻訳への繋ぎの係でしかなかったりする。誰もデザインをしている人はいず、工業製品としてのシステムを作り出す仕組みになっているのだろう。

「だから、ソフトウェアがプロダクトマネージャたちによって設計されるような大企業とデザインで勝負する方法を見つければ、彼らは絶対あなたには勝てない。でもそういう機会を見つけるのは簡単ではない。」

「デザインで勝負に打って出るべき場所は、誰も要塞を築いていない新しいマーケットだ。そこでなら、デザインに大胆なアプローチを採り入れ、そして同一人物がデザインと実装を受け持つことで、大きく勝つことができる。」

良いソフトウェアデザイン

「ソフトウェアは、それを見ればすぐに使い方が分かるものであるべきだ。だから、良いソフトウェアを書くには、ユーザがどれだけ何も知らないかということを理解する必要がある。ユーザは何の準備もなくやって来て、いきなりソフトウェアに向かい、マニュアルなんか読もうともしないだろう。ソフトウェアはそういう人が期待するように振舞うべきだ。」