ITエンジニアの進む道は多様
どんな職種であれ自分のキャリアパスは気になるところです。
キャリアパスとは、この先自分はどのような成長ができて、その結果どんな仕事ができ、どのような生活を送れるようになるか、ということですね。
自分の体験も交えキャリアパスについて考えてみたいと思います。
僕は大学を卒業して入った会社はよく名の知れた電子機器メーカーでした。
新卒から何でも任せてくれる会社で、製品作りにすぐに関わらせてくれました。
自分が担当した製品が、全世界で100万個以上売れると聞いたとき、うれしいというより「こんな自分にそれだけの確かな製品が作れるのだろうか?」と不安を覚えました。
しかし、その不安は一時的なものでひたすら製品作りに邁進し4年で3つの製品を世に出すことができました。
「俺だってやればできる!」
そう自信を深めていたときに、ふと気になったことがありました。
それは10歳年上の上司のことです。
経験豊富で信頼できる先輩としていろいろなことを教わっていましたが、その上司は10年経っても私と同じような製品作りに携わっていました。
その上司は根っからのエンジニアという感じの人で、その仕事を楽しんでいるようでした。
ですので、製品作りにこだわってやっているのは間違いないのですが、私の目には「10年経っても今と同じことをするのか・・・」という不安に映りました。
僕が携わっていた製品とは電子機器で、その中のプログラムを開発する仕事です。
当時ですら、世の中にはパソコンやワークステーションなど汎用化されたOSでソフトウエアを作ることが行われ始めていた時代でした。
「このまま小さな世界に埋没していていいのだろうか?」
入社4年の若造の頭にそんな不安が浮かんできていました。
思い切って転職
そんな不安から半年くらい経った頃でしょうか、プロジェクトも一区切りしたのを機に転職することにしました。
転職先はワークステーションの開発をしている大手企業です。
福利厚生も整っているとの評判の会社でした。
「より汎用的で大きな仕事に関わりたい」
そんな気持ちで転職を決めました。
私が4年いた会社も十分に魅力的で、1年1作程度のペースでいろんな製品作りに関われるのは何物にも代えがたい魅力でしたが、より長期的な展望でキャリアを変えることにしました。
長い目で見て、この転職は大成功だったと言えます。
転職は目標設定が大事
この転職が僕にとって大成功だったと言える理由は、「汎用的で大きなソフトウエア開発に関わり、推進する力を身につけることができた」と言えるからです。
しかし、これがわかるには15年から20年ほどかかりました。
前職では1人で開発する組み込み型の小さなソフトウエアのプログラマでしたが、転職先では数人〜10人以上の開発をするのでは求められる能力が大きく違いました。
特にプロジェクトの管理が厳格なことやその過程で生成される仕様書や設計書、検査の設計やその記録など、前職ではあまり重視されてこなかったものが必要となりました。
それらをひとつずつ身につけて自分でできるようになるには相応の時間が必要でした。
最初の頃は前職の経験が生きる仕事でしたが、自分でも徐々にやりたい範囲を広げていきましたので、そのたび壁にぶち当たるということが続いていました。
戦略的に能力を高める
ITエンジニアとしての経験が30年くらいになりますが、本当にこの世界にいて良かったなと思うのは、プログラマとしてのスキルを高めることを目指さず、外注マネジメントやプロジェクトマネジメントなど、プロジェクトの管理者としてのスキルを上げてきたことによります。
仕事で成果が上がったと思うのは、プロジェクトの目標が達成されたということより、お客さんが喜んでくれた時が最もうれしいです。
直接にお客さんがいなくても、商品が売れることで会社に貢献できればそれも良いです。
お客さんに喜ばれる、あるいは売れるためには、お客さんの困りごとを解決してあげることが大事で、それが実現されたとき感謝されたり売れたりします。
逆に言えば、プロジェクトは成功したのに(納期を守って作ったのに)、お客さんに喜ばれなかったり売れなかったら意味がないのでしょう。
そういうゴールを見失わないためにも、プロジェクトマネジメントはとても大事な役割になります。
言われたとおり作るプログラマから、売れるサービスを開発推進することができるスキルを身につけたプロジェクトマネージャになる、これができたからこそ今の僕があります。
プロマネができると強い
プロジェクトマネジメントができるようになると、いろんなことに役立ちます。
プロジェクトとはルーチンではない新しく取り組むことがらですので、世の中の多くのことはすべからくプロジェクトとなります。
プロジェクトマネジメントとは、こういったものに対して、「望まれていることは何か?」「どのくらいお金をかけられるのか?」「いつまでにほしいのか?」というようなことを整理して最適な解決策を出していく、ということです。
もちろん、その結果としてソフトウエアなりハードウエアを作る必要がありますが、最も大事なことはその目的を忘れずゴールに導くことです。
プロマネができて、その上プログラムも自分で書けるとより強いかもしれませんが、僕はプロマネとプログラミングは両立させなくてもいいと思っています。
というのは、プロマネはゴールや仕様をコントロールする必要があり、そのためには費用や納期が許す範囲でよりよいものを目指しますが、プログラマなど実装する人は少しでも楽になることを望みます。
つまりプロマネの目指すことと、プログラマが望むことは相反することも少なくないのです。
ですから、両方を兼ねると「本来はこうした方がいいけれど、プログラミングを楽するためにこうしよう」という妥協が働く可能性があります。
もちろん、プロジェクトを実現するには妥協も必要で、正論ばかり振りかざすと終わる仕事も終わりません。
そんなバランスの取れたプロマネを目指したいものです。