高安氏が30年の業界経験から考える「すごいエンジニア」とは?
30年にわたり、ソフトウェアエンジニアリングを適用したシステム開発やコンサルティングに携わってきた高安氏。アーキテクトとしても活躍し、『システム設計の謎を解く』(SBクリエイティブ)など、著書も多数持つ。同氏がCTOを務めるBTCでは、チームとして仕事を進めるに当たり「テクノロジーとコンサルティングの融合」が不可欠と考え、施策やカルチャーの醸成に取り組んできた。一方、高安氏はさまざまな「すごいエンジニア」と出会い対話する中で、「技術分類・ロール」と「技術の習得・マインド」にそれぞれ共通する特徴があることに気づいたそうだ。そして、エンジニアの成長を支えるにあたり、組織的な取り組みの重要性を実感したという。
まず、高安氏が出会った「すごいエンジニア」のエピソードとして、「圧縮アルゴリズム」についてのエピソードが紹介された。大量のテキストデータの転送(Hadoop)に時間を要していたとあるシステムでは、独自のXMLスキーマが決まっている状態だった。これに対し「汎用的な圧縮アルゴリズムではなく、自分たちで作った方がいい」とアドバイス・実装したエンジニアがいたそうだ。確かに、特殊なXMLの体系化なら独自でシステムを作ったほうが圧縮効率が良く、ネットワークの転送量が減って高速化する。実際に内製したシステムでは、データ量の80%が圧縮された。高安氏は、「圧縮について本質的に理解しているからできたアドバイスだし実装だった」とコメントする。
こうしたエピソードは枚挙にいとまがないが、高安氏はそうした「すごいエンジニア」を分析し、次のような特徴を上げた。
- 俯瞰的な視点:短期的・局所的な視点にこだわらず、俯瞰的に状況を見ながら全体を把握し、問題を発見できる。
- 本質的な理解:常識とされる思い込みやWebで検索した手法ではない、本質的な理解があるからこそ応用がきく。
- 圧倒的なスピード:自身のアウトプットに自信があり、たとえ完璧ではなくても本質的に完成しているものを出すことができる。
そして、これらを可能にする理由として、対話の中から次のような心がけを聞き出したという。
- 原理原則をよく知っている
- アイデアに対して、修正や検討理解が速い
- 書籍を読むなどして体系的な理解を心掛けている
- 幅広く視野をもっている(こうあるべき=ToBeを知っている)
- ToBeから現実を見て手段を考える
技術的に優秀なエンジニアの中には、最後の「ToBeから現実を見て手段を考える」ができない人もいるという。ToBeにこだわりすぎるあまり、「こうあるべきなのに、どうしてできないのか」と頑なになってしまうというわけだ。そうした人たちは優れた技術を持っていても、現実的な解決案を出すことができない。周囲も「言っていることは正しいけど、それができたら苦労しないよ......」となってしまう。
本当に「すごいエンジニア」は、ToBeを知り、本来の解決策を考えつつも、現実を見る。「今の落とし所」を見出し、対応するのだ。また、現実的な解決策が内包する技術的な負債を認識し、次にそれを直す計画を立てるなど、将来の布石も考えられる。
高安氏は「エンジニアの何割かは、まさにToBeを知り、『こうあるべきなのに、なぜできないのか』と組織やプロジェクト、プロダクトへの不満を持っている人もいるだろう。しかし、一度現実を見てどうすればToBeに近づけられるか、ロードマップを描いて考えてみてほしい」と語る。
実際、高安氏がコンサルティングする際にも、ビジネス側から要求されるToBeがあり、そこへ向かうロードマップを描くことが多いという。ビジネスと技術を融合させるという意味でも、「現実解」を意識することが望ましいというわけだ。