入力・処理・出力に分けて捉え、入力データは残す
プログラムの構成要素は、突き詰めると
- 入力 (引数によるデータ投入など)
- 処理 (入力データの加工)
- 出力 (戻り値として結果を返す)
の3つに分けられる。
開発工程や個人のサ行においても同じで、ある工程においては、
- 入力 = 前工程の成果物 (例えば設計書)
- 処理 = 本工程の作業 (例えば実装工程)
- 出力 = 本工程の成果物 (つまりソースコード) = 次工程の入力 (テスト工程に必要なのはソースコード)
という関係になる。
何をインプット・判断材料にして、その結果に何を得たいか・どう後続作業に繋げていきたいか、という風に、In と Out を明確にすると、その場・その工程でやるべきこと (= 処理) が明確になる。
入力データはオリジナルのまま残す
自分が何を基にして作業をしたのか、その成果を第三者が検証できるようにするには、入力データをオリジナルのまま残しておく必要がある。
引数を直接再代入で書き換えてしまうと、オリジナルデータが残らないので、デバッグもしづらくなる。引数の加工結果は別の変数に代入すれば、引数自体は変更されず保たれる。
Excel のデフォルト設定でシートが3つ作られるのは、シートを「入力」「集計」「結果」に分けて使えるようにするため、といわれている。基となる CSV データを貼り付けただけの「シート1」、ピボットテーブルで情報を集計・加工する「シート2」、最終的に整形して対外的に結果を見せる「シート3」、という構成になるワケだ。この場合も、入力データはオリジナルのまま保たれるから、集計方法の妥当性を検証しやすい。シートとして分けることで、何が中間成果物で、どれが完成品か、も分かりやすくなる。