山陰 Advent Calendar 2022の12/5エントリー投稿です!
我々ITエンジニアは、次々と現れる新技術に翻弄されながら、顧客に価値を提供し続けるために学び続ける存在です。
エンジニアとして学ぶ=成長するためには、自分の強み弱みを理解してテーマ設定すると効率的です。
テーマ設定の一助として、エンジニアの能力を大きく3つに分類して自分を棚卸しする方法を紹介します。
この3つの能力を表現する言葉が見つからないので、聞き慣れたワードで代用しますが、役割・役職と混同しないようにご注意ください。
なお、この3分類は私の持論なので、異論は歓迎します。
この持論が呼び水になって、活発な議論が行われることを期待します。
3つの能力
技術的な力
エンジニアと言えば技術!プログラミング言語!をイメージすることが多いと思います。
実際、ITエンジニアのキャリアは(ほとんどの場合)プログラミングから始まります。
諸先輩方のプログラミング能力に圧倒されて、自分ももっと色んな言語を覚えなきゃ、って焦ったりもします。
しかしここには落とし穴があります。
顧客目線だと、システム開発会社にいる人は全員、プログラミングができると思っている一方で、顧客が求めていない技術に関する知識の有無には興味がありません。
プロに求められるプログラミング能力は(宮本武蔵の五輪の書ではないですが)「作れる程度にできれば十分」なものです。
エンジニアに囲まれていると世間の基準を見失いがちですが、技術を学ぶ際はプログラミング言語だけに特化するのではなく、「作れる程度」にネットワーク、ミドルウェア、最近だとクラウドの知識など、引き出しの幅を広げることを意識すると良い顧客提案ができるようになります。
保守運用的な力
顧客はシステムが欲しいのではありません。
システムを使って、ビジネスがしたいのです。
顧客のビジネスが回る=収益を産み続けている状態を健全に維持する活動を保守運用と言います。
では、エンジニアの能力としての保守運用的な力とは何を指すのでしょうか?
これはシステムの品質です。
私はよく「強い実装」と表現するのですが、以下のような特徴を備えたシステムです。
- 例外的な状況でも(データ破壊など)破綻せず、正しくエラーが発生する
- コードから仕様が読み解きやすく、修正が容易
- テストコードが揃っており、デグレードの不安が少ない
- ログ出力の内容とタイミングが適切で、必要十分な情報が得られる
一度作ったシステムは、長年にわたって顧客に使用され続けます。
そして使用されるシステムには必ず改修要望があります。
日々使用されるシステムの声なき声はログという形で出力されており、これはシステム改善のタネです。
読み解くには相応のスキルが求められますが、ログを元にシステム観点から改善提案ができると、顧客との信頼関係を強固にすることができます。
初期開発の時点で強い実装を意識するのは簡単ではありませんが、保守運用のフェーズでより強い実装に鍛えていくのはさらに高度な作業になります。
マネージメント的な力
プロのエンジニアは納期を守らねばなりません。
要件や設計、実装も納期に大きく影響しますが、時には現実を踏まえて妥協する判断も必要になります。
要は仕事をやり切る力なのですが、ただ終わらせるだけでは不十分です。
顧客と合意した内容が満たされていること、自社の収益が確保されていること、そして何より仲間たちの心身の健康を維持したままゴールすること。
これらが揃ったとき、プロジェクトが成功したと胸を張ることができます。
もう一つ、コミュニケーションもマネージメントの範囲に含めたいと思います。
顧客との交渉ごと、仲間との情報共有、どちらもコミュニケーションです。
正しく動機付けできなければ各人のゴール意識が揃わず、プロジェクトを成功させることが難しくなります。
誰が相手であっても、コミュニケーションは相互の働きがなければ成立しません。
相手を尊重し、理解し、言葉を引き出すのは技術でもありますが、ハートも重要になります。
こう考えると、マネージメントの力は「プロとしての振る舞い」と言えるかもしれません。
全部必要
これら3つの能力は(割合の差はあっても)全てのエンジニアの中に必要なものです。
役割によって強く求められる能力は異なりますが、それぞれの能力は相互補完的なので、どれかをゼロにすることも、何かに全振りすることもできません。
プロジェクトが成功した時、上手くいかなかった時、これらの要素の何が影響したのかを振り返れば、どこに空地があって次に何を学ぶべきかが見えてくると思います。
また、目指す道があるのであれば、意識して学ぶこともできると思います。
バランスよく身に付くとゼネラリストの道、どれかに注力するとスペシャリストの道に続いていますが、どの道を目指すのかは自分の気持ちと、与えられた環境、いただいたご縁によって変わってくるのかなと思います。
ITエンジニアの心の地図は人それぞれ、心の中にあるのです。