業務知識と技術

エンジニアは技術よりも業務知識の方が重要だということを昔からよく耳にした。
ただ、自分がWeb業界で長らく仕事してきてプログラミングなどよりも業務知識の方が重要だと実感したことは正直無い。もちろん、歴史があるサービスにおいてはそのサービスの仕様に詳しい方が断然有利ではあるがこれがポータブルなスキルかと言わればそうではない。では何故業務知識の方が重要だと言われるのか考えてみた。

業務知識がより重要なのはSIer業界だろう。例えば、金融システムの構築などは各社それぞれ微妙に業務内容が異なっているが法律でクリアにしなければいけないシステムの箇所は基本同じである。また、バッチ処理などの大変さも各社によって規模の違いはあれ同じである。
つまり同じ業界に対して同じようなシステムを作るのであれば業務知識は非常に貢献する。

反対にWeb業界やスタートアップのサービスは基本的にはニッチなサービスを作るので、そこで得た業務知識を他社に展開するのは非常に難しい。出来るとしたらマーケティングやデータ分析では業務知識を横展開できるのかもしれないが、業務知識は難しい。そのため、Web業界やスタートアップのエンジニアは最新技術の取得によって差別化するのでオーバーエンジニアリングをしがちである。

業務知識と技術の違いは

こう考えると業務知識は経験であり、技術は専門性である。経験は運にも左右されるため誰でも身につけられるものではない。反対に専門性を身につけるのはポジショニングの問題でもあるので全員に比較的チャンスがある。経験を活かせれば大きなホームランを打てるが時代遅れになったり、むしろ経験に縛られて動けなくなるリスクもある。反対に技術は内野安打ぐらいのレベルであるが、技術は螺旋階段のようになっているのでこれはと思った技術が例え流行らなくてもその後活かせることは結構あったりする。

業務知識と技術の両方伸ばすのは難しいし、それに両方伸ばしても中途半端な人間になってしまうのではと考えている。

経験は業務知識だけなのか

上では業務知識は経験と書いたが、あくまで経験の中にある一部でしかないと思っている。経験というのも結局あやふやなものではなく、言語化できることが重要だったりする。他にも以下のことが該当する。

  • 人数拡大におけるエンジニアの組織設計
  • エンジニアの評価基準の設計
  • 経営面から見たエンジニアリング意思決定
  • 採用強化

こう考えるとWeb業界での経験というのはCTOぐらいにならないとあんまり差別化できないのではと考えている。また、こういう知見こそ顧問としての力を発揮できると考えている。これらは一旦決めると後戻りは難しいしので、とりあえずやろうで何とかなるものでもない。