Top > IT > ToAvoidTechnicalDebt
Last-modified: Mon, 13 Jan 2014 10:07:20 JST
Counter:2274 Today:1 Yesterday:0 Online:8
このエントリーをはてなブックマークに追加

学生や日曜プログラマが技術的負債を回避するために

About

メモ書きです。日曜プログラマのように個人開発している素人や学生が技術的負債を回避するためにできそうなことについてまとめています。

1日の作業に記録を付ける作業を含める

ついつい開発に入れ込んでしまうことがありますが、1日の終わりには必ずその日行った作業の記録や学習の記録を付けます。そしてそのための時間を確保するようにします。新しく学んだ内容については特にその日のうちにまとめておく必要があるでしょう。小学校や中学校で散々教わった、復習、の大切さが今になってよくわかります。特にITに関する技術は2014年現在も目まぐるしく変化を続けていて、次から次へと新しい情報が出入りします。

まずは少なくとも自分だけが分かるような内容で記録を付けることです。技術に関する資料を作ることはそれだけで大変な労力を必要とします。作業記録を付けることに固執することは良くありません。

自分が書いた作業記録や学習記録を自分が繰り返し参照するようであれば、自分以外の人にも伝わるように、その内容を修正します。自分自身が良く分かっていない内容であるからです。その内容について良く考えて、人に伝えられる位に詳しくなる必要があります。そして自分が繰り返し必要とする情報ですから、自分以外にもその情報を詳しく必要とする人がいる可能性が十分にあります。

記録することによる2次的効果

記録を付けることで自分が1日に作業できる内容とその作業量が分かるようになります。いつ始めて、いつ終わりにできるのか、個人で作業するときは特に意識することがないかもしれませんが、現実的にはとても重要な情報です。

将来的に集団で作業することもあるかもしれませんし、何かの作業を請け負うこともあるかもしれません。自分はどれくらいの期間でどれだけの作業ができるのか、自分自身で把握しておくことは重要でしょう。もしも個人のプロジェクトだけを続けるにしても、プロジェクトが大きすぎて頓挫してしまう、という状況を回避するために重要でしょう。

未来の自分のために引き継ぎ資料を作る

複数名で開発するときは必ず技術詳細をまとめた書類を作成して、作業を引き継ぐときにはどのないようをどこまで進めたのかまとめた引き継ぎのための資料を作ります。

私のような素人が個人で作業をしていると、技術詳細をまとめるまえに、大よその設計だけどこかにメモして作業にかかり、必要になるたびにまとめる、程度のことしかしなかったりします。当然ですが自分自身1人しかいないので、引き継ぎ資料を作らないのですが、そもそもこれが間違いです。

日常生活やあるいは何かのトラブルで作業が中、長期的に中断してしまうことは良くあります。むしろ個人だから起こりうることでしょう。モチベーションが保てずに開発を中断したり、他のアイデアに熱中することもあります。そこで中断した作業をいざ再開しようとしても、中断前に頭の中にあった設計思想やアイデアは無くなっているのは当然です。作業のどこから手を付ければ良いのか分からなくなることもあります。

3日以上作業が中断することが分かっていれば、未来の自分のために引き継ぎ資料を作ることです。最低限必要になるのは、作業再開時に何をしなければならないか、を示すことです。作業をすることでプロジェクト全体の設計思想や内容を思い出すことは良くあります。まずは作業に入る準備をすることです。緊急に作業を中断しなくてはいけないときには、少なくともこの情報だけを分かりやすくまとめておくべきです。

全体の構造などについて言及することは難しいでしょう。むしろ全体の構造を見直して設計を確認することで、リファクタリングのチャンスが産まれると考えた方が良いのではないかと思います。

短期間、作業から離れるとき

作業から離れる期間が短くても、次にするべき作業を忘れたり、横道にそれたりすることがあります。そういうときは次に作業するソースコードの該当箇所に、コンパイルできないコメントを残します。すると作業を再開してコンパイルする時にエラーが通知され、該当個所のコメントを読むことになり、そこから作業を再開することができます。