😎

エンジニアリングと不確実性

2023/12/09に公開

先日「エンジニアリング組織論への招待」を読みました。
1章の序盤のエンジニアリングと不確実性についての話をまとめたいなと思ったので記事にしました。

参考書籍

https://gihyo.jp/book/2018/978-4-7741-9605-3

結論

  • エンジニアリングとは不確実性を減らす行為である
  • 選択肢を絞るほど不確実性は減っていく
  • 不確実性の発生源には「他人」と「未来」という2種類がある

エンジニアリングとは

エンジニアリングは組織でソフトウェア開発を行う行為であり、個人でプログラミングを行うこととは大きく異なります。
組織で行うということは様々な不安が発生します。

  • どういう仕様にするのか
  • どんな設計にしたらいいのか
  • どうコミュニケーションをとるか

こういった不安を不確実性といいます。
また、エンジニアリングは工学と訳されます。
工学は自然科学や数学を基礎として役立つものを創造する学問です。
創造する過程においては始まりの状態と終わりの状態があります。
始まりは抽象的な状態(要件・要求)であり、終わりは具体的な成果物が完成している状態です。
つまりエンジニアリングは抽象的なものを具体的にしていく行為であり、言い換えると不確実性を減らしていく行為ということになります。

不確実性

組織における不確実性

組織において指示が抽象的であるのは仕方のないことです。
上層の組織から現場へ具体的な指示ばかりしていても仕事は回りませんし、アウトプットは頭打ちになります。
抽象的な指示によって、現場のメンバーが自ら考えて具体的な行動に落とし込めることによって、少ない指示でもより多くの不確実性を削減できます。

不確実性とエントロピー

クロード・シャノンが不確実性の量をエントロピーと呼びました。
エントロピーは発生する確率から計算式を用いて算出できます。
晴れる確率と雨の確率からエントロピーを算出すると以下のようになります。

晴れの確率 雨の確率 エントロピー
50% 50% 1bit
80% 20% 0.72bit

発生する確率が偏ることによってエントロピー(=不確実性)が減少します。
このように選択肢が絞ることで何をどのようにするかを明確になり、不確実性を減らすことができます。
また、シャノンは不確実性を減少させる知識のことを情報と呼びました。
すなわちエンジニアリングとは情報を生み出す行為と捉えることもできます。
個人的にこの話は刺さりました。

不確実性の発生源

人間にとってわからないのは「他人」と「未来」です。
他人に情報を伝えても正しく伝わっているとは限りませんし、伝えた通りに行動してくれるとも限りません。
こういった他人への不確実性を通信不確実性といいます。
未来については言わずもがなですが、何が起こるかはその時が来るまではわかりません。
こういった不確実性を環境不確実性と呼びます。
人は不確実なものから目を背ける傾向があります。
これは不確実なものと向き合うことは不安を伴うからです。
しかし、不確実性を減らさない限り不安も減らないのです。

個人的な感想

この「エンジニアリングと不確実性」に関する章読んでから、日常的に分からないことを放置しなくなりました。
知らないことが恥みたいな思考があったのですが、自分の中に情報を生み出すこともエンジニアリングの一部だという意識を持ってから、人に質問するハードルが下がったように思います。

GitHubで編集を提案

Discussion