レベルエンター山本大のブログ

面白いプログラミング教育を若い人たちに

BLOCKVROCKリファレンス目次はこちら

誇りを貫くプログラマのキャリアパス

エンジニアの誇りを減退させずキャリアを積むためには、とっとと管理を極めて*1管理の仕事を他の人に振れるようにすることだと思っている。*2
あなたが管理を嫌ってもキャリアアップするにあたって管理という仕事は回ってくる。
管理という仕事に目を背け続けることは出来ない。
僕は、管理という仕事をエンジニアの終着点だと考える必要はないと思っている。
乗り越えるべき通過点なのだと思う。
エンジニアのキャリアアップの中でも管理職の乗り越え方を考える。


原則:エンジニアよ、管理職を超えろ。


会社側の論理で言えば、キャリアの長い人に高い給料を支払うためには、
その人が複数のメンバーの仕事を上手く回してくれなくてはならない。
会社がベテランに求めるのは、チームを引っ張っていってくれることだ。
当然、あなたが管理向きならば問題にはならない。
管理とリーダーシップは両立しやすい。しかし、管理系リーダーが全てではない。
リーダーがやるべきなのは“管理機能を提供すること”ではなくリーダーシップを取ることである。
もっというと、リーダーに必要な機能は“判断”なのだ。


原則:リーダーに必要な仕事は、管理でも運営でもない。判断だ。


だから、管理を人に任せてもあなたがリーダーシップを取ることはできる。
管理面で優秀なサブリーダーを見つけることだ。
あなたが信頼する後輩をサブリーダーにしておく、
後輩を育てる意味でも、後輩のモチベーションを高めるためにも良い。
このペアを作ればあなたは得意分野で能力を活用できる。
リーダーシップを取るトッププログラマと、管理面で優秀なサブリーダーのペア
リーダーシップを取るアーキテクトと、管理面で優秀なサブリーダーのペア
リーダーシップを取る業務エンジニアと、管理面で優秀なサブリーダーのペア
などだ。


しかし、判断に影響を与えるあなたが管理や運営について無知なら、その影響力はすぐに消え去る。
管理について、自分がやっても上手くいくけど、敢えて後輩に任せるというスタンスでないと、周りはついてこない。
だから一度、管理についてマスターしておかなくてはならない。
管理面で助言や判断を求められたとき、諸葛孔明のように的確なことを言う必要がある。


原則:管理については軍師のように振舞え。


一般的には、管理スキルは開発スキルとは異なるものであり、
開発スキルが高いからといって管理はできないといわれる。
まずは、この常識に含まれる呪縛を解こう。
恐れることはない。そもそも情報システムは「情報を管理する」仕事であり、
それを開発するエンジニアは、もともと管理というものに縁が深いのだ。
エンジニアに管理の適正がないのではない。
技術スキルだけを積み上げている人が、急に管理に回るからよくないのだ。
管理スキルの練磨がされていないのにイキナリやっても成果は出ない。


原則:エンジニアが管理に向かないという常識の呪縛を超えろ。


管理能力に苦手意識を感じないようにするためには、開発スキルと同時に管理スキルを磨いていかなくてはならない。
つまり、管理能力を別物とせず、開発能力の一部でありエンジニアに必須のツールだと考えるべきだ。
集団で物づくりをするソフトウェア開発という仕事では、人を動かして成果を出すという仕事は必ず発生する。
後輩が書いた「エンジニアがタイトル買い、著者買いすべき本 - Fight the Future」でも、実は多くが管理・運営論を含んだ書籍だ。


原則:管理のスキルは、エンジニアの道具箱に必ず入れておくべきツールだ。


管理がエンジニアの終着駅であるならば、エンジニア35歳定年説を超えられない。

*1:管理について自分のノウハウを確立して

*2:ここでいう管理とは、プロジェクト管理である。管理にもプロジェクト管理に中間管理、トップマネジメントと種類がある。ここに見られるジレンマはまた別の話