開発中は曖昧な言葉を使わせないようにする

最近、開発経験が浅い人とそうでない人の違いは言葉の使い方にあるのではないか、と考えている。

経験が浅い人は抽象的な説明しかできない。逆に、経験値が増えると説明や文章が具体的になっていく。

抽象的な説明の例

商品の売り上げを計算するプログラムを開発する場面があったとする。

売り上げは次のロジックで求められる。1

売り上げ = 商品単価  * 売り上げ個数

経験が浅いメンバーは、このテストケースやドキュメント(Pull Requestの説明とか)にロジックが正しいことを確認するのような記載を書いてしまう。

test("売り上げ計算が正しいことを確認する", () => {
  expect(calcBookSales({ sales: 59, price: 1000 })).toBe(59000);
});

正しいことを確認するのは間違ってはいない。しかし、数ヶ月後に自分が見たとき・保守で別メンバーが修正に入るときを想像してほしい。「何をもって正しいとしたの?」と困ってしまうはずである。

重要なのは正しいことを確認するではなく2正しい状態は具体的にどんな状態か=売り上げを計算するロジックは何かである。

この記載がないと、時間が経った際よくわからないテストが積み上がってしまう。ドキュメントもなんかあるけど分からないドキュメントとなる。最悪、せっかくの成果物がゴミになってしまう。

よって、先ほどのテストケースであれば次のように記載を変えてもらう。

test("売り上げ金額 = 売り上げ数 * 売価で求められること", () => {
  expect(calcBookSales({ sales: 59, price: 1000 })).toBe(59000);
});

どのように練習するか?

正しいしっかりちゃんと等、説明してそうで中身がない言葉はレビューで弾く。また、調査結果の報告に対して「〜だと思う」と述べている場合も同様。癖がついてしまうと矯正するのは大変なので、きちんと指摘して辞めさせる。

始めのうちは1人で考えさせるのではなく、口頭で質問すると良い。抽象的な言葉を使うのであれば、国語が苦手な可能性がある。その状態で文章を書かせても何も進まない。

まずは壁打ち相手となり、本人の考えを整理する。整理できたらメモをとらせ、今話したことで書き直してくるように伝える。可能であれば一緒に修正できると良い。これを何回か繰り返すとできるようになる。3

しっかり正しく正確に確認する(具体例がない場合)と記載されている場合、早めに指摘して対処することが重要である。後から困るのは本人と自分も含む周囲の人間なので。


  1. 現実的にはここから値引きや廃棄が入るので複雑になるが、本題ではないので割愛する。
  2. テストケースの利点は正しい状態が維持されていることを確認する点にあるが、説明に書いてほしいのはそうではない。
  3. 改善が見られない場合、そもそもこの職種に向いていない可能性がある。成果物の説明が明確にできないと、色々と厳しい場面が増えてくる。