さて私は最近の業務で主に弊社の工場のWF改善設計業務をしています。SEなので新システムを使ったWFを想定するわけですが、あくまでもシステムは道具なのでより効率的に印刷が行えるようなWFもセットで考えることが私たちの業務なのです。 ただその設計がとても難しい。。。
システムだけじゃなくリアルな人や物の動きも想像しないといけないので考えることが爆増です。 でも実は難しくしちゃってるのは自分だなということもあります。特によく指摘されるのが思考の飛躍や、唐突に現れる新しい概念。
1.野菜と肉とカレールーを買う 2.野菜と肉を切る 3.野菜と肉に火を入れる 4.野菜と肉とカレールーを煮込む 5.煮込んだカレーとご飯をお皿に盛りつける例えば上の例はカレーを作る処理です。この処理の中でどこにも定義されていない要素が唐突に登場しています。
何かわかりますか??
。。。正解は「ごはん」です。
この工程の中にはごはんを炊く工程が書かれていません。上述のようにテキストベースだけで書いちゃうと私はこうした抜け漏れをよくやっちゃいます。(わかってて端折るのはいいですが、私の場合端折ってることにも気づかないです。)毎度毎度上から下まで抜け漏れがないか頑張って見直しても見つからないのです。。。
このカレー作り工程をコードっぽく書いてみるとあら不思議、ごはん要素が初期化されていないことがわかりやすくなりました。(少なくとも私はエラーに気づきやすくなりました。)
【 野菜, 肉 , カレールー】 = 買い物(); cutted = 切る(野菜, 肉); fired = 火を入れる(cutted); stewed = 煮込む(fired, カレールー); plated = 盛り付け(stewed, ごはん);こんな風にコードっぽく書く以外にも、アクティビティ図やポンチ絵にしてみるとこういったミスに気づきやすくなります。 よく抜け漏れや誤字脱字をやっちゃうなって人はこんな風に書き方や、見方を変えてみるとミスに気づきやすくなると思います! 設計だけでなく資料やメールを書くときなんかにも役立つと思うのでぜひお試しあれ~