入力・処理・出力に分けて捉え、入力データは残す

プログラムの構成要素は、突き詰めると

の3つに分けられる。

ウォーターフォール開発においても同じで、ある工程においては、

という関係になる。

何をインプット・判断材料にして、その結果に何を得たいか・どう後続作業に繋げていきたいか、という風に、In と Out を明確にすると、その場・その工程でやるべきこと (= 処理) が明確になる。

入力データはオリジナルのまま残す

自分が何を基にして作業をしたのか、その成果を第三者が検証できるようにするには、入力データをオリジナルのまま残しておく必要がある。

引数を直接再代入で書き換えてしまうと、オリジナルデータが残らないので、デバッグもしづらくなる。引数の加工結果は別の変数に代入すれば、引数自体は変更されず保たれる。

Excel のデフォルト設定でシートが3つ作られるのは、シートを「入力」「集計」「結果」に分けて使えるようにするため、らしい。基となる CSV データを貼り付けただけの「シート1」、ピボットテーブルで情報を集計・加工する「シート2」、最終的に整形して対外的に結果を見せる「シート3」、という構成になるワケだ。この場合も、入力データはオリジナルのまま保たれるから、集計方法の妥当性を検証しやすい。シートとして分けることで、何が中間成果物で、どれが完成品か、も分かりやすくなる。