前回のおさらい
前回,自分で自分の管理を行うことのメリットを述べました。今回は,管理の第一歩である"計画を立てること"を,プログラムの開発で得た知識をベースに行う方法を説明します。
プログラム開発と仕事の計画の関係
ソフトウェア技術者ならば,何らかのプログラム開発の経験はあると思いますが,プログラムの開発と仕事の計画はまったく関係の無いものと思っていませんか? 実はどちらも振る舞いや手順を定義する事を行うので共通する事柄がたくさんあります。つまり,プログラムの開発と仕事の計画はとても近しい間柄にあります。
そこで,今回はプログラムの開発で培った経験を活かした,仕事全般の計画を立てる方法について説明します。
プログラムの開発と仕事の計画の対比
まずは,プログラムの開発と仕事の計画とが,どのように近いのかについて説明していきます。
始めに考えることは,どちらも"最終的なゴールは何か"ということです。
プログラムを開発する際は,まず実行結果として何を出力するかを一番先に考えます。同様に,仕事を計画する場合は,何を達成したら完了かを一番先に考えます。
次に,そのゴールにどうやって向かうかを考えます。
プログラムを開発する際は,実行結果を得ることをゴールとして,以下の事柄について検討を行います。
- どのような処理を行うか
- どのようなクラスを使うか
- 処理を行う前提条件は何か
- どこから情報を取得できるか
仕事を計画する場合は,達成すべき事柄に至ることをゴールとして,以下の事柄について検討を行います。
- どのような処理を行うか
- どのようなメンバーや設備を使うか
- 処理を行う前提条件は何か
- どこから情報を取得できるか
そして,これらの検討内容を時間軸上で適切な配置になるように並べ,本当に矛盾が無いか確認を行います。
こうしてみると,特に個人の仕事の設計は,プログラムの開発と何ら変わるところはありません。よく考えてみると,業務系システム開発ではお客様の業務(仕事)をビジネスロジックとして設計し,プログラミングしていきます。それと同じことを自らの仕事の計画で実践するだけとも言えます。
プログラム開発のステップで,仕事の計画を行う
では,プログラム開発ステップに対応する仕事計画ステップにそって,仕事の計画を進めていきましょう。
表1 プログラム開発のステップと仕事の計画ステップ
| プログラム開発ステップ | 仕事の計画ステップ |
|---|---|
| 実行結果の定義 | ゴールの定義 |
| 処理を実装 | 作業を思いつく |
| 単体テスト | 作業を見直す |
| 結合する | 作業を繋げる |
| 結合テスト | 作業をトレースする |
