タスクツリーの問題はどう解けばいいのか?

これまでのところで、最短経路問題を SQL を使って解く方法がわかった(1つ前のエントリー)。これはどうやら再帰 SQLワークアラウンドになっているようだが、実際に僕の解きたい問題は、実は最短経路を求めることではなくて、下のグラフのような構造を持ったタスクツリーに対して、最短工期を求めるものだということに気付いた。

つまり上の図の各ノードに必要な作業時間が割り当てられているイメージで、10 に至るまでに必要な日数を割り出したい。また、10 の締切日から逆算してそれぞれの作業の締切日を決定したり、どこかのプロセスに遅延が発生したときの影響を瞬時に把握したい。
さらには、複数のプロジェクトが平行して進行する場合に、いま自分の抱えているタスクがいくつあって、優先順位がどうなっているのかを常に把握できるようにしたい。

そのようなツールがあれば、計画の妥当性を常に検証しながらプロジェクトを遂行することが可能になるはずだ。来週の自分のタスクが1ダースにも上るということが事前に把握できれば、そのうちのいくつかをほかの人に頼んだり、比較的余裕のある作業を先に延ばしたりすることができるだろう。