「プロジェクトの仕様」を表現する

PMにとってUMLは強力なツールだよもん、と書いた[参考]。あきぴーさんからトラックバック[参考]をいただいて、私の説明がまずかったことに気づいた(あきぴーさんありがとうございます)。私の記事では、「スコープ = 仕様」という紛らわしい書き方をしている。これだと「プロジェクトの範囲 = システムの仕様」とも読み取れてしまう。正しくは「スコープ ⊃ 仕様」であり、「プロジェクトの範囲 ⊃ システム仕様の実現」なり。

PMBOKアプローチなら、スコープにはプロジェクトスコープとプロダクトスコープと二つあり、プロダクト(成果物)の一つに設計書があり、その設計書で表現される仕様を定義するのに、UMLが有効だよ、という理屈。

UMLアプローチだと、ユースケース図を使うことで、システムに期待する振舞いを定義することができる。んで、システムの振舞い定義に有用なUMLなら、プロジェクトの振舞いにも使えるのではあるまいか、という仮説を立ててみる。つまり「UMLでプロジェクトの仕様を表現できないか」ってね。

ここから脱線。

やらなくてもいい作業がプロジェクトに組み込まれ、本来すべきことが実施されていない惨状を目の当たりにすると「どうして、それはプロジェクトですべき作業ではありません、と言えなかったんだろう」と強く感じるので

もちろん「そいつぁWBSで定義するんじゃないの?」というツッコミ上等。ちゃんとBreakdownされたWBSなんて見たことないので。んでもって、WBS書く側からは「何を作るのかが共有化・明確化されていないのに、作るもののためにどんな作業をすべきなのか、分かるわけないやんー!!」という怨嗟が。

本線に戻る。

プロジェクトの仕様がUMLで表現できるのなら、成果物を書く人とWBSを書く人が一致する(し、そうすべきだ)。

そして、成果物を明確化する仕事と、その成果物のために必要な作業を明確化する仕事は、クルマの両輪のはず。前者を優先するあまり後者を蔑ろにしていたのは私の狭量。だから「スコープ = 仕様」にしちゃったんだな。PG/SEの思考だと、どうしても「プロジェクトの範囲 ≒ システム仕様」になってしまう。これは間違い。この見方だと、教育費やコンティンジェンシープランなどを見落とす罠に陥る。

「UMLでプロジェクトの仕様を表現できないか」については、非常に興味深いネタとして考査中。もちろんモデリングは可能だが、かなりのボリュームになる。しかし、これまで経験してきたプロジェクトをモデリングすることでプロジェクトのパターン化ができないか、ひいてはプロジェクトデザインパターンができるのではないか? …などと聖夜に独り自問。浜の真砂は尽きるとも、世にデザパタのネタは尽きまじ。

--

| | コメント (7) | トラックバック (0)

スコープを可視化する

一般に、WBSやビジネスプロセスのチャート化により、スコープを洗い出すことは可能。その際たいせつなことは、

「スコープとそうでないものの境界線をものすごくはっきり持つ」ということです。詳細度ではないです。ここまでがスコープ、という範囲が重要だと思います。詳細度は段階的に詳細化すれば良い、ということです

nicknickさんの「スコープをみているだけでうまくいく」より引用。UMLのユースケース図と同じ考え方ナリ。「ゆーすけーすずって何?」という方、百聞一見、これとかこれを見るとイメージが湧くだろう。

はじめてユースケース図に触れたとき衝撃を受けたのが、この「外枠」。枠の中がシステムで実現するべきことで、枠の外側はシステムの外。ユースケース図を書くとき、この外枠を最初に書き、次に枠内にシステムの名前を書く

システムの外からシステムに関わるものを「アクター」と呼ぶ。アクターは、「経理係長」というロールとなる場合が多いが、「顧客管理レガシーシステム」といったシステムでもOK。アクターは、システムの中の業務「ユースケース」と線で結ばれる。線が外枠と交差している→そこにインタフェースが発生している。

実はこの枠、省略しても良いのだが、意識してこの枠を書くようにしている。お客さまに説明するときも「さりげなく」使っている。UMLに疎いお客さまでも「システムの外/内」の概念を直感的に知ってもらえる。

さらに、さりげなく「外/内」を切り分けて説明することで、お客さまの脳に刷り込みできることがウレシイ。「この業務は外からデータを持ってきてやるんですよね~」とか言いながら、「データを持ってくる主体」をアクターにしてしまう。

このユースケースはシステムでやるのか/システムの外なのかがハッキリする。システムの外の業務はユースケース図に書かない←鉄則

  そのシステムで実現する業務

  そのシステムに関わる主体

これを一枚化したものがユースケース図。従って、「スコープ」という語を聞くとユースケース図の外枠を連想する。PMにとってUMLは強力なツールだと思う。

--

| | コメント (0) | トラックバック (1)

UMLモデリングの本質

モデリングの良本。不勉強なせいもあるけれど、モデリングについてこれ以上の本は知らない(あるならご教授お願いします)。kdmsnrさんの「激しく名著な予感」に引っぱられて読了。

腐ったクラス図を見たとき、「これじゃダメだから、こう直せ」ということはできる…が、なぜそのクラス図が腐っているのかを論理的に説明することができなかった。

勢い、「○○の場合だと、どんなオブジェクト図になる? ほら、こうなるだろ? だとするとこいつはクラスになるんだよ」なんて、ある場合を例にとって説明することになる。

すると想像力の欠如した厨は「でも、こう解釈すれば今のチャートでもいいんじゃありませんか、直さなくても?」などと、のたまふ…

複数の解釈ができるなんてクラス図っていわねぇんだよ、このヘタレ厨ガッ なんちゃってUMLと言うんだよッ

…などといったモンモンが解消されます。今まで数こなして経験的に修得し、直感的に描いてたチャートに対し、なぜそう描くのか? どう考えるとよいのか? が良く分かる(かつ人にも説明できる)。

こいつを読むと、「こうなる方が自然だから」とか「こう書いたほうが美しいから」とか言わなくなるはず(w

そういう意味ではモデラーな方々にとっては新しいことは書いてない。しかし、自明(but上手くいえなかった)ことが淡々と書いてあるのに驚くかも。

UMLモデリングの本質(児玉公信 著)

--

| | コメント (2) | トラックバック (0)

UML:ユースケースは、コミュニケーションツールです

 誰とコミュニケーションするかって? それは、書いた人と読む人だけでなく、書く人とシステムそのものをコミュニケートするツールともいえます。

 つまりこういうこと。最初にユースケースが描かれるとき、「システム」へ何を期待するかは必ずしも100%決まっているわけではありません。分析を繰り返していくうちに、ユースケースを書き換え/書き足していくうちに、書き手は「システム」がどうふるまうべきなのかを知るのです。

続きを読む "UML:ユースケースは、コミュニケーションツールです"

| | コメント (0) | トラックバック (0)

UML:ユースケースを識別する方法、アクターの定義、時間はアクターになれるのか?、どこまでシステムで扱うのか?

自分メモ。UML Tips

先ずはシステムの外部に居るアクターを探すこと。次にユースケースを識別せよ。その方法は…

続きを読む "UML:ユースケースを識別する方法、アクターの定義、時間はアクターになれるのか?、どこまでシステムで扱うのか?"

| | コメント (0) | トラックバック (0)

UML:アクターの見つけ方

自分メモ。Tips
アクターの見つけ方。太字は抜けやすい観点。

続きを読む "UML:アクターの見つけ方"

| | コメント (0) | トラックバック (0)