コンサルタントと技術者が対話するには? 役割を超えた共通言語の重要性
「すごいエンジニア」には、「技術分類・ロール」で共通の特徴があるという。技術をロールごとに分解すると、「アーキテクト」「組織改善・全体技術部門エース」「スペシャリスト/スーパープログラマ」の守備範囲が見えてくる。これをもとに、BTCの「ITコンサルタント」「アーキテクト」「スペシャリスト」の3つの役割に求められる技術を考えると、キャズム論でいう「イノベーター」のような研究的技術ではなく、「アーリーアダプター」や「アーリーマジョリティ」の知識が必要になる。
高安氏は、「技術メンバーは『アーリーアダプター』くらいの技術からキャッチアップをはじめ、それがどのようなビジネス課題に役に立つのかを考える必要がある。また世の中に流布され始める『アーリーマジョリティ』になるとお客さんも興味を持ち始め、課題を解決するためのソリューションも尋ねてくる。そのため、キャッチアップはもちろん、プロジェクトにどう導入するか、どう提案したらよいかを考えて、実際に設定・実装ができるレベルでその技術を習得する必要がある」と解説する。
もちろん役割ごとに求められる技術の習熟度が異なるが、高安氏は「ITコンサルタントだから技術を知らなくてもいいというわけではない」と強調する。「『知っている=シーズを理解している』レベルで習得している必要があり、そうなることでアーキテクトやスペシャリストと話ができる。一方、アーキテクトやスペシャリストも、マネジメント領域の言葉を知らなければならない。たとえば、『リスク』という言葉の意味を正しく理解し、その技術を使うことのリスクをマネジメントに説明できる必要がある」と語った。
技術者とコンサルタントの会話が成り立たなければ互いに理解が進まず、建設的なコミュニケーションは成り立たない。高安氏自身も「あなたは訳のわからない言葉を話す」とコンサルタントに言われ、困惑したことがあるという。改めて、「コンサルタントも技術メンバーもお互いに歩み寄り、つながっていくことが重要」と強調した。
エンジニアはどう技術を学んだらよいのか? 技術取得のためのマインドを紹介
エンジニアの「技術取得のマインド」について語る前に、高安氏は「ダニングクルーガー効果(Dunning–Kruger effect)」について紹介した。これは、経験の浅い人が自分の能力を正しく認識できず自分を過大評価する現象であり、技術要素の理解においても起きやすい。初心者は、自分の技術レベルを正しく測れていない可能性があることを認識しておくべきというわけだ。
そもそも技術の選定は、要件に合わせて行われるのが一般的だが、組織における実現可能性もまた重要となる。つまり、どんなにすごいスーパーソリューションでも、自分たちが使えないものを選択しては意味がない。もちろんその技術を使えないことは、テクノロジストとして残念なことであり、同時に技術を導入できる環境づくりにも取り組むべきだ。
ここで高安氏は「より大きな問題を解決するのに必要な副次的な問題を解決するための、一見して無用な行為」を表す言葉として「ヤクの毛刈り」を紹介した。そして、開発現場で起こりうる具体的な例として、JWT(Json Web Token)をAWSのCognitoで発行した場合の検証コードを挙げる。aws-jwt-verifyというライブラリの書き方は、Blogやリファレンスを見ればわかる。しかしながら、Cognitoの階層構造をみていくと、それぞれのつながりが見えてくる。つまり、JWTを理解するには下階層のPKIや電子署名を理解している必要があるということだ。
高安氏は「3行ほどのコードでも、本当に理解しようと思ったら、中身を細かく分解し、ベリフィケーションしなければならない。電子署名の鍵がどこにあるのか、JWKのキーを使って検証している過程など、掘り起こして理解する必要がある」と語る。コードへの深い理解を実現するために「ヤクの毛刈り」が重要だというわけだ。
高安氏は「全部できないという話もあるが、頭の中で書き出すだけでもいい。技術マップを書き、自分に何がわかって何がわからないのか、理解を棚卸しすることが大切。わからないことが問題なのではなく、わからない部分を認識できないのが問題。自分が何を勉強すればいいのか認識できることが大切であり、『ヤクの毛刈り』のようにいろいろと調べながら、成長のきっかけを掴んでほしい」と語った。
このような姿勢は「ソフトウェアクラフトマンシップ宣言」にも記載されている。効率を重視すると失われる可能性があるが、エンジニアとして忘れたくはない意識だ。また、高安氏はソフトウェア工学の良書として『SWEBOK』(松本 吉弘・訳、オーム社)、『継続的デリバリーのソフトウェア工学』(David Farley・著、日経BP)、『実践ソフトウェアエンジニアリング』(Roger S. Pressman, Bruce R. Maxim・著、オーム社)を紹介した。
高安氏は、「キャリアの考え方や目標によって、技術に対する立ち位置が違う。モノづくりの観点から『技術の価値』と『ビジネスの価値』を問えるのは、エンジニアならでは。アプリケーションを支えるインフラ技術の在り方や動作しているものの裏側など、深い部分までぜひ技術取得のマインドとして意識してほしい」と語った。