他人に自分の書いたコードを見せることに抵抗感を持つ人が少なくないようです。そこには「見せるのが恥ずかしい」や「自分のノウハウをさらすことに抵抗感がある」などいろいろな理由があるのでしょう。ですが、他人に見せることで得られるメリットから考えると、それは非常にもったいないことです。
というのも、自分がプログラミングを覚える過程を思い出して下さい。書籍やサンプルを見ながらコーディングをしたことは、とても勉強になったはずです。それと同じように、自分の書いたコードや他人の書いたコードをお互いにレビューすること(見せ合い、意見交換すること)は、非常に有益な学習の機会になります。たとえば自分が書いたコードを人に見せ、説明するという行為は自分の意図や考え方の整理につなげることができ、一方、他人のコードを見ることは、他の人のアイデアや方法を学ぶよい機会です。
では、具体的にコードレビューとはそもそもどのように行なうべきものなのでしょうか。まず、コード作成者がコード作成の目的や実装上のアイデアや構成を説明し、さらに実際のソースコードを参照しながら解説して下さい。ここでポイントとなるのが「実際のコードをもとに説明する」という点です。単なるプレゼンテーション上の資料をもとにするのでは、せっかくの現場(コードを書くこと)での知恵や、実際に現物を見たときの“気づき”が生かされません。また、この時説明側は聞き手の習熟度などについても注意して下さい。もし比較的経験度の低い相手に説明するのであれば、使用している関数やメソッド、構造体などの仕様や、意図についても、相手のレベルに合わせて説明するべきでしょう。
コードレビューは継続することが非常に重要となります。というのは継続することで、レビューをしている人たちの間に文化が醸成されていくからです。お互いに学び合い、それぞれのノウハウを共有化していき、その時点でのベスト・プラクティスを選択し続けることは、そのメンバー間でのコードの書き方が似てくることを意味します。そして似てくることで、システムのどこにどのようなモジュールが配置されているとか、同僚がよく使う機能を実現するために使用する手段がどのようなものかが、現場の人間同士ですぐにイメージがつくようになるはずです。仕事の引継ぎを楽にすることも期待できます。
コードレビューの効果のもっとも良質な例が、オープンソースの各種プロダクトです。活発なオープンソースのプロダクトの活動は、今やインターネットの世界でも欠かせません。それらのコードは常にレビューされ続けることにより、日々進化しています。そして実際に腕試しのためにその世界に飛び込むエンジニアも多いでしょう。「日本にはすばらしい技量をもった技術者が実はたくさんいる」と筆者は日々感じています。皆さんもぜひその技術の高さを、人へ、世界へ見せていってはいかがでしょうか。
Illustration:Aiko Yamamoto
●バックナンバー第1回 IT技術を考える~ECMAScript~
第2回 エンジニアの成長を助けるビジネススキル~PDCA~
第3回 しっかり稼げてヤリガイあり~新インクリメンタル型開発~
第4回 自分のことってわかってる?~生産性を考える~

この連載の記事
- 第13回 最終回 オフショア時代を生き残るエンジニア
- 第12回 第12回 はじめに“辞め時”を考えておくべき~出口戦略~
- 第11回 第11回 「日本版SOX法」時代のエンジニアに進化する
- 第10回 第10回 あらゆる問題の原因をつきとめる~切り分け~
- 第9回 第9回 よいマッシュアップへと導くキホン中のキホン
- 第8回 第8回 成長のチャンスを逃がしてませんか?~現場の機会を考える~
- 第7回 第7回 革新的なサービスを生む源~インターフェース~
- 第5回 第6回 世にあふれるビジネスノウハウに混乱するな!~KISS~
- 第4回 第4回 自分のことってわかってる?~生産性を考える~
- 第3回 第3回 しっかり稼げてヤリガイあり~新インクリメンタル型開発~
- この連載の一覧へ