IoTなどの技術が進化し、身の回りのあらゆるモノがインターネットにつながり情報を共有することにより、互いの情報や機能を補完します。さらに、それらの情報から新たな知見を獲得し、革新的なソリューションを生み出すことが可能になります。一方、何でもつながることにより相互間のつながりが複雑になり、特定の部位や観点だけを考えていても発見できない要因による障害リスクが高まります。IoTの進化は、様々な相互の結合の中に斬新な企画のチャンスと大きなリスクを生みます。そのための全体を見通す“俯瞰”について述べます。
■システム開発における“俯瞰”の重要性と現状
1.どのような仕事にも“俯瞰”が必要
どのような仕事であっても、しくみや仕事の流れなどを覚えることが重要です。資料を見ながらでは、様々な複合的状況の中で的確に行動できません。しくみや仕事の流れが頭の中に入ることにより状況を“俯瞰”することができ、適切で柔軟な行動が行えるようになります。システム開発においても、開発の目的、関係する制約、構成要素の性質や動作、使われる環境、生活する人々の活動が頭の中でイメージできるようにならないと、“俯瞰”することができません。“俯瞰”できない状況で、システムがどのように動作すべきであり、どのような機能が提供できるかを正しく創造することは不可能です。 |
|
|
『人月の神話』(フレデリック・ブルックス著)は、原著初版(1975年)の刊行から現在でも読み継がれている大規模開発におけるソフトウェア工学の古典です。その中で、開発見積もりに対して、「人月」の人と月が単純作業と同様に置き換え可能であるかのように扱われていることの問題が指摘されています。一般的な開発工数の中に、開発初期段階における開発対象全体の概要を頭の中にいれるための準備時間が充分考慮されない現実があります。
2.“俯瞰”できなくなってきたシステムの状況
従来から“俯瞰”は当たり前であり、優秀なシステムエンジニアは、限られた時間の中で過去の経験に基づき“俯瞰”を行い、開発を進めてきました。しかし、近年のIoTにより、異なった文化、目的、機能、手順、意味を持った構成要素が、異なった場所や環境の中で、時間を越えて相互につながりあいます。ほとんどの設計上の問題は、個別の要素ではなく要素間のつながりの中に存在します。大規模化、複雑化、多様化したシステムの進展の中で、“俯瞰”することが容易ではなくなってきました。
3.システム開発の本質問題に気付かない
本来、開発環境を含む開発対象を“俯瞰”し、様々な要素間を整合した振る舞いと構造が決定され設計が進みます。しかし、“俯瞰”できないで決められた振る舞いや構造をもとに開発を進めた場合、要素間の結合段階になり不整合問題が発生し、力任せに例外処理を組込むことにより解決する“小手先すり合わせ文化”が蔓延しています。しかし、それらの解決は局所最適による全体整合の欠如のため、手直しが頻発し遅延と品質問題を起こします。しかし、もはや初期設計にさかのぼった問題提起をすることは不可能であり、開発下流における設計能力やマネジメントの問題として処理されます。
3.“俯瞰”は取りあげられることはない
『木を見る西洋人、森を見る東洋人』(リチャード・E・ニスベット著)に、思考の違いが述べられています。ほとんどの工学的手法は西洋で検討され、対象の属性などを定義することを中心に進められます。また、多くの手法は記述手法であり、設計のために必要な定義と表現について述べられています。“俯瞰”を言及する直接的な思考に関わるところは、工学的に論理的な証明ができないため扱われることはありません。
また、日本は目に見える“モノ”の価値には注目しますが、目に見えない“コト”の価値を軽視する傾向にあります。システムを構成する個別の技術要素には投資しますが、生活や環境からシステムのあるべき姿を考える抽象的なソフトウェアを構築する技術には投資しません。このため、“俯瞰”の重要性や人材育成についてあまり検討されていません。その結果、個別の技術力は高いにもかかわらず、革新的なシステム全体を設計することが困難になってきています。
■“俯瞰”の方法
1.“俯瞰”の本質
“俯瞰”している状態は、全体としての振る舞いの概要を把握することにより、可能な価値の創出や障害リスクを発見し進むべき方向を見出していることであり、システム開発において設計しながら同時に検証できていることです。システム開発の初期において、分析対象は単純なモデルとして記述します。しかし、実際の思考における分析と設計の検証による試行錯誤は、膨大な回数繰り返されます。将棋の棋士が、論理的には何億通りにもなる組合せになる展開を読みながら指しているのと同様です。ただし、膨大な時間を消費してはいません。たとえば、家庭の給湯器の蛇口を開ければ、お湯が出ることは容易に想像できます。給湯器のしくみ、給湯器に入るガス供給のしくみや電力供給のしくみを全て検討する必要はありません。それらは、構造化された概要の知識として持っているからです。しかし、原始人であれば、そうは行きません。人の能力は、個別の要素やしくみの知識があれば、様々なことを瞬時で思い巡らせることが可能です。
2.“俯瞰”は組織力
“俯瞰”は、属人化ではなく組織力です。“俯瞰”という行為自体は、個人に依存しますが、組織としてマネジメントしない限り“俯瞰”を行うことができません。開発関連の概要を把握するという成果物が見えにくい作業を組織として時間確保するマネジメントが重要になります。また、“俯瞰”を行っていれば、なぜそのような機能や振る舞いにするのかといった設計根拠が明確になります。この根拠は、組織ノウハウとして重要な資産として蓄積可能です。
3.“俯瞰”の思考方法
最大の課題は、想定外の振る舞いである逸脱発生とそれによる影響の連鎖です。過去に様々な社会関連システムにおいて、ありえない単純な操作ミスなどを契機に社会問題になったシステム障害が何度も発生しています。様々な逸脱可能性とそれによる影響を見つけだし、基本設計から対策検討を行うことが重要な設計根拠となりシステムの堅牢性を確保できます。また、何らかの新たな機能や構成要素による新たな事象という逸脱を発生させることにより、その効果の連鎖や振る舞いの相乗効果から革新的なシステムを創造できます。
逸脱の可能性は多様にありますが、その中から着目すべき振る舞いを抽出する必要があります。そのためには、前提となる正常な振る舞いの概要が既に頭の中にはいっていることが必要となります。しかし、システムの動作は、漫然と記憶することができません。システム構造で静的に概要を捉え、ある事象を契機とした構成要素間の影響の連鎖を動作シナリオとして動的に捉えます。構造の静的分析とシナリオの動作分析をスパイラルアップしながら改善して進めることにより、理解が進み概要が記憶され詳細化が進んでいきます。
※詳しくは、フォーラムエイトパブリッシング出版『超スマート社会のためのシステム開発』をご覧ください。
|
|
超スマート社会のためのシステム開発
〜日本のものづくりを足元から見直しませんか〜
・・・第4次産業革命を実現する“コト”の生産技術革命・・・
(システムを扱う経営、企画、開発、品質保証、発注会社/受託会社のために)
■著者 : 三瀬 敏朗
■発行 : 2018年11月
■価格 : \2,800(税別)
■出版 : フォーラムエイトパブリッシング |
約30年間に渡って大手メーカー新規商品、特注品、試作機やマイコンソフトウェア等の受託開発に携わった豊富な経験にもとづいて、これからのスマート社会を支える上で不可欠な組込システム開発の考え方・知識・手法を紹介。システムを扱う経営、企画、開発、品質保証、発注/受託に関わる方は必読の手引き書です。 |
|
|