一人前のエンジニアになるには数手先を読め
エンジニアとして一人前と言われるようになるためには漫然と目の前のタスクをこなしているだけでは不十分です。
仕事の背景や本質、全体の流れを理解することが理想ですが、まずは2手3手先を見据えることが必要です。
これは、オセロや将棋、囲碁といったボードゲームの思考プロセスとも共通しています。
これらのボードゲームでも始めたばかりの頃は目の前の一手を打つのが精いっぱいですが、自分が指した手を相手の立場に立って考えることによって強くなっていきます。
仕事も同様で自分のタスクが終わった次の段階で相手(チーム内メンバーや別部署のメンバーや顧客など)がそのタスクをどのような目的で利用し、どんな最終ゴールになるのかを意識することが重要です。
2手3手先が見通せるようになると仕事が効率的に処理することが出来、且つ大きな失敗を避けることができるようになります。
数手先を読むというのは日常業務だけでなく、障害対応時の対応も同様です。
1人前のエンジニアは解決策の1つを試している時にも「これで解決したら原因は~~だろうな」「これで解決しなかったら次は~~を試そうか」など常に先を見通すようにしています。
先を読めないエンジニアは1つの手が失敗してからようやく次の手を考え始めるので解決までに時間がかかるのです。
以前、顧客の環境において特定システムの管理画面に接続できないといった事象が発生しました。
色々と切り分けをしていくうちにどうやらVPN接続した端末からは正常に接続できるが、社内LANからの接続が出来ないのではないかという仮説に辿り着きました。
この仮説を確認するために接続できなかったお客様の端末でVPN接続して事象を確認することになり、メンバーの1人がお客様にメールで依頼しました。メールは次のような依頼になっていました。
お客様の端末をX.X.X.XのIPアドレスで接続して事象が再現するか確認してください」
「X.X.X.XのIPアドレス」というのは該当環境においてVPN接続した際に自動的に割り振られるIPアドレスのことですが、お客様はそのことをご存知ありませんでした。
本来であれば「VPN接続して事象の再現を確認してください」と依頼しなければ伝わらない内容でした。
さらに、VPN接続は通常社外から接続するものであり、お客様が普段使っている社内LANからVPN接続できない可能性が高いため、「社内LANではなく、スマートフォンのテザリングなどの外部ネットワーク経由で~」という伝え方をするべきでした。
相手の立場に立って考えるということを怠ったため、2手3手はおろか初手でつまづいてしまったケースです。
数手先を読むという力は一朝一夕には身につきませんが、次のような日々の小さな習慣の積み重ねによって確実に身に着けられるものです。
1. 定期的に振り返る習慣
1日30分でも良いので自分が担当したタスクや障害対応を振り返る時間を確保しましょう。
「このとき先読みできたか?」「次回はどんな対策を事前に考えるべきか?」など振り返ることで、徐々に先を読むパターンが定着します。
2. 相手の立場に立って考える習慣
ドキュメントや仕様書を書く際、常に「使う人は誰でどんな状況なのか?何をどこまで理解しているのか?」を考えてみましょう。
相手の理解度に合わせて、例えば新人エンジニアが読むと仮定したら、相手が理解できるように専門用語は使わずに分かりやすい言葉で書いてみましょう。
3. 先の工程をイメージする習慣
今、現在のタスクが次に何を目的にどのように手が加えられ、最終的にどうなるのかをイメージしましょう。
先の工程がイメージできるようになると自分のタスクの目的も明確となります。
目的が明確になれば何をしなければならないのかも明確になり、結果的に考慮漏れも少なくなるのです。
4. 先読みを仕組み化する習慣
作業を進めながら予め次のステップを「A案とB案」、「成功時シナリオと失敗時シナリオ」のように常に複数の予備プランを立てる習慣を持つと自然と先を読む力が身に付いてきます。
注意が必要なのが現在の作業を止めて複数のプランを考えるのではなく、作業を進めながら考えるということです。
作業を止めたまま、考えることばかりに時間が取られていては時間が経過していくばかりです。
ここまででタスクは数手先を読むという内容でお話してきました。
漫然と目の前のタスクをこなすのではなく、数手先を読むことでエンジニアとしての力量は一気に上がります。
先を読む力は特別な才能ではなく、小さな習慣の積み重ねによって確実に身に着けられるものです。
これまであまり先読みすることはなかったという人はこの機会に小さな習慣を試してみていただければと思います。