樹木にとって最も大切なものは何かと問うたら、それは果実だと誰もが答えるだろう。 しかし実際には種なのだ。フリードリヒ・ニーチェ(思想家)
こんにちは、システムデザイン研究所(SDL)の南部です。 システム工学やシステム思考は、複雑化する現代社会において進めべき道を示してくれる羅針盤です。
今回は、「システムの境界」*1について、書きたいと思います。
ある朝のできごと
ある休日の朝、あなたは外出しないといけないため、「洗濯しておいてや〜」と留守番をする子供にお手伝いを頼んだします。
家に帰ってきた時、どうなっていたら、期待通りでしょうか?
- 洗濯物が洗われているが、洗濯機の中にまだ残っている
- 洗濯物が洗われ、干してある(乾いているが取り込まれていない)
- 洗われ、乾いた洗濯物が畳んで慣れべてある
- 洗われ、乾いた洗濯物が畳んで所定の場所にしまわれている
「洗濯」という言葉ひとつとっても、人によって意味する範囲が異りそうですね。
システムの境界
製品やサービスなどのシステムをつくる上で、たびたび問題になるのが、システムの境界に対する認識齟齬です。
「洗濯サービス」の例でも見た通り、システムの境界は、状況やこれまでの経験によって人によってイメージするものが異なります。
ここの認識齟齬に向き合わないまま開発を進めると、必要な機能が足りていなかったりして、価値を提供できるシステムになりません。
例えば、畳まれていることまでを期待している人に、洗濯機の中にまだ残っている洗濯物を提供したら、その人はきっと残念な気持ちになりますよね?
もう少しモノに寄せた例も考えてみましょう。
「ロケットをつくろう」と言って、みんなで集まって、たくさんのお金と時間を費やして、「ロケット」をつくったとします。 しかし、「ロケット」本体を作ることに夢中になって、射場を用意しなかったら、発射場所がなく、せっかくのロケットが打ち上がりません。 あるいは地上局を用意しなかったら、打ち上げた後、行方不明になってしまいます。 もちろん、他にも様々な関係してくるステークホルダや外部要素があります。 どこまでが自分たちが作るべき対象で、どこからが外側なのか、その境界を見出すことがとても大切です。
「システムの境界」を意識することの大切さ、腹落ちしてきたでしょうか?
システムの境界を定めるのは実は難しい
つくるべきシステムが複雑になればなるほど、システムの境界を明確にすることは難しくなります。
また、はじめから明確にすることはできず、開発を進める中で徐々に明らかになっていくこともあります。
「自分たちがつくるべきシステム、扱うべきシステムはなんなのか?」 チームでシステムの境界について、対話し続けることが非常に重要です。
システムの境界を明らかにするには
そこで役に立つモデルがコンテキストモデルです。
コンテキストモデルそのものを説明し出すと長くなるので、詳細は下記の資料をご覧ください。
コンテキストモデルを描けば、メンバーそれぞれがどのようにシステム全体を捉えているのかが手に取るようにわかります。 そこで認識の齟齬が見つかれば、対話を通じてシステムの境界についての認識を合わせることができます。
「コンテキスト」というのは、馴染みのない言葉かもしれませんが、とても重要な概念です。 NASAのハンドブックでも、"system context"というフレーズが度々登場します。
ぜひ、システムの境界を考えるという習慣を身につけてください!
*1:タイトルでは、「システムの境界」を「システムの地平線」とカッコつけて表現していますが、記事本文では「境界」に統一します。