nekoTheShadow’s diary

IT業界の片隅でひっそり生きるシステムエンジニアです(´・ω・`)

キャリアについて少しだけ考える

プロジェクトが火を噴きまくっていて、それを収めるのに2-3か月かかり、ようやく人間らしい生活を取り戻したと思ったらもう5月も終わりである。第1四半期の終わりも見えてきた段階で、マネージャとの面談がセッティングされてしまった。自分の年次的にいって、キャリアの話を求められると思われる。

各人に好みの方法はあると思うが、わたし個人は自分の思考を整理するうえでは文章にすることが多い。他人に読んでもらう体で文章を書いているうちに、自分の考えがはっきりまとまってくる。矛盾や堂々巡りを発見しやすいし、読み返す中で新しい発見をすることもある。たまには意外な結論に文章が向かうこともあるが、それも悪くない。文字に起こす時間がかかるが、必要なコストと割り切るほかないだろう。


わたしはいわゆるSIerに勤務するシステムエンジニアで、年次的にはぎりぎり若手。自称新人といいかえてもいい。SIerといっても規模は大小あるが、わたしの勤務先は非上場だが、比較的大きいほうである。プロパーの立場に立つことが多い(90%ぐらい)が、売り上げや利益的には中堅規模だと思う。まあ典型的な大手SIerといってよいだろう。

さて弊社ではいわゆるシステムエンジニアというのは見習い・前座的なロールと考えられていて、ある程度年次を経ると次の3つのロールを目指すことが求められる。

  1. コンサルタント
  2. プロジェクトマネージャ
  3. ITアーキテクト

コンサルタントというと、戦略コンサルや人事コンサルを思い浮かべがちであるが、ここはSIer。要はITコンサルであり、ITプロジェクトの超上流、たとえばRFPを書いたり、要件をまとめるべくヒアリングを行ったりが主業務となる。

次にプロジェクトマネージャ。これはいうまでもないだろうが、「管理」を生業にするロールである。たとえば人的リソースをやりくりしたり、QCDを調整したり。PJTを成功させるも炎上させるもかれらの腕次第であり、責任は重大であるが、その分やりがいも大きいらしく、SIer(というか弊社)では花形のロールである。

最後にITアーキテクトだが、個人的にはこれがもっとも謎。ほとんどコンサルタントのように走り回っているものもいれば、ひがなDBのチューニングをしている人もいる。「ITの専門家」というようなあだ名(?)を付けられがちであるが、まったくコードがかけず、一日中Excelとにらめっこしている「ITアーキテクト」も少なくない。コンサルタントやプロジェクトマネージャよりは「技術」的なことをするひとをひっくるめているだけともいえる。

自分がなるとすればITアーキテクトだろうか? ただし消去法ではある。コンサルタントは論外。これは技術的な仕事で日銭を稼ぎたいという個人の希望もあるが、個人的な経験としてコンサルに好印象がない。多くは語らない、というか語りだすと1日2日では終わらないが、ひとつつだけ述べておく。やつらは余計な仕事を増やすだけである。

技術に明るい、あるいは関心があるプロジェクトマネージャというのもいいかもしれないが、そうはいっても弊社は大企業。要は金額的に大きいプロジェクトが多く、そのようなプロジェクトではプロジェクトマネージャは種々の「管理」で手いっぱいで、とても「技術」に関与している場合ではない。あとは個人的な志向として、ソフトウェアプロセスや要求工学のようなプロジェクトマネージャらしいジャンルに関心がないという点でも、不向きであろう。

となるとITアーキテクトが残るが、あまり気が向かないというのが正直なところ。なかでも気に食わないのが、彼らがよく使う「支援」という単語。ITアーキテクトのプロフィールを読んでいると「DBWの支援」「アプリケーション設計の支援」のように「支援」という単語がよくあらわれるのだが、わたしは別に「支援」をしたいわけではない。「支援」という発言の裏に「おいしいとこどり」というニュアンスが感じられ、普段から「おいし いとこどり」ばかりしている人は、つらい時にすぐ逃げ出すのでは?(本当につらいときに逃げ出すのはかまわないが……)

また大手SIの常として、年次が上がるとコーディングから遠ざかりがち。プログラミングが面白いと思ってIT業界にやってきた(流れ着いた?)身としては、技術に近い立場とは言え、プロダクションレベルのコードが書けなくなるのはたいへんつらい。事実ITアーキテクトでありながら、FizzBuzzすらかけないという人は現実にいて、そんな人でもなりたつ「ITの専門家」って何だろうかと思わなくはない。


技術的なロールについたとして、では何を専門として生きていくのかという問題もある。よく「アプリかインフラか」といういいかたがなされるが、話はそれほど単純ではない。アプリだといわゆるサーバサイドがもっとも人口が多いと思うが、最近はフロントエンドの需要も高い。個人的な観測範囲だとAngularJSの案件が多く、経験者はひっぱりだこと聞く(Reactは少ない--なぜ?)。またアプリはアプリでもスマホアプリはサーバサイドやフロントエンドとは別次元のスキルが求められる世界である。

インフラにしても細分化されており、仮にサーバひとつとってみてもメインフレームにホスト、WindowsAIXLinux。ひとくちにLinuxといってもUbuntuやらRedhatやらCentOSやらと種類はさまざまある。最近はクラウドがさかんだが、これはいわゆるオンプレとは別の知識が必要らしい。ほかにもネットワークやハードウェアの構築や保守もインフラといえるし、また絶対数は少ないがDBAもインフラエンジニアといってよいかもしれない。

弊社のようなロートルSIerでも自動化をちらほら聞くようになってきたが、これはアプリ分野でもインフラ分野でもある。VMWareのような仮想化、Dockerに代表されるコンテナ技術はインフラかしら。セキュリティエンジニアというのもいるが、これはアプリともインフラとも言い難い独自のジャンルである。先鋭的な企業だとSREにとりくむところも増えてきているが、これはインフラやアプリという垣根はおろか、DevやOpsまで横断するような役割らしい。最近流行しているのがデータサイエンティスト。弊社でも専門の組織ができたとか作るとか、うわさは聞こえてくるが、これはインフラとかアプリとかの前に高度な数学や統計学や物理学の知識が必要になるようだ。

いろいろなジャンルを書いてみたが、自分が携わったなかで何が楽しかったのかを振り返ってみると、まずはプログラミング。Webアプリよりはバッチのほうが好きです。あとはLinuxとそこにインストールされたミドルウェアをさわっているとき。CUIでコマンドをぺちぺちたたくのが無上の喜びである。あとはちょっとしか携わったことはないが、DBAは楽しくやった記憶がある。SQLチューニングやバックアップ管理は地味だが、なかなかやりがいがあったように思う。

--というと、サーバ管理系を志向するのがよいのかしらん。ただし、いまや銀行の勘定系をクラウド化するご時世である。コンテナ技術やインフラ構成の自動化もあって、サーバ管理者の需要は間違いなく減っていく。仮想化や自動化に強ければ生き残っていけるかもしれないが、ただ世の中には「一日中playbookを書いていてもまだ足りない」「美しいDockfileを書くことに生活のすべてをささげている」という狂人が多数いて、それに太刀打ちできるかといわれると、黙らざるを得ない。

DBAもありかもしれない。サーバ管理系よりは息は長そう。またアプリ、というかプログラミングのスキルも生かせそうではある。ただ、日本だとDBAの需要は少ないのがネック。保守運用のおまけ程度にいるのはまだよいほうで、DBA的ポジションが全くいないプロジェクトというのも珍しくない。

需要と将来性を考えると、サーバサイドが一番望みは高いのだが、スパゲッティコードとはもう戦いたくないでござる( ノД`)シクシク…


正直なところ、技術的なことをやっていれば幸せというたちで、多少ひどい環境でもプログラミングやサーバ作業ができれば十分満足。キャリアやスペシャリティといった「難しい」ことはあまり真剣に考えてこなかったのだが、そうもいっていられない時期が近付いてきたのかもしれない。ただ「いろいろやらされているうちに、何か面白いこと・得意なことが見つかるかもしれない」と思う自分もいて、なかなか自分の人生の道筋をつけられないでいる。

自分のキャリアは会社が用意してくれるわけではなく、自分で切り開くほかない。よくいえば楽観的だが、実際は流されているだけ。これはまずい。終身雇用制が当たり前の高度経済成長期ならまだしも、わたしが生きているのは新自由主義と自己責任の21世紀日本社会である。自分の人生について--というとやや大げさだが、自分のキャリアについて、ちょっとはまじめに考えにゃならんと思ったのが、この記事を書いたきっかけの一つなのかもしれない。ただその結論があいまいなところに落ち着いてしまうのはどうなのかしらん(´・ω・`)