開発仕事の優先順位の付け方
3つのプログラミング仕事を同時にやっているところに、さらに1つ仕事が追加となり、4つ同時になってしまったのですが、こんな時に大事なのは、優先順位の付け方です。来た順に進めれば良いというものではありません。
私の場合、昨日まで3つ同時にやっていたのですが、昨日受注が確定した新しい仕事を先に、今日、仕上げました。
理由は、
・別のメンバーがUIも機能追加する必要があるため、設定ファイルの仕様を先に確定する必要があった。
・私が開発した2つのプログラムにまたがる改良のため、2つのプログラムにどのように組み込むのかを検討する必要があった。
・メール関連の製品のカスタマイズなので、改良後にしばらく連続稼働させて様子を見たかった。
・それほど大きなボリュームではないので、1日以内で十分仕上がる自信があった。
という感じです。
プログラム開発の仕事では、単純に時間をかければできる部分と、試行錯誤しながら検討しなければならない部分があります。今回の場合、別のメンバーとの連携を先に決めなければならないのと、2つのプログラムへの実装方法の確定ができないと、どのくらいの作業量で仕上がるのか、目処がつかないということがポイントだったのです。
開発仕事で一番怖いのは、着手してみたら予想外に難しかった、というパターンです。納期に余裕があったとしても、先に目処をつけておかないと、実際にどのくらいの時間でできるのかが分からないことが多いものなのです。従って、私の中で優先順位を決めるときには、「実装方法の目処をつける」というのが最優先となります。
さらに、ボリュームが小さい場合は、目処をつけた段階でそのまま仕上げてしまします。せっかく頭にソースコードや仕様が展開されているので、一気に仕上げた方が仕事の質が高くなるからです。
複数の開発仕事を平行進行して、問題なくできる人と駄目な人がいますが、おそらく来た順番に片づけようとしているからではないかと思います。先の目処が立っているものは後回しにしても、それほど大きく遅れることはないものです。新しい仕事が来たときには、「どう実現するかの目処だけはすぐにつけておいた方が良い」というのが私の仕事のやり方です。
後は、小さめで簡単なものはとっとと仕上げておくことも大事です。人は「やらねばならないことがある」というだけで、頭の中の一部を占領されてしまいます。早めに数を減らしておくことで、頭の中のスペースを空けて、難易度の高い仕事を効率良く進めることができるのです。そのように心がけることで、また次の仕事が来てしまっても、一方的にスタックに積まれ続けることは防げるものです。
開発仕事に限らず、「頼んだ件はどうなっているのだ?」と催促されることほど精神的な負担になることはありません(私だけ?)。催促されて、慌てて対応した仕事の質が高いわけがなく、やっつけ仕事になってまた後まで引きずられたりするものです。仕事のスピードが速い人は、仕事の質も高いものなのです。
とはいえ、、まだまだノイローゼーになりそうな状態が続いていますねぇ。。こんな時はストレス解消のサイクリングにでも行きたいのですが、今週末もあまり天気がよろしくないようで・・・