bt

コードの書き方で工数を減らす

あるシステムに対する仕様変更で、見積よりも大幅に工数が増えたことがあり、その原因として以下の理由があげられました。

  1. 新しくチームに加入したプログラマに、仕様がちゃんと伝わっていなかった。
  2. 新しくチームに加入したプログラマが、既存プログラムの内部構造を理解していなかった。

そして、次回は仕様や内部構造を伝える時間を取りましょうということになりました。


しかし、もっとよい解決方法があります。
それは、

  • 新しくチームに加入したプログラマが見ただけで理解できるコードを書く

です。

例えば以下の2つのコードを比べてみてください。

コードA

IF date > DATE1 and date < DATE2 THEN
    result = qty * RATE * RATE2
ELSE
    result = qty * RATE 
END IF


コードB

IF IsSummer(orderDate) THEN
    tax = SummerTax(quantity)
ELSE
    tax = NormalTax(quantity)
END IF


コードAを見てもなんのことやらさっぱりです。
しかし、コードBは見ただけで「注文日が夏季の場合は税金が変わる」ということがわかります。

「夏季の税金を変更する」という仕様変更があった場合、コードAの場合はどこを変更していいのかさっぱりわかりませんが、コードBの場合は「SummerTax()」を修正すればいいんだと一目でわかります。

こういうコードを書いておけば、内部構造を説明するといった余計な工数をかけなくて済みます。