意外と行われていないコードレビュー。
そして多いバグ。
プロジェクトの始めだけ、もしくは終盤だけコードレビューを行うようなプロジェクトもあるがこれでは意味が無い。
コードレビューは一貫してプロジェクト期間中に行うべきであり、それが品質につながる。他の会議は出なくても良いがコードレビューは必ず出なければならない。これほど重要なのがコードレビューである。
ただし、以下の効果を求めないプロジェクトの場合はコードレビューは重要にならない。
(注意:以下の事はオブジェクト指向言語を使いオブジェクト指向開発をした場合に限ります。手続き型で行うのは難しいでしょう。)
1.プロジェクトの全容をマネジャーが知る。
僕は開発マネジャーはプロジェクトで使っているコードの主要コードを知っている必要があると思っている。主要コードを知っていれば何かの機能を作る場合の構想が立てやすい。
プログラムはメンバーの説明よりも正しい事を物語っているので、10の説明よりも強力だ。
昔はコードの全てを追う事は難しかったが、オブジェクト指向でプロジェクトを組み立てることにより全てのコードを追う事が可能になった。
まさにプロゴラムが設計書になったのだ。
2.メンバーのミスを未然に防ぐ。
コードレビューはイージミスを防ぐ最大の武器である。コードをメンバーに見て指摘してもらうのもそうだが、一番多いのは自分で説明する事によってミスに気づく事が多い。これは受験等のテスト等で見直しをするとイージミスが見つかる事と同じである。
大抵のコードレビューはこれを目的にしている場合が多いが、これだけを目的にすると少々もったいない。
3.自分と関わりの持つ部分の共有を行う。
ある程度の規模でプロジェクトの開発をする場合は他人とのインターフェースは重要です。自分の作ったオブジェクトが正しく使われているか、自分と似たような処理をしているところが無いか、Javascript等の小技が自分のプログラムで使えないか?
等の口では説明し難い部分の共有が出来ます。
これを行っておくと「人と人」、「プログラムとプログラム」のつながりが強くなります。
4.一貫したコードを書く事が出来る。
完璧ではないが、他人のコードを見る事でコードの粒度をそろえる事が出来る。
これはある程度上のレイヤーを経験していないと分からない事だが、各メンバーのコードの粒度をそろえる事は可読性の観点でも保守性の観点でも重要だ。
これらがコードレビューを欠かせては行けない理由なのだ。
そして多いバグ。
プロジェクトの始めだけ、もしくは終盤だけコードレビューを行うようなプロジェクトもあるがこれでは意味が無い。
コードレビューは一貫してプロジェクト期間中に行うべきであり、それが品質につながる。他の会議は出なくても良いがコードレビューは必ず出なければならない。これほど重要なのがコードレビューである。
ただし、以下の効果を求めないプロジェクトの場合はコードレビューは重要にならない。
(注意:以下の事はオブジェクト指向言語を使いオブジェクト指向開発をした場合に限ります。手続き型で行うのは難しいでしょう。)
1.プロジェクトの全容をマネジャーが知る。
僕は開発マネジャーはプロジェクトで使っているコードの主要コードを知っている必要があると思っている。主要コードを知っていれば何かの機能を作る場合の構想が立てやすい。
プログラムはメンバーの説明よりも正しい事を物語っているので、10の説明よりも強力だ。
昔はコードの全てを追う事は難しかったが、オブジェクト指向でプロジェクトを組み立てることにより全てのコードを追う事が可能になった。
まさにプロゴラムが設計書になったのだ。
2.メンバーのミスを未然に防ぐ。
コードレビューはイージミスを防ぐ最大の武器である。コードをメンバーに見て指摘してもらうのもそうだが、一番多いのは自分で説明する事によってミスに気づく事が多い。これは受験等のテスト等で見直しをするとイージミスが見つかる事と同じである。
大抵のコードレビューはこれを目的にしている場合が多いが、これだけを目的にすると少々もったいない。
3.自分と関わりの持つ部分の共有を行う。
ある程度の規模でプロジェクトの開発をする場合は他人とのインターフェースは重要です。自分の作ったオブジェクトが正しく使われているか、自分と似たような処理をしているところが無いか、Javascript等の小技が自分のプログラムで使えないか?
等の口では説明し難い部分の共有が出来ます。
これを行っておくと「人と人」、「プログラムとプログラム」のつながりが強くなります。
4.一貫したコードを書く事が出来る。
完璧ではないが、他人のコードを見る事でコードの粒度をそろえる事が出来る。
これはある程度上のレイヤーを経験していないと分からない事だが、各メンバーのコードの粒度をそろえる事は可読性の観点でも保守性の観点でも重要だ。
これらがコードレビューを欠かせては行けない理由なのだ。







