プログラマyasuhoの隠れ家

某ソフトウェア企業に勤務するおじさんプログラマyasuhoです

プログラマはなぜ仕様書を書くのが嫌いか


最近仕事でよく仕様書を書いている。
多くのプログラマがそうであるように、ぼくは仕様書を書くのが苦手だ。(ぼくだけ?)


自分の作ったプログラム、他人の作ったプログラム、などが何をしているかを文章にして人に伝える。
それだけのことなのだが、うまくまとめることができない。
ようやく出来たとしても、よく分からないと言われることもしばしばだ。
何かしら補足説明をして、やっと意味が伝わったりする。


しかしプログラムというのは、言ってみればコンピュータに作業内容を伝える仕様書を書いているわけなのだから、プログラマは仕様書を常に書いているはずなのだ。
書くべき内容は誰よりもそのプログラムを作った本人が理解しているはずである。
それなのに、なぜプログラムが何をするかを人に伝えることが難しいのだろうか。


全てに当てはまるわけではないと思うが、ぼくの経験からプログラマが仕様書を書くのが苦手な理由は
コンピュータに話しかける言葉と同じ言葉で仕様書を書いているから
ではないかと思う。


メイルソフトというのが何をするかという仕様書を書いたとしよう。


これはユーザが作ったメイルをインターネットに送信したり、インターネットを経由してメイルを受信したりするソフトです


これを


これはユーザがダイアログに入力したメッセージをSMTP又はPOP3プロトコルを使ってサーバに送ったり、サーバ上の自分宛に送られてきたメッセージを同じくSMTP/POP3プロトコルで取り出したりするソフトです


なんて書いたら、なんかよく分からないよね。


さすがにこんな極端な書き方はしなくても、単純に書く量を減らしただけでは、あまり分かりやすい説明にはならない。
プログラマが仕様書を書く時って、プログラムを書く前または後のどちらであっても、ある程度プログラムの内容を想像して書く。
でもプログラムって、コンピュータに対してそのソフトの目的を達成する手段を書いているにすぎないので、それを文章にしただけでは目的は伝わらない。
で、目的をいろいろ考えるのだけど、書いてるとどうしてもプログラムの中身のこと書いていたりする。


うちの会社ではこういうレベルの仕様書はプログラマが作らない、という人もいるかもしれない。
けど、プログラマが何か思いついて、それをみんなに伝えたい、ってこともあるよね。
ぼくはにも書いたように、もっとうまく人に考えを伝えられるようになりたいのだ。


幸いblogが何ヶ月も続いているところを見ると、文章を書くこと自体は嫌いではなく、なかなか楽しい。
物書きが好きだったおやじの影響だろうか。
仕様書に限らず、誰にでも分かりやすい、よい文章を書けるようになりたいものです。


P.S.


なぜプログラマが仕様書を書くのが苦手か、というより、主に仕様書の重要性についてなのだが、こんなページを見つけた。


http://japanese.joelonsoftware.com/Articles/PainlessFunctionalSpecifi-2.html


これに限らず、この人の記事、なかなか面白いなあ。
あとでゆっくり読もうっと。