エンジニアとして生きていくうえで大切な知見
セッション後半ではこれまでの経験をふまえ、エンジニアとして生きていくうえで大切なことを複数の視点から語った。
まず、「実装できるだけでは影響力を持てない」ということ。自分の生み出した成果だけで、会社や世界を変えられるほどの技術力を身につけることは難しい。「エンジニアが影響力を持つためには自然言語のスキルが重要」と江草氏は解説する。事実や意見を正確に日本語(ないしは英語)で表現すること。正確に伝える能力や、正確に読解する能力がとても大切であることを述べた。
また、「変化についていくのが重要だからこそ、技術の原理原則を理解しておくべき」とも語る。ITの世界は変化が激しい。流行したライブラリやフレームワークが数年後には時代遅れになっているなどの事態は頻繁に発生する。かつ、世の中には多種多様な技術が存在しており、1人のエンジニアが全てを習得することは不可能である。しかし、どれほどツールが変化しても、その根本にある動作原理は変わらない。原理原則を理解していれば、新しい技術がどのような仕組みで動いているかも理解できる。
また、「物事を進めるコツは単純化すること」であると江草氏は言う。何かの課題が生じた際、その要素を可能な限り単純化することは、解決策を導くための鉄則である。単純化することで理解しやすく/されやすくなるうえに、本質的に重要な課題とそうではない課題が明確になる。解決すべきクリティカルな課題だけに、さまざまなリソースを集中させることができるのだ。
江草氏は「バランス感覚が重要」とも解説した。局所的な理想解が全体の最適解とは限らないということだ。例えば、プログラミングにおいて特定の処理を実現するためのコードを書くとしよう。プログラムの記述方法には多種多様な選択肢が存在する。もしかしたら、超絶技巧を用いて高速に動作するアルゴリズムを書くエンジニアもいるかもしれない。
プログラム単体として見ればそれは良い選択かもしれないが、結果としてコードが難読化してメンテナンス性が悪くなってしまえば、組織全体としてはマイナスになる。何かの決断を下す際にはマクロな視点で考え、全体のバランスをとることが重要なのだ。
また、「理解できていないことは遂行できない」とも述べた。例えば、特定の要素技術を業務で扱うならば、たとえ実装はできないとしても最低限の知識を理解しておくことが大切だ。そうでなければ、業務の要所において的確な判断はできないだろう。
「オープンソースが主流になっている現代では、優秀なエンジニアの方々が書いたコードを読んだり、特定の技術に触れたりすることが容易です。ぜひ、このチャンスを積極的に活用してください」と江草氏は言う。自分が業務で扱っている領域は、研鑽を重ねることでプロとしてのスキルを身につけていくことが重要といえる。
こうして本セッションは終了した。エンジニアとして成長するためには、ただ漠然と日々の業務をこなすだけでは不十分である。なんらかの「指針」を持って、目の前の課題と向き合うことが必要だ。江草氏の語った知見は、そうした指針を立てるうえでの判断基準を私たちに教えてくれた。
