モジュール
モジュールとは
モジュールとは本来「寸法」を意味する言葉です。転じて、システムにおいて、全体を一度に扱うのではなく、分割して扱う考え方(設計思想)を指します。複雑なシステムは、ルールを持って分割することで、その複雑性を軽減することができます。
日本においてモジュラー化の先駆者である青木昌彦は、著書「モジュール化 新しい産業アーキテクチャの本質」の中で、モジュールを次のように説明しています。
「モジュール」とは、半自律的なサブシステムであって、他の同様なサブシステムと一定のルールに基づいて互いに連結することにより、より複雑なシステムまたはプロセスを構成するものである。そして、一つの複雑なシステムまたはプロセスを一定の連結ルールに元付いて、独立に設計されうる半自立的なサブシステムに分解することを「モジュール化」、ある(連結)ルールの下で独立に設計されうるサブシステム(モジュール)を統合して、複雑なシステムまたはプロセスを構成することを「モジュラリティ」という。
モジュールを説明する単語群
モジュールの考え方を理解する手助けとなる、モジュールを説明するために使われる単語は以下のようなものです。
- 標準化、規格化、汎用化
- 機能
- 独立、分割、分解
- 部品、部分、要素、ユニット
- 交換可能
- 自立化
正確には、「モジュール化」は既存のシステムにモジュールを用いることを指し、「モジュラー」は定義したモジュールに従っている個々の要素を指します。一般には「モジュール」が「モジュール化」や「モジュラー」を指すことも多いため、以下では特に区別せず用いています。
2種類の設計思想
設計思想(アーキテクチャー)には「モジュール型:モジュラーアーキテクチャー」と「非モジュール型:インテグラルアーキテクチャー」の2種類があります。前者は構成要素が独立しており、それらを結合することで設計、開発、製造できるように形作られたアーキテクチャー(組み合わせ型)を指します。後者は構成要素同士が密接に結び付いたアーキテクチャー(摺り合わせ型)を指します。
モジュール化と単なる分割との違い
単純に等分したり、無作為に分割したりすることと、モジュールとして分割することには以下のような違いがあります。
- 複雑なシステムを分解してできるモジュール自身が複雑なシステムである
- モジュールの連結ルールが進化する
- モジュール間連結ルールが一度定まると、個々のモジュールの設計や改善は独立して行われる
身の回りでみられるモジュールの例
- ブロック
- レゴに代表されるブロック玩具は、基本となるブロックのサイズや突起のサイズを統一しています。
- パソコン
- 1980年代にIBMがパソコンの仕様を公開し、同時に規格化しました。これにより数多くの部品メーカーが誕生し、パソコンの高機能化や低価格化が進みました。
- プログラム
- 機能ごとにいくつかのモジュールに分割することで、プログラミングの効率をあげ、メンテナンス性を高めるやり方が一般的です。
- プレハブ住宅
- 統一された規格に基づき、工場で生産することで、短期間で質の良い住宅を建設することができます。
- 宇宙ステーション
- 他のモジュールとの連結部や、操作インターフェースの仕様を統一しています。これにより、参加国はそれぞれ独自の機能を持ったモジュールを開発できます。
- 授業
- 学習すべき内容を切り分け、時間割を組み上げます。さらに、1回の授業時間についても10分から15分単位で分割することで、反復が必要なものと思考が重要なものとのバランスを調整します。
- 歯車
- 「歯の長さ」と「円周上に存在する歯の数」とを合わせることで、歯車を組み合わせています。
- ファミリーコンピューター
- それまでの家庭用ゲーム機とは異なり、ゲーム部分を本体から切り離しカプセル化したことで、本体の低価格化とゲーム開発の活性化を実現しました。
モジュールの実際
機械製造とモジュール
精密機械や巨大な機械、開発が難しい機械などでは、生産工程や部品のモジュール化が有効です。パソコンやスマートフォンは最先端の技術が詰め込まれた製品であると同時に、その製造や管理にいち早くモジュール化を取り入れ、製造業としても最先端の取り組みを行っています。モジュール化はコンピューターの普及や発展に大きく寄与しました。
自動車は業界の成熟に伴い、シャシーや部品の共通化で利益率を高める工夫をしてきました。現在ではプラットホームの共通化からさらに一歩進化した仕組みとして、トヨタの「TNGA(トヨタ・ニュー・グローバル・アーキテクチャー)」、日産とルノーの「CMF(コモン・モジュール・ファミリー)」、フォルクスワーゲンの「MQB」などが採用されています。
腕時計は1960年代のクォーツショック(クォーツの登場で機械式時計産業が大打撃を受けた)以降、機械式ムーブメントを自社開発できるメーカーが急激に減少しました。それ以降、他社からムーブメントを購入して自社デザインのケースに組み込むことが増えました。また、クォーツでは当初からモジュールを組み込む手法がとられています。
どの業界においても、モジュール化は製造の効率化に大きな影響を及ぼしました。一方で、同じ規格の部品を使用すると必然的にデザインに制限が生まれ、「おもしろいデザイン」が生まれにくくなっていることが指摘されています。例えば、ポルシェを代表するモデルである「911」は、他のモデルとヘッドライトを共通化した時期がありましたが、ユーザーから不評であったため、現在は独自のデザインに戻しています。
知的生産活動とモジュール
プログラミングでは機能を切り分け、モジュール化することが頻繁に行われます。モジュール化によって開発効率のアップや分業化、メンテナンス効率の向上が可能となります。プログラミングにおいて、モジュール化を理解、実装できるかどうかが、初心者と中級者を分ける基準のひとつとなっています。また、モジュール化では、インターフェイスとして関数部分だけモジュールの外に公開し、実装を隠すこと(情報隠蔽)もできます。これはソースコードを利益の源としている企業にとっては重要なポイントであるといえます。細部は異なりますが、クラスやオブジェクト、プラグインやアドオン、APIなどもモジュールの概念に基づくものといえます。
本を執筆するにあたり、章立てすることや、共著で書くこともモジュールの考え方が活かされているといえるでしょう。章立てが上手くできているかどうかは、読みやすさや内容の理解度に大きく影響します。共著で執筆する際は、各著者が得意とする内容について執筆し、本全体としてテーマや文体を統一することで、効率よく質の高い本を仕上げることができます。
経営とモジュール
1980年代にパソコン製造がモジュール化して成功したのを受けて、1990年代には経営へのモジュールの導入が進みました。たとえば製造業では、製品製造のオペレーションを5つのモジュール(顧客対応、製品供給、調達、研究開発、管理/スタッフ業務)に分けて考えます。現在では製造プロセスだけではなく、業務プロセスや組織体系などにもモジュールの考え方が取り入れられています。
モジュールを取り入れた製造業は、「企画開発と部品製造」「組み立て」「サービスと販売」というフローですすみます。業界でのモジュール化が成熟すると、「組み立て」を担うメーカーの利益が伸び悩むことがわかってきました。前述のフローの中で、「企画開発と部品製造」および「サービスと販売」が伸びる一方で、モジュール化を率先してすすめてきたはずの「組み立て」を担う企業の売上が落ち込み、「スマイルカーブ」と呼ばれる状態に陥ることが多いようです。
モジュールの策定が上手く行われると、その仕様がデファクトスタンダード(事実上の業界標準)になることもあります。仕様を策定した企業は、開発を通じてノウハウを蓄えたり、特許を取得したりしているため、ビジネス上有利な点が多くなります。そのため、パラダイムシフトを伴う商品の黎明期には「規格の乱造」が起こりやすく、消費者を混乱させます。古くは家庭用ビデオのVHSとベータ、最近ではスマートフォンのLightningとUSB(micro USB/USB Type-C)など、枚挙に暇がありません。
デザインとモジュール
デザインにおいてもモジュールの考え方が有効な場面は多いといえます。特に物理的な組み合わせを考慮する必要がある建築デザインでは、モジュールの考え方が発達しました。日本では畳の大きさが統一され、後に広さの単位となりました。また古くから単位として尺モジュール(約910mm)が用いられています(現代ではメーターモジュールも存在)。モジュールの採用により、他社との協業が容易になったり、建材を無駄なく製造、使用できるメリットがあります。
20世紀に活躍したル・コルビュジエ(建築家、スイス/フランス)はそれまでの偉人(レオナルド・ダ・ヴィンチなど)の仕事を通じて、人体における数学的な比率を見出だしました。これをフィボナッチ配列や黄金比と組み合わせて建築に取り入れました(モデュロール:モジュール+黄金分割)。丹下健三(建築家)は日本におけるモデュロールを作成、採用しています。
情報とモジュール
情報の量と複雑さの増大に伴い、情報をモジュール化する方法が求められています。HTMLが登場し、文書のマークアップが一般的となり、情報のモジュール化は進んだように思われました。しかし、意味付けを伴わないマークアップはすぐに限界を迎えました。より高い精度で、かつ手間のかからない方法で情報をモジュール化する方法が研究されています。ポイントはセマンティック(意味付けなどを正しく行う)であること、また再利用しやすいことです。
モジュールの要件
モジュールの適用範囲は多岐にわたり、概念としても曖昧な部分もあるため、ここでモジュールが満たすべき要件について考察しました。
- 区切り方が適切であること
- 区切りが適切で無ければ、モジュールがもたらす効果の大半が失われます。区切り方が適切かどうかは質(機能や目的)と量(物理的、データ的な量)によって判断されます。
- インターフェースを持ち、それが単純であること
- 各モジュールが上手く接続しない限り、システムは機能しません。そのためのインターフェースは必須であり、またそれはできる限りシンプルで無ければなりません。
モジュール化に必要なルール
- 明示的なデザインルール
- アーキテクチャ(モジュールの構成要素と機能を規定したもの)
- インターフェース(モジュールのつながり方や相互作用を規定したもの)
- 標準(モジュールの適合性や優劣を判断するためのもの)
- 暗黙的なデザインルール
- モジュールが影響を及ぼす範囲の決定
モジュール化で必要な情報整備
- モジュールの設定
- 基本単位の区切り方を決める
- バリエーションの整理と機能の確認
- モジュールの組み合わせでできる可能性があるバリエーションと、その機能を確認
- マトリクス表の整備
- バリエーション毎に必要な工程や部品を一覧表にする
- 製品仕様の標準化(選択式仕様書の整備)
- 仕様項目毎に変化する内容をまとめた「選択式仕様書」を作成
- 仕様と機能の結合
- モジュールの持つ機能が仕様にどう結びついているかをまとめる
モジュールを効果的に使うために
3種類のモジュール化
すべてのモジュール化にはそれを担当するヘルムズマン(操舵手)が必要です。
- ヒエラルキー的
- ヘルムズマンが各モジュールの連結ルールを設計、変更する
- 情報同化型
- ヘルムズマンの管理下において、連結ルールが細かく調整される
- 情報異化型
- ヘルムズマンが複数存在し、各モジュールの活動が同時並行的に行われる
モジュールのメリットを知る
- 思考しやすい
- 誰でも考えられる粒度まで複雑なシステムを分割することができます。
- 合理的、効率的、無駄がない、量産できる
- サービスの場合は作業効率を、製品の場合は材料効率や製造効率を高めることができます。またモジュール化したシステムは多人数での処理に向いています。
- 摺り合わせよりも裾野が広く、機能の多様性と競争が担保される
- 規格化によって取り組むプレーヤー(企業や個人)が増えます。またモジュールごとの開発が可能となるため、機能や価格にバリエーションが生まれます。
- ボトルネックが明確になる
- モジュール毎の評価がしやすく、システムのフローを滞らせている箇所が明らかになります。
- ブラックボックス化できる
- 各モジュールはシステム全体から求められる機能を果たせば良いので、その内部を隠蔽でき、モジュール単独でビジネス化できます。
- 全体のフローやシステムの核になる部分を隠すことができる
- 規模の大きなシステムでは、自社内ですべての開発や運営を行えない場合があります。モジュール化して外注先を分けることで、全体のフローやコアとなる主要な情報を隠すことができます。
モジュールのデメリットを知る
- 設計が難しい
- 設計者はシステムのすべてを把握し、それを昇華しデザインルールとしなければなりません。
- デザインの多様性が損なわれる
- 特に機械では物理的な制限が生じるため、デザインの多様性が失われる事が多いようです。
- 機能や効果よりもバランスを優先する場合がある
- モジュール単体の完成度に加え、システム全体としてのバランスを取る必要があり、結果として効率や機能を抑えなければいけないことがあります。
- 規格の変更が難しい
- 一度策定された規格が頻繁に変化することは望ましくありません。規格の策定には入念な調査と将来的なヴィジョンが必要です。
- 革新的な変化が起こりにくい
- 各モジュールの進化や多様性は期待できますが、外部から見るとシステム全体としてはほとんど変化していないようにみえます。革新的な変化のためにはモジュール全体の再構築が必要となります。
- 複雑になる
- もともと見通しの良いシステムでモジュールを用いると、逆に複雑になってしまう場合があります。
モジュールを効果的に使うには
上記のメリットを活かし、デメリットを抑えることがモジュールを効果的に活用する方法となります。システムのモジュール化がうまくいくと、すぐに模倣され、その優位性は時間の経過とともに失われるでしょう。そのため、収益性やコストを意識しながら、モジュールの調整を絶え間なく行う必要があります。最適化されたモジュールができあがったのであれば、次は摺り合わせ(非モジュール型:インテグラルアーキテクチャー)の思考に基づき、モジュールのブラッシュアップを行います。また、モジュール化はネットワークの経済性の影響を強く受けます。一度モジュールの連結方法が固まったならば、モジュール自身のブラッシュアップは積極的に外部に任せる方が良いとえいるでしょう。
システムにモジュールを使うと決めた場合、いくつかあるモジュールの効果(分割、規格化、標準化など)のうち、どれを主に期待すべきかを適宜判断しなければなりません。また、モジュールの設計の善し悪しはそのシステムの善し悪しに直結することを頭においておきましょう。