『Clean Coder』を読めば胸が締め付けられる思い

翻訳レビューに参加させていただいて、僕にとって初の献本をいただきました。訳者の角さん、ありがとうございます。レビューのプロセスはとても貴重な経験でした。本書の読みどころを僕の経験を交えて書きたいと思います。

本書は「プロは」で始まる文がたくさん書かれています(試しにレビュアー特権を使って「プロは」をgrepしたら74件もあった!)。プロフェッショナルがどのような行動をとるかが書かれています。テクニカルな部分に限れば、もしかしたら他書の方が詳しいかもしれません。しかし、本書に特徴的なのは、ソフトウェア開発者の心の動きが書いてあるということです。特に、第2章「ノーと言う」と第3章「イエスと言う」は必読です。Twitterなどの反応を見ると、面白く読まれた方が多いようですが、僕はそれほど楽しくは読めませんでした。
次のようなくだりがあります。

試しにやってみる」にはさまざまな意味がある。私が問題にしているのは、「余分な仕事をする」ことだ。デモを期日に間に合わせるために、ポーラは何ができたのだろうか?もし何かできたのであれば、彼女やチームはそれまで仕事をしていなかったことにになる。つまり、力を温存していたわけだ。」
 試しにやってみるというのは、力を温存していたと認めることだ。

マージ「評価エンジンの修正は金曜日までにできる?」
ピーター「できると思います」
マージ「ドキュメントも?」
ピーター「やってみます」

おそらくマージは、ピーターの言葉に迷いが生じていると思わなかっただろう。だが、ピーターは確実に約束するとは言っていない。ドキュメントが間に合うかどうかは真偽を曖昧にしている。

ここを読んだときに、ドキッとしたという程度ではなくて、胸が苦しいとか思い出したくないといった感覚を持ちました。なぜなら「やってみます」とは、僕が過去に開発の現場で何度か口にしたことがある言葉だからです。例えば、普通にはできないような作業量だったり、先の見通しが付かないタスクだったりした場合に、自分が保証できないという意味で意図的に「やってみます」と言ったことがあります。そこで「コミットメントしろ」と強要されるのはおかしいとも思っていました。僕はあのときどうすればよかったのだろうと振り返ることもあります(積極的には思い出したくありませんが)。

どうやら僕はまだボブおじさんの言うプロフェッショナルとは呼べないようです。きっと「プロはそんなことしない」のです。

しかし、本書にはプロフェッショナルになるための方法も書かれています。第6章「練習」でどのように訓練を積むかを学び、第9章「時間管理」でどのようにオフィスで過ごせばよいかを学び、第11章「プレッシャー」で弱い自分を乗り越えるかを学び、第12章「協力」で一緒に働くことを学びます。本書を片手に努力を続ければ僕もプロになれるかもしれません。

君はソフトウェアに情熱を書けていたから、ソフトウェア開発者になったわけだよね。プロになりたいのもその情熱があったからだよね。

他にも、「早すぎる詳細化」「後期の曖昧性」は僕も以前似たようなことを書いていたり、我が身を省みたくなる「受動的攻撃」など、こういった言葉はもっと流行って開発者どうしの共通言語になってほしいですね。というわけで、ぜひ読んでみてください。

Clean Coder プロフェッショナルプログラマへの道

Clean Coder プロフェッショナルプログラマへの道

Clean Code アジャイルソフトウェア達人の技

Clean Code アジャイルソフトウェア達人の技

アジャイルな時間管理術 ポモドーロテクニック入門

アジャイルな時間管理術 ポモドーロテクニック入門