技術とか戦略とか

IT技術者が技術や戦略について書くブログです。

先読みできる技術者になるために

今は、知識や経験に差がある複数の技術者がそれぞれ似たような案件を受け持つような環境で仕事をしています。
その中で気付いたことがあるので記事にします。
 
どの案件も、顧客(要件定義者や上位の設計者)の要望に沿って設計・製造・テストを行うというものなのですが、知識・経験に長けた技術者の案件は比較的スムーズに進むのですが、そうではない技術者の案件は顧客との応対に時間がかかったり後工程で問題が見つかったりして、知識や経験に長けた技術者のカバーがないとスムーズに進まないことが多いです。
知識や経験に長けた技術者とそうではない技術者で仕事の進め方がどのように違うのかを見てみると、「先読みができるかどうか」という所に本質的な違いがあるように見えました。
 
知識や経験に長けた技術者であれば、今の時点から最終的にリリース・本番運用する所までの流れが読めるので、どのような所に気を配れば後々スムーズに進むのかを考えることができます。例えばコーディングでは、「ロジックが複雑でバグが出やすいから簡単なロジックに作り直した方が良いな」「後で影響調査する時のことを考えると変数名は○○にした方が良いな」といった所に気を配ることができます。
また、顧客との定例的な打ち合わせでも、「きっとこの人は現工程の進捗遅れが響いてリリース延期になるリスクを気にしてるな。後工程の作業を先取りしているから全体的に見て進捗遅れはないと言って安心してもらおう。」といった気配りができるので、顧客との応対もすんなり終わります。
顧客の要望に不足や誤りがあることも時にはあります。そのような時、知識や経験に長けていれば「○○をすることで性能改善をしたいという要望ですが、なぜ○○をすれば性能が改善すると考えているのでしょうか。」といった形で質問することができます。もしその中で誤りが見つかれば早期に対応することができ、後工程で問題となるのを防ぐことができます。
知識・経験に長けた技術者とそうではない技術者では一見同じように仕事を進めているようにも見えるかもしれませんが、知識・経験に長けた技術者はこのような先読みをしれっと行い、仕事がスムーズに進むようにしています。
 
良質な経験を何年にもわたって積んでいれば、上記のような先読みは「なんとなく、このまま行ったら後々ヤバくなりそうな臭いがする」という形で自然にできるようになります。
しかし、経験の量や質が不足している技術者にはそれはできないので、知識で補う必要があります。
知識と言っても、単に「○○の言語でコーディングができる」「エクセルでいい感じの設計書を作れる」といったスキル的なものだけでなく、各工程の作業内容に関する知識や開発管理の知識等の広範的な知識が必要です。
SIer業界(いわゆるITゼネコン)に属している技術者の場合、基本情報処理技術者試験と応用情報処理技術者試験から学ぶのが知識の底上げの手段としては手っ取り早いと思っています。この2つの試験では、どの職場でも通用する知識をバランス良く身に付けることができます。
(ただし、この2つの試験だけでは不足する知識もあります。そのような知識をこのブログで紹介・提供できたらと思っています。)
 
仕事のできる/できないの話になるとどうしても精神論的な話になりがちですが、少なくとも専門的な知識・経験が問われる技術者の世界ではそうではないと感じました。