メソッド屋のブログと言うブログの「技術なきマネジメントの衰退とその対策」
と言う記事を読みました。
技術至上主義と言うか、マネージャーだろうが、幹部だろうがソースをかけない人間はエンジニアに非ず!
と、少々強く書いているブログです。
僕も基本的には概ね同意です。システム作るのを生業としているんだから、技術(どんな言語でも良いけれど最低一つの言語でコードを書ける)を持っていてほしいと思います。
ただ、このブログって、マイクロソフトとか、楽天とか、基本的にBtoCの仕事をしているんですよね。
なので、エンジニアの技術が新しいサービスを生み出し、会社に利益をもたらします。技術力=利益に結びつきやすいんですよね。
しかし、日本のSIerと呼ばれる大企業はBtoBで仕事をします。数十億円規模のシステムを人をかき集めて構築する訳です。
そうなると、技術だけではなく、お金の管理に詳しい人も必要になります。
正直マネージャーはお金の管理をして、進捗報告を聞いて遅れているチームに「なんで遅れてるんだ!挽回策はあるのか!」と言ってればなんとかなります。
まぁ、事務員でも出来る作業ですね。皮肉ですが。
そういう会社に限って、査定のKPI(目標)に売上金額、損益位しかないんですよ。
日本の大企業って圧倒的に技術を評価しないんですよ。
営業だったら、売上金額
研究職だったら、論文や特許の数
システムエンジニアだったら損益なんです。
そこに、技術の”ぎ”の字も出てきません。
(Gitのcommit数なんかもまだありません)
海外は技術至上主義に進んでいると思います。今日もシリコンバレーあたりでイカしたサービスがスタートアップしているのではないでしょうか?当たるかどうかはわかりませんがインターネットの時代になり、サービスを作ってGoogleとかAmazonに買収してもらうビジネスモデルだって多く存在しますからね。
そもそも、海外のエンジニアと日本のエンジニアって違うんですよね。
日本のエンジニア(と言うかプログラマ)はIT土方と呼ばれるように、仕様書が上から降ってきて、それをプログラミングしてテストするんです。それだけ。
新しい事は一つも考えないし、なぜこのようなロジックなのか考えようとしない。
まぁ、その仕様書を作っているのはもうちょっと上位のエンジニアなんですけれどね。ここはまだ救いがある。言語を知らないと仕様書かけないですからね。
でも、それは書けて当たり前。生産性(あえて言うと、知的生産性)は見られません。
Aさんが、月に2本仕様書を書ける能力があり、
Bさんは、月に4本仕様書を書ける能力があったとします。
(1本の仕様書のボリュームは一緒と仮定)
この場合、AさんもBさんも基本的に同列とみなされます。下手すると、Bさんは「Aさんのフォローして」ってまでリクエストが来るかもしれません。
この状態のおかしいところは日本の給与体系にも大きく依存しています。
この例で行くと、普通に考えたら、BさんはAさんの2倍の給料をもらっても誰も文句は言わないはずです。
でも、そんな個人別に給与体系を付けていたら会社が回らない。給与計算の正当性が保てないのです。(まぁ、人事部の怠慢ですが)
なので、大きなクラスをいくつか作り、その枠にはめます。この場合、AさんもBさんも仕様書は書けるので同じクラスです。
まぁ、せいぜい、ボーナスの査定位は変わるかもしれませんが、先ほど書いたように技術に対するKPIが無いので、ちゃんと現場で上司の人が見ていないと正当な査定はできません。
後は、日本にはベア(ベースアップ)はあるけれど、一度上がった給料は下がらないと言う昭和の感覚のままいます。会社が好調でベアをすると、不調の時にもその給料を払わないといけないと言う風習。なので、極力、会社はベアを拒み、ボーナスなどの一時金で補てんします。
年功序列とかも関係してきますよね。「入社年次が古いから偉い。給料もらって当然だ」なんてのは昭和の悪しき習慣です。老害と呼ばれたら去るのみです。
と、少々愚痴が長くなってしまいましたが、現状の日本のSIerは、「技術なきマネジメント」がまかり通っているのです。
僕が新人の頃は課長や部長もデバッグをしていました。僕は「あんな偉い人もソース見るんだ」なんて思っていたのですが、それがあるべき姿だったんですよね。
でも、時は経ちそういう人たちはもっと偉くなってしまいました。そのあとの部課長は数字しか見ていない感じがします。
さて、「その対策」の部分で、ブログではMob Programmingが挙げられています。この考えは僕は素晴らしいと思います。大体、大手のベンダーなんてペアプログラミングもしませんから。
OJT(On Job Traning:仕事を通じて学ぶ)なんて綺麗ごとで逃げますけれど、出来る奴と出来ない奴の技術の差は開いていくばかり。でも、給料は…先ほどの同じプログラマと言うクラスに収まってしまうんですよね。
僕は、もう24年間も1つの会社にエンジニアとして所属しています。別に偉くもなっていません。係長レベルです。
沢山の火を消し、沢山の新人教育を行い。パワハラ上司に心を壊されただけです。
そんな僕の経験から言うと、「伸びる奴は(基礎を教えれば)勝手に伸びるし、伸びない奴は何回教えても伸びない(学ぼうとしない)」です。悲しいですけれど、これが結論。
よく考えてみれば、僕も社内にプログラミングの師匠なんてのは一人しかいません。ほとんど自分で考え、沢山のトライ&エラーを繰り返し、本屋に行って役に立ちそうな本を自腹で買っていた物です。
なので、この僕の技術を一番簡単に伝えるのに、Mob Programmingはとても有効なのだなと思いました。別に評価なんてされませんが、やっておかないと僕の部署がダメになります。
更にいうと、Mob Testing、Mob Debuggingまでやっていきたいと思います。これらは、会議室とってプロジェクター準備するだけで良いので、変にお金がかかりません。
そして、その中で新しい気付きを持った人が、また後輩たちにMob Programmingをしていく。プログラムは一子相伝の世界に近いですが、これは非常に効率的に生産性をn倍化させる事が出来ると思います。
ただ、それを僕の代で終わらせるのではなく、下の世代が受け継いでくれればですけれどね。
サラリーマンエンジニアとしては悲しいところでもあります。