見出し画像

オブジェクト指向はマネジメントシステム構築にも活きる

こんにちは!ISOの本も読んでいるやまぐち@ISOプロ編集部です。今回はいつもと趣向を変えて、マネジメントシステム構築について語りたいと思います。

ITエンジニアやプログラマーの方は、「オブジェクト指向」という概念について一度は聞いたことがあると思います。オブジェクト指向とは、プログラム設計の思想の一つで、ある処理を一つのまとまり(オブジェクト)として定義し、その様々に定義されたオブジェクトを組み合わせて相互に作用させていきながらシステムを構築していく手法のことをいいます。

このプログラミングにおけるオブジェクト指向は、様々な考え方に応用を効かせることが可能です。これは、マネジメントシステムにおいても例外ではありません。事実、マネジメントシステムにはプロセスアプローチという概念が存在しており、これはオブジェクト指向的なプログラミングと共通する部分がいくつかあります。

今回は、そんなプログラミングの設計指向はマネジメントシステムの構築にも活きてくるというお話をしていきたいと思います。

プロセスアプローチとは?

プロセスアプローチとは、品質マネジメントシステムなどでよく耳にする概念で、品質マネジメントシステムにおいては、ある製品を製造する一連の流れの中で、一つ一つの業務の流れ(プロセス)を明確にし、そのプロセス同士の相互関係を把握し、一連のプロセスをシステムとして運用する…そんな考え方のことを言います。

例えばWEBサイト一つを構築するにあたっても、仕様を決定し、要件定義を行い、プログラミングを行い、検査を行い、パブリックなサーバーに実装を行う…そんな流れがあります。こういった流れの一つ一つをプロセスと見なし、そのプロセスをいかに組み合わせるか…ということを考えていくのがプロセスアプローチです。

つまり、マネジメントシステムではAという作業とBという作業を組み合わせて全体を最適化していき、品質なり情報セキュリティなりを高めていくという手法が取られるのです。

エンジニアの皆さんは、こういった考え方に馴染みが深いのではないでしょうか?

プログラミング的な指向はマネジメントシステムにも活きる

プログラミングやコンピューターシステムの設計というものは、マネジメントシステムの構築と非常に類似する部分があります。プログラミングでは、様々な役割を持った関数やクラス、オブジェクトといったものを組み合わせて、システム全体の最適化を目指します。

プログラミングでは、あるインプットに対して、望ましいアウトプットを得るために、様々なプロセスを利用します。例えば、以下のようなJavaScriptのシンプルな関数一つとっても、色々なプロセスを利用していることがわかると思います。


function hoge(className){
   const items = document.getElementsByClassName(className);
   let output = [];
   Array.from(items).forEach(item => {
       output.push(item.nextElementSibling.tagName);
   });
   return output;
}


上記関数は、classNameというinputされた値(引数)をもとに次の要素のタグ名を配列として返す関数ですが、

・class名からNode Listを取得
・取得したNode Listを配列として処理
・Node Listの要素の次のNodeを取得
・そのNodeのタグ名を取得
・配列に格納

これだけのプロセスを踏んでアウトプットを返しています。

マネジメントシステムは組織を円滑に回すためのシステムですから、オブジェクトや関数を組み合わせて設計していくコンピューターシステムの設計と非常に似ているのです。マネジメントシステムにおいても、プロセスを整理し、そのプロセス同士の相互作用によってアウトプットを最適化していくような考え方はよく使われます。

マネジメントシステムにおいては、そのプロセスに人が介入することになるため、「ミスが起こり得るもの」として認識しなければならないなど、細かい部分はコンピューターシステムと異なる部分はありますが、根本的な考え方に関しては両者ともに同じようなアプローチを行っているのです。

画像1

まとめ

今回は、プログラミング設計の指向とマネジメントシステム設計の指向の共通点についてご紹介してきました。人は分野が異なると急に頭が回らなくなってしまうものですが、どのような分野でも根本的な部分にまで理解が及ぶと共通点が生まれてくるものです。

近年はプログラミング教育などが小学校でも導入されることになりましたが、プログラミング的な考え方が日本でも広まり、様々な分野に応用されることで社会全体がよくなっていくのかもしれませんね!

画像2


この記事が気に入ったらサポートをしてみませんか?