2024.12.19
システムの穴を運用でカバーしようとしてミス多発… バグが大量発生、決算が合わない状態から業務効率化を実現するまで
リンクをコピー
記事をブックマーク
湯前慶大氏(以下、湯前):「EM.FM」は、「エンジニアリングマネジメントをもっと楽しく、もっとわかりやすく」をコンセプトにお届けするポッドキャストです。「ゆのん」です。お相手は……。
広木大地氏(以下、広木):広木です。よろしくお願いします。
佐藤将高氏(以下、佐藤):佐藤です。よろしくお願いします。
湯前:EM.FMでは、毎回ちょっとためになる情報を紹介していきたいということで、1つのテーマを掘り下げて学んでいこうと思っています。今回のプレゼンターは、広木さんです。
広木:はい、よろしくお願いします。
湯前:さて、今回話していただくテーマは、何でしょう?
広木:「『技術力』って何?」というテーマです。
湯前:おぉ、なんか、深い……(笑)。
広木:これをちょっとみなさんと話したいなって(笑)。
湯前:深いですね。
広木:もう、ある程度年を取ってきてしまったので、若手の人からキャリアの話とかいろいろ相談を受ける中で、「技術力をつけたいな」とか、みなさんも周りでよく聞くんじゃないですかね。
湯前:聞きますね。
広木:その時に、「技術力って何なんだろう?」と思ったりして、考えてもパッとちょっとよくわからないなと。なんとなくはわかるのですが、なんとなくしかわからなくて、「これっていったい何なんだろうな?」と考えることが多いです。
その時に、「技術力をつけたいので、新しいフレームワークを触ってみたい」とか、「勉強する時間を増やしたい」とか、そういった話を聞きます。
「キャリアを考えていくと、もう少し技術力をつけていきたい」とか、そんなことを言われるのですが、それは、「新しいフレームワークの使い方を勉強したくて『Get started』をやりました」みたいな話は、技術力かと言われるとどうなのかなと思います。
広木:なにか勉強するとか、あるいは技術力という言葉が使われる時に、この概念はちょっとぴんと来ないなと思っていて、いったいこれは何なんだろうなと。
まず、「技術力的なものがあったらいったい何ができるのかな?」と考えると、エンジニアは、会社としてビジネスマンとして成果を残さなければいけなくて、成果を残すことに対して、まず必要な能力が、技術的な側面であったら力なんだろうなと思っています。
では、それは何かというと、良い問題を解決できるということですよね。これは、すなわち、たくさん仕事をするということではなくて、より良い問題をより良く解決していくことだから、量がたくさんこなせることとか、仕事がテキパキとたくさんのものが運べるみたいな力とは違って、いい問題を見つけて、良い問題を解決していく力なんだろうなと思います。
そう考えると、課題を設定する。つまりどんな問題なのかということ。何が問題なのか、どの問題を解決すべきなのかという課題を設定する力と、その設定した課題を解決する力に二分されるのかなと思っています。
その課題の解決力のほうは、技術的な知識とそれを運用する思考力や、必要に応じてその領域を深くスタディ、研究していって、そのものについて解き明かしていったり、問題解決をより深くしていくような思考の持続力に近いのかなと思っています。
その思考の持続力を実現するようなエンジニアリングの原理原則に基づいた所作というか立ち振る舞いの洗練がされてくると、課題解決はうまくしていけるようになっていくかなと思います。
そういった部分に関しては、やはり思考を深く持続させていく力のほうが重要で、表層的に学習するために新しいフレームワークを舐めることよりかは、このフレームワークがどんな課題解決を目的として生まれていて、どういう動作原理で動いていて、どんな原理原則というか知恵が詰まっているのかを深く知っていくみたいなことが必要です。
「使い方だけ表面的になぞっていくこと」を増やしていっても得られるものではないような気がします。
その中で、やはり物事について突き詰めて、同じものをインプットしても、「なんでだろう?」と考えたり、それを、「どうして車はこのように動いているんだろう?」と理解していく探究心というか、深く知っていく力が必要です。
これが、新しいものに追い立てられれば追い立てられるほど、表面的に役に立つ知識を得ようとするがあまり、それを置いてけぼりになりがちです。
本当はもう少し、時代に引っ張られすぎない汎用的な探究心みたいなもののほうが、この課題解決力を滋養していくようなものなのかなと思っています。
広木:最近、「Quora」かなにかの質問のところに、「CPUのキャッシュメモリってなんで速いんですか? なぜ速いんですか?」という問いがあって、これに対してエンジニアの人々がいろいろ大喜利的に答えていくというか、解を示していくようなことがあって、これを読みながら、いろいろなことを考えていました。
その時に、「なぜ?」という問いには、いろいろな答え方があるよなと思って、それに一番類する話としては、生物学や進化の用語なのですが、「ティンバーゲンの4つのなぜ」というものがあります。
これは、生き物の、例えばキリンの首が長いことについて、「なぜキリンの首は長いんですか?」という質問にはいろいろな答え方があるよねという分類です。それに倣いながら、この「キャッシュはなぜ速いのか?」という問いに答えていくみたいなことを考えます。
この「ティンバーゲンの4つのなぜ」は、4象限、要は2つの軸があって、これをクロスしたかたちで、「なぜ?」を4つに分けられるんじゃないかというところです。
1つは、至近的な、現在どうしてそうなっているかということと、究極的な目的論的な意味での説明の2軸です。もう1つが、今の当時代的な、今のこの時代においてとか時期において、ある1個体がという観点と、進化なので歴史的なというか、時系列をもってどういうふうに変化していったかという観点を、縦軸・横軸にして分類する「4つのなぜ」があります。
広木:その観点でひもといていくと、「キャッシュメモリ、なぜ速いか?」といった時に、メカニズム的な「なぜ?」としては、CPUに物理的に近いところに置いてあるからキャッシュメモリは速くて、さらに、それがSRAMという回路によって作られているから物理的に速いんだという、メカニズム的な説明ができます。
では、これは「なぜ?」のその説明になるのかというとなかなか難しくて、もう少し踏み込んで、それを現在の状況に至る原理的な部分はいったいどういう……経緯としてはどうしてそうなってきたのかというところをまずたどっていきます。
まず、メモリはやはり容量が増えるほど、そのアロケーション、どこにあるかということを示さなきゃいけないから、それを転送するためのバスサイズが増えます。
バスサイズが増えると1bitあたりの面積がSRAMのほうがフリップフロップなので広いし、DRAMはキャパシタなので、もうちょっと小さいサイズでできるから、大容量にしようと思った時にDRAMのほうが都合良くて、逆に速さを求めた時にはSRAMのほうが……というのは、現状こうなっているのはこういう原理だよと説明できます。
「キャッシュメモリは、なぜ速いのか?」という問いには別の考え方もあって、「これが究極的な部分では、なぜそう進化していったのか?」というところを考えます。
そもそもプログラムには、データの局所性があって、頻繁に触りたいデータもあれば、別にちょっとしか触らなくてもいいデータも存在しています。それを高速にしようとすると、この局所性の原理に基づいて、キャッシュという速くて少ない容量のものと、2次メモリ的な遅いけど大容量なもの、もっと言うと、ハードディスクのようなものとか、もっと2次記憶、3次記憶というふうに、キャッシュを階層化させていくほうが効率的です。だからこれは、「プログラムには局所性があるからキャッシュメモリが速いのだ」という言い方もできるかもしれません。
逆にさらに、それが通時的なところを見渡して、「なぜ我々は、大容量かつ高速な1つのメモリだけで問題解決をできないのか?」ということが、もう1つの問いとしてはだかる気がしています。
それについて考えると、私たちは、大容量かつ高速なメモリが1個あればそれで問題は解決できるのですが、どうしてもそこには、なんらかの原理的なトレードオフがあった時に、経済的な選択として、この1次メモリにふさわしいもの、2次メモリにふさわしいもののように、一番経済合理性があるものを採用することにならざるを得ないから、結果的にキャッシュ機構が必要になってくるんだ、ということも説明としてはできるな、と考えています。
それを、いろいろな方々が答えているのを見ていて、「なぜ?」という問いはいくつか分類ができて、その考え方の幅の広さを、それを見ながら考えていました。
広木:なぜを5回を繰り返すと本当の答えにたどり着くんだよみたいな、トヨタとかでもよく言われている「なぜ5回」の話があります。
この技術的な探究心の深さの話に戻ると、このキャッシュメモリのなぜというところにも、実は発展的な広がりが存在しています。どのようにその原理を探究していくのかというものの中には、物理的な仕組みのこともあれば社会学的な仕組みのものもあったり、あるいは、プログラミングの持つ一般的な性質によるところもあったりしています。
これは、いくつかの「なぜ?」を掘っていくという知っている知識の深め方が、もしかしたらある種の技術力に転化していく要素なのかもしれないなと思っています。
これが、1つの種類の「なぜ?」しか浮かばない人は、探究できる幅も狭まってしまうんじゃないかなと思っています。このように、考えを幅広に展開しながらとか、1つのことについてさまざまな角度から理解、探究していくことによって、技術力に必要な問題解決の力の素養みたいなものが培われていくのかな、と考えていました。
もう一方で、この解決力とは別に、課題の設定力という切り口もあるなと思っていて、これを「問いを立てる力」と言い換えてもいいかなと思っています。やはりいい問題を解決しないと、いい課題解決にはならないから、どんな課題を選択するのか、見つけるのかは、アウトプットの質に非常に大きな影響があるんです。
この問いを立てるためには、やはり世の中のことや社会のことや周囲のことをよく見ていないと、良い問いには出くわせないなと思っていて、その部分については、技術力の埒外と扱われがちなところがちょっとあります。
一方で、実際に良い結果を出している人たちは、良い問いをうまく立てられて、それに対する解決が、実際に自分の培ったものでできたからこそ多くの評価を得ているのかなと思っています。
(次回につづく)
関連タグ:
2024.12.12
会議で発言しやすくなる「心理的安全性」を高めるには ファシリテーションがうまい人の3つの条件
2024.12.19
12万通りの「資格の組み合わせ」の中で厳選された60の項目 532の資格を持つ林雄次氏の新刊『資格のかけ算』の見所
2024.12.16
32歳で成績最下位から1年でトップ営業になれた理由 売るテクニックよりも大事な「あり方」
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
2024.12.13
ファシリテーターは「しゃべらないほうがいい」理由 入山章栄氏が語る、心理的安全性の高い場を作るポイント
PR | 2024.12.20
モンスター化したExcelが、ある日突然崩壊 昭和のガス工事会社を生まれ変わらせた、起死回生のノーコード活用術
2024.12.18
「社長以外みんな儲かる給与設計」にした理由 経営者たちが語る、優秀な人材集め・会社を発展させるためのヒント
2024.12.12
今までとこれからで、エンジニアに求められる「スキル」の違い AI時代のエンジニアの未来と生存戦略のカギとは
PR | 2024.11.26
なぜ電話営業はなくならない?その要因は「属人化」 通話内容をデータ化するZoomのクラウドサービス活用術
Climbers Startup JAPAN EXPO 2024 - 秋 -
2024.11.20 - 2024.11.21
『主体的なキャリア形成』を考える~資格のかけ算について〜
2024.12.07 - 2024.12.07
Startup CTO of the year 2024
2024.11.19 - 2024.11.19
社員の力を引き出す経営戦略〜ひとり一人が自ら成長する組織づくり〜
2024.11.20 - 2024.11.20
「確率思考」で未来を見通す 事業を成功に導く意思決定 ~エビデンス・ベースド・マーケティング思考の調査分析で事業に有効な予測手法とは~
2024.11.05 - 2024.11.05