プログラミングに関するTIPSを中心に紹介 はてなアンテナに追加 はてなRSSに追加
かわいいコードに旅をさせよ   このエントリーを含むはてなブックマーク
人は誠実な批評よりも心にもないお世辞を好む。
プラトゥス

設計レビューやソースコードレビューといったレビューは、ソフトウェアの品質確保だけでなく、開発者のスキル向上のためにも非常に有意義です。このレビューを有意義なものとするために心がけてべき最も重要なことのひとつが、
「自分の書いたソースコードや設計書に対して客観的であること」
です。簡単そうで、これがなかなか難しい。

人間、自分で作ったものは愛着が出ます。これはソースコードも同じ。エレガントなモデル設計やスマートなアルゴリズムに仕上がったものは誇らしいけど、混乱した設計や実装も、こんなはずじゃないんだ、分かっているんだとかばいたくなる。なので、人からつっこまれると、ついつい、ソースコードの味方をしてしまうことがあります。これは、ちょっと過保護で、ソースコード君のためにはなりません。

では、客観的な立場に立てているどうかはどうやったら分かるでしょうか。ひとつの方法は、「レビューの指摘に対して、ソースコードを書いた本人が嫌な気分になるかどうか」で分かります。人の書いたソースコードレビューでは、気になった点をどしどし指摘するし、人の意見にも「うんうん」とうなずくのに、いざ、自分のソースコードの時には、ついつい守りに入っている、そんな経験ないでしょうか (私はあります ^^;)。自分のソースコードであっても、人のコードと同じような気分で、レビューに望めるようになれば、かなり客観的になれていると言えるでしょう。

レビューに関しては、「責める」のではなく「褒める」とことが大事だという意見もあります。確かに、自分の書いたコードや設計が褒められるのは悪い気はしません。褒められて伸びるというのも否定しませんが、そこで喜ぶのはその成果物を客観的に見れていないということです。「褒める」という行為によって、自信をもたせることもひとつ重要な点だとは思いますが、悪い点はそこそこに、良い点ばかりを見るように仕向けるのは決していい方法とはいえません。

489100388X「プラス思考」「ポジティブ・シンキング」という言葉があります。この言葉を「いいように考える」という意味で使っている間は、決してスキルアップはありません。マイナス面に目をつむって、いい部分だけ見ていては、それ以上の改善はありません。「いいように考える」のではなく「よくするように考える」、悪い点があるのなら、そこをどうやっていい方向に持っていくかを考える、守るだけでなく攻める、そういう姿勢が重要です。批判は単に「耐える」ものではありません。素直に受け入れてそれを力に変えることが重要です。レビュアは敵ではないんですからね。

なお、レビュアの方も単に攻撃してやろうという気持ちだけではいけません。意見を受け入れられるように的確な対案をまじえながら建設的な指摘する、そういうレビュア側の姿勢も、高品質・高効率なれビューには非常に重要です。


【関連書籍】
ピアレビュー―高品質ソフトウェア開発のために Karl E.Wiegers 大久保 雅一
「ほめる」技術 鈴木 義幸
ソフトウェアインスペクション Tom Gilb Dorothy Graham 伊土 誠一
ソフトウェア・レビュー技術―基礎から実践までのノウハウ 織田 巖
ピープルウエア 第2版 − ヤル気こそプロジェクト成功の鍵 トム・デマルコ ティモシー・リスター

【関連リンク】
ルールを破る時のルール
射撃しつつ前進

コメント
この記事へのコメント
なるほど「客観的な立場」ですか。
これは自分にとって新しい視点です。
コードレビュー時に参考にしてみますね。
2008/06/18 (水) 16:47:46 | URL | t #-[ 編集]
>tさん
こんにちは。
そうは書いていながら、自分も頑固で、なかなかできてませんが ^^;
2008/06/22 (日) 23:18:51 | URL | proger #-[ 編集]
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
copyright © 2005 職業としてのプログラミング all rights reserved.
Powered by FC2ブログ.
FC2ブログ