Plan Language を実践中

計画言語を計画中でちょっと止まっておりますが(裏側で xUnit で頭を使っていたからというのもあり)、別件のサイトを作成中です。
いつものパターンならば、Excel で ToDo リストを出していくところなのですが、どうせならばと計画言語を使ってタスクを抽出してみました。

本番環境へリリース
<< データ投入
<< Excel から insert 文へ変換スクリプト
<< 画像ファイルアップロード
<< 本番環境での動作確認
<< oreoreMVC のコピー
<< PHP4 の文字コード確認
<< PHP4+MySQL の動作確認
v << 画像のネーミングを決定 -> slug で
<< 画像のフォルダ構成を決定

<< 本番 view を作成
<< 簡易 view を作成
<< controller 作成
v << 医院詳細表示
<< 医院名で検索
<< 医院名で探す
<< 「あ」をクリックしたときの地図
<< エリアで検索
<< エリアで探す画面
<< エリアを選択した後の地図
<< 駅名で検索
<< 駅名で探す画面
<< 駅名を選択した後の地図
<< お口の健診検索
<< すこやかちゃん検索
<< 口腔がん検診検索
v << 単一テーブルに対する model を作成

言語っぽいところは、

・「<<」で、前の WBS をブレークダウン
・インデント(ひとつの空白)でツリーを表現)

しているだけです。コンパイル可能にするためには Task[“…”] なりをつけないと駄目なんですが、これだとメモ帳などでコーディングが可能です…と言いますか、これ、iPad のメモで書きました。
通勤中にぽちぽちと計画が立てられるので便利です。

そこで思い出したのが、その昔 IBM の workpad で擬似プログラミングをしていたんですよね。やっぱりメモ帳を使って、簡略化した記号を使って書いていました。

さて、この plan langauge の要素を取り出してみると、

1.インデントで親子の WBS を表現する。
2.前後の行で時系列(逆時間)を表現する。先頭がトップ/完成すべき WBS です。
3.完了は「v」で表現する。
4.WBS の内容は、「<<」に続いて記述する。

という具合です。
作って&使ってみて気づいたのですが、実は 2 が重要です。単純なツリー構造の場合には、兄弟 WBS の前後関係は現れません。勿論、DOM のようにデータ構造として保持されますが、ブレークダウンする過程で兄弟 WBS の関連は失われてしまうのです。
なので、このテキスト版の plan language は、行の前後関係が情報として重要になります。時系列として下から上に作業をする、ということですね。

これらの情報を明確にしてデータ構造を作ると、次のように書けます。

class WBS {
public WBS parent ;
public List<WBS> childWBS ;
public List<WBS> beforeWBS ;
public List<WBS> nextWBS;
public string task ;
public bool completed;
}

こんな感じで、前後の wbs を識別します。beforeWBS と nextWBS が list になっているのは、PERT 図のように前後のタスクが複数になったときのためです。

まぁ、こうやってタスクを出してから、粛々とコーディングをする、というわけで。
ええ、もちろん、コーディングをする間も先のタスクは増えたり減ったりします。

カテゴリー: プロジェクト管理, Plan Language パーマリンク

Plan Language を実践中 への1件のコメント

  1. masuda のコメント:

    通勤途中に思いついたのだけど、インデント数(先頭の空白数)に「意味」を持たせるプログラム言語も可能なんですよね。python や F# はインデントに意味がコンパイル時に意味があるけれども、プログラムからは利用不可能なんですよね。つまり、プログラム内で、「先頭の空白がいくつか?」ってのを扱えない。
    これを扱えるようにすると、書き方を制御したプログラム言語ができるかと。

コメントは停止中です。