この記事はフロムスクラッチ Advent Calendar 2016の3日目の記事です。
想定読者
- 既にいくつものシステムを作ってきたけど改めてシステムって何なのか考え直してみたいエンジニア
- これから初めてシステムを作るエンジニア
- システムに興味のある非エンジニア
- 業務で「システム、システム」と言っているがエンジニアとコミュニケーションが取れていないと感じている非エンジニア
自己紹介
1986年寅年生まれの埼玉男子です。
フロムスクラッチというベンチャーで、品質管理責任者としてプロダクトの品質はもちろん、クライアントへの価値提供をミッションに各部門の課題解決や部門間のコミュニケーション改善といった業務に従事しております。
2015年にフロムスクラッチに参画する前は、某外資系IT企業にて金融機関向けの自動FXトレーディングプラットフォームの開発を経験した後、コンサルティングファームに転職し、テクノロジーコンサルタントとしてサイバーセキュリティやアナリティクス領域にてアドバイザリー業務を行っておりました。
今日は「システム」について思うままに書き殴ります!
身の回りのシステム
「XXシステム」「○○システム」「△△システム」と当たり前のように使われている「システム」という言葉ですが、どのくらいの人がちゃんと理解しているのでしょうか?僕は全く持って正しく「システムとは?」を説明できる自信がなかったので、この機会にサクッと調べてみました。
システムの定義を説明する前に、まずは身の回りに溢れているシステム達を紹介し、確かにシステムって色々あるよなーってところから書き記していきたいと思います( ´∀`)bグッ!
1. ハイレゾ・オーディオシステム
オーディオシステムとは、プレーヤーとアンプ、スピーカーなど、音楽を聴くために必要なコンポ(装置)を組み合わせたオーディオのことを言います。
ハイレゾ・オーディオシステム ラインアップ | システムステレオ | ソニー
「ほ、ほしい!!」
2. システムキッチン
システムキッチンとは、調理台やシンク、コンロ、レンジ、収納棚などキッチンでの作業に必要なパーツを組み合わせたキッチンのことを言います。
「TOTOってトイレ以外にキッチンも手掛けてるんですね!」
3. システム思考
システム思考(Systems thinking)には、様々な種類のシステムの多様な研究の技法が含まれる。自然界では、システム思考の対象の例として、例えば、大気、水、植物、動物など相互に作用を及ぼす多様な要素を含む生態系(エコシステム)があげられる。組織について言えば、システムは、組織を健康や不健康にするように機能する、人、構造、プロセスから構成される。システム工学は、複雑な工学システムを設計、構築、運行、維持するためにシステム思考を使う分野である。
Wikipedia | システム思考 (2016年12月3日アクセス)
Amazon | システム思考をはじめてみよう
Amazon | 学習する組織――システム思考で未来を創造する
「『世界はシステムで動く』で有名なドネラ・H・メドウズさんや『学習する組織』で有名なピーター・M・センゲさんはシステム思考と呼ばれるアプローチを提唱しているんですねー。システム・ダイナミクスのようなシミュレーション手法もこの部類に入りますね。」
4. 資本主義経済システム
資本主義( しほんしゅぎ 、英: capitalism)とは、経済の仕組みの一種で、資本の運動が社会のあらゆる基本原理となり、利潤や余剰価値を生む体制である。「 資本制」とも言う。 社会に貨幣を投下し、投下された貨幣が社会を運動してより大きな貨幣となって回収される場合、この貨幣が「資本」とよばれる。
Wikipedia | 資本主義 (2016年12月3日アクセス)
「資本主義や共産主義のような社会システムもシステムの一種ですね。」
5. エコシステム(生態系)
ある一定の区域に存在する生物と、それを取り巻く非生物的環境をまとめ、ある程度閉じた一つの系と見なすとき、これを生態系と呼ぶ。
生態系は生態学的な単位として相互作用する動的で複雑な総体である。
Wikipedia | 生態系 (2016年12月3日アクセス)
「生態系も英語にするとEcosystemなので、システムの一種だと言えます。」
システムとは
このようにシステムは自宅のオーディオやキッチンといった身近でシンプルなものから、システム思考のような概念的なもの、社会システムや生態系(エコシステム)のようなスケールが大きく複雑なものまで含まれることがわかりました。
では、これらのシステムの共通点は何でしょうか?自分なりにキーワードになりそうな言葉をピックアップしてみました。
- XXのために(音楽を聴く、キッチンでの作業、利潤や余剰価値を生む)
- 組み合わせ
- 仕組み
- 多様な要素を含む
- 相互作用
- 複雑
こんな感じでしょうか?これを文章にしてみると、、、
「システムとは、ある目的を達成するために必要な相互作用する複雑で多様な要素から構成された仕組み(組み合わせ)である」
と言えると思います。
答え合わせをしてみましょう。
Wikipediaによると、
システムは、相互に影響を及ぼしあう要素から構成される、まとまりや仕組みの全体。一般性の高い概念であるため、文脈に応じて系、体系、制度、方式、機構、組織といった多種の言葉に該当する。
Wikipedia | システム (2016年12月3日アクセス)
とのことです。
割と良い線を行っている気がします。むしろ俺の定義の方が良いのでは!?笑
ちなみに、システムの語源は、
「組み立てた物」を意味するギリシャ語「σύστημα」(スュステーマ)を語源にもつ。この「σύστημα」は同じくギリシア語の 「συνίστημι」(スュニステーミ)「組み立てる」を元に作られた語句であるが、 これは「共に」を意味する「σύν」(スュン)と「立てる」を意味する「ἵστημι」(ヒステーミ)を組み合わせた動詞である。
Wikipedia | システム (2016年12月3日アクセス)
だそうです。
色々と調べていてシステムを作る上で重要なことって、下記の3大構成要素を満たした仕組み(組み合わせ)を提供できていることなんじゃないかなーと思いました。
1. 目的
2. 多様な要素
3. 相互依存性
確かにITシステムを構築する上でも、そのシステムが「解決すべき課題は何か(目的)」「目的を達成するための構成要素は何か(多様な要素)」「各要素の関係性はどうなっているのか(相互依存性)」を正確に把握しているか否かはプロジェクトの成功の鍵な気がします。(あくまで私の過去の経験からですが。。。)
動かないシステム
ITシステム開発で失敗すると「動かないシステム」ができてしまいます。
ITシステム開発の失敗例については日経コンピュータの「動かないコンピュータ」という連載が参考になります。
日経コンピュータ | 動かないコンピュータ
※記事を閲覧するためには購読が必要です
「動かないコンピュータ」の記事をいくつか読んでみるとわかるのですが、ITシステム開発の失敗(動かないシステム)は、システム開発などプロセスに起因するケースも多いです。
しかしながら、上述の3大構成要素を正確に把握できてないことが原因になっていることも多いので、本記事ではその点について少し触れたいと思います。
3大構成要素における失敗には下記のようなものが多く見受けられます。
1. 目的
- ITシステムが解決すべき課題が明確になっていない
- ITシステムが担うべき役割が明確になっていない
- ITシステムを導入の成否を判断するための成果指標が定義されていない
2. 多様な要素
- ITシステムが有するべき機能が明確になっていない
- ITシステムの接続先が明確になっていない
- ITシステムを利用するユーザーが明確になっていない
3. 相互依存性
- ITシステムに実装されている機能がどのように連携するのかが明確になっていない
- ITシステムの接続先とどのように連携するのかが明確になっていない
- ユーザーがどのようにITシステムを利用するのかが明確になっていない
いずれも要求定義フェーズでクリアになっているべき項目ですし、このように列挙するのは簡単ですが、実践するのはなかなか大変です。特に「目的」や「ユーザー」に関連する項目は、事業や業務を理解していなければ定義が難しいため、要求定義フェーズで漏れてしまい、結果としてリリース(Launch)してから「運用に乗らない」「使ってもらえない」ということはざらにあります。
システムを作る上で重要なこと
いかがでしたでしょうか?
システム開発の経験が多ければ多いほど、開発手法や開発言語、新しい技術など細かいことに目が行ってしまいこういった基本的なところが灯台下暗しになってしまっていることも多いのではないでしょうか。
システムを作る上では、3大構成要素を意識し、まずは下記3点を明確にすることをオススメします。
①システムが解決すべき課題は何か
→ 特にシステムが担う役割と成否を判断するための成果指標の設定が重要
②目的を達成するための構成要素は何か
→ 特にシステムを使う人を含めることが重要
③各要素の関係性はどうなっているのか
→ 特にユーザーがどのようにシステムを利用するのかを明確にすることが重要
まとめ
- システムはITシステム以外にも、自宅のオーディオやキッチンといった身近でシンプルなものから、システム思考のような概念的なもの、社会システムや生態系(エコシステム)のようなスケールが大きく複雑なものまで多岐にわたる
- システムとは、ある目的を達成するために必要な相互作用する複雑で多様な要素から構成された仕組み(組み合わせ)である【持論】(システムは、相互に影響を及ぼしあう要素から構成される、まとまりや仕組みの全体【Wikipedia】)
- システムの語源は、「組み立てた物」を意味するギリシャ語「σύστημα」(スュステーマ)を語源にもつ。この「σύστημα」は同じくギリシア語の 「συνίστημι」(スュニステーミ)「組み立てる」を元に作られた語句であるが、 これは「共に」を意味する「σύν」(スュン)と「立てる」を意味する「ἵστημι」(ヒステーミ)を組み合わせた動詞である。【Wikipedia】
-
システムの3大構成要素:
- 目的
- 多様な要素
- 相互依存性
- システム開発の失敗(動かないシステム)は、システム開発などプロセスに起因するケースも多いが、上述の3大構成要素を正確に把握できてないことが原因なことも多い
- システムを作る上では、3大構成要素を意識し、まずは下記3点を明確にすべし
- システムが解決すべき課題は何か
- 目的を達成するための構成要素は何か
- 各要素の関係性はどうなっているのか
- ビジネス(事業や業務)を理解した要求定義は大事!!でも、それをシステムに落とすためにはビジネスサイドとシステムサイドのコミュニケーションが肝心!!!
余談
今回はシステ"ム"について調べたことを書かせて頂きましたが、弊社にはシステ"マ"の達人K君がいます。
システマの呼吸方法を習得すれば「痛くない」らしいです。何やらシステママッサージ的なものもあるらしいです。
自分を凌駕する肉体&精神コントロールを手に入れたいストイックな人は是非一度お試しあれ。
システマとは
※注意※「痛くないです」は弊社K君の口癖ではありますが、このYoutubeの芸人は弊社K君ではございません。
ではでは。
クリスマスまであと22日ですよー(@^^)/~~~
To be continued...