※本エントリは、自分の気持ちを整理するという事と、同じ様なやりきれない気持ちを抱えている人達に対して、何かのきっかけになればいいなと思い書きました。自分の不満の憂さ晴らしでもなければ、SIerで働く人達を否定するものでもありません(そんな低俗な事をするつもりは毛頭無いです…)。自分が現状の業界構造に疑問を覚えたのは事実ですが、それでもその中で正しい道を進もうと頑張る人達を心から尊敬しています。
2013年8月31日を持って、新卒で就職したSIerを退職しました。
2012年4月に入社してから約1年半、社会人としてのマナーやプログラマとしての基礎を教えて頂きました。
関係者の皆様、大変お世話になりました。
退職を決めた理由ですが、これといった契機があったわけではありません。
強いて言えば、下記の様な問題を考え続けた結果、転職という選択肢が自分にとって最善であると感じたという事です。
- 業界の方向性に疑問を感じた。開発をアウトソーシングしマージンを抜くといったビジネススタイルでは開発者が幸せになれないと感じた
- エンジニアとして生きていく上で技術から取り残される焦りを感じた
なんだか上手く言語化できないので、これまでの事を振り返ってみます。
今回感じた事は1年半しかいなかった自分が経験した、非常に狭い観測範囲での出来事に過ぎません。
「そういう風に考えていた奴もいたんだな」程度の気持ちで読んで頂ければと思います。「会社が駄目だ、終わっている」というつもりは毛頭無いです。
入社前
元々ネットサービスに関心があり大学の友人達とWebサービスを作ったりしていたのですが、大手SIerながら社内ベンチャーがあるというユニークな環境に興味を持ち入社を決めました。
当時社内ベンチャーの代表だった倉貫さんのブログを読み、衝撃を受けた事を覚えています。
学生時代の自分はネットサービス企業やベンチャーでアルバイトをしており、プログラミングはクリエイティブで楽しい物だと信じて疑いませんでした。
そんな折、倉貫さんの講演資料に「大学でやっていたプログラミングとSI企業でやるプログラミングは違う。みんな楽しそうにプログラミングしていない」と書いてあったのを見、「こんな世界があるのか…SIerとは一体何だろう」と初めて考えるきっかけとなりました。
それ以降、受託開発の未来を考えるイベントのスタッフをしたりして業界の勉強をしました。
@tenten0213さんには入社以降色々とお世話になったのですが、この時に初めてお会いしました。
仕事
入社後はいわゆる「製造工程」をメインに担当し、SEという肩書きながらプログラミングは割とさせて頂いていたと思います。
退職する数ヶ月程前からは新人研修をやったりして、JavaScriptの学習資料をSphinxで作成したりFessという全文検索サーバの調査・導入をしたりしました。
世間一般に「SIer(特に元請け)の人間は技術力がない」という様な事が言われていますが、幸いにも自分が配属された部署には技術に明るい人が多く、JavaやOracleに関して学ぶ所が非常に多かったです。
ただ、客先常駐の際になれる! SE程ではないにしても不遇な環境での開発を強いられたり、炎上している案件にいきなり突っ込まれたりする等、1年という短い期間でしたが色々と辛い事を経験したりもしました。
また、実際に現場に入ってみて「楽しくなさそうにプログラミングをしている人が多いな」と感じたのも事実です(少なくとも自分は感じました)。
設計は技術が分からない人がやったからめちゃくちゃだけどその通りに作らなきゃいけないとか、政治的な理由からアーキテクチャが限定されてしまうとか…。
顧客に価値を届ける為にソフトウェアを作っているというよりも、社内外の調整の結果として生まれた歪な枠にソフトウェアを当てはめている様な気がしました。
「自分は顧客に価値を提供できているだろうか」、という自問に自信を持ってYesと答える事ができませんでした。
更に、2年目からは自らコードを書く機会が減りマネジメントの機会が増え、このままだと技術者として取り残されてしまうのではないかという焦りもありました。
業務外では同期とGit勉強会を開催したり、インターネットでワイワイしたり、勉強会に同期を引っ張りだしたりしました。同期や先輩方には本当に恵まれたと思っています。
偉そうに書きましたが、仕事を通して残せた物は無いに等しく自分の無力さを痛感しています。
強いて言えばブログを書く習慣やインターネットを通して何かを発信するという姿勢に、興味を持ってくれた方がいたのかもしれません。
人月のジレンマ
昨今、SI業界に関してネガティヴな意見が多いのは、ご存知の通りです。「元請け企業の社員はコードが書けない」、「受託開発はもう終わりだ」等々…。
実際にSIど真ん中の現場に入って感じた事は、プログラマがシステム開発ヒエラルキーの最底に位置しているという事でした。幸いにも自分がいた環境はその限りではありましたが、業界として見ればその姿勢は否定できないのではないでしょうか。
人月(必ずしも悪だとは思いませんが)、一括納品のビジネスモデル、多重請負構造、ディフェンシブな開発体制(この辺りの思想は倉貫さんに強く影響を受けています)…パッと思いつくだけでもSIerの受託開発には多くの問題や矛盾が存在しています。
個別の問題に関してここでは言及しませんが、こうした問題が10年以上前から指摘されているにも関わらず、なぜ無くならないのか。
以前思った事を書いたりしましたが、それはひとえに、システム発注側がそうした体制下での開発を求める事が多いからだと思います。当たり前の事ですが、システムの受託開発は顧客側の姿勢に依存する点が非常に大きいです。発注側がシステムを作る事だけを求めたり、システム開発のリスクをベンダーに請け負わせるといったスタイルを続ける限り、SIerの現行ビジネスは、それが如何に批判の対象となろうともずっと続いていくのではないかなと。
未熟な頭で必死に考えた結果、上記の問題を解決する為には、2つの道があるのではないかと考えます。
- 永和システムマネジメントやソニックガーデンなど、新しい受託開発を提案できる環境に身を置く。リスクを丸投げしてくるような発注をそもそも受けない。
- ユーザー企業(敢えて幅広い言い方をしています)に身を置き、既存のSIではない事例を作っていく
今回、迷った末自分は後者を選択しました。
個人的には受託開発というビジネスは無くならないし、無くす必要もないと思っています。
人月や技術的制約といった問題はエンジニアが一度は通る道ですし、レガシーなアーキテクチャのネットサービスもあれば最新技術を使った受託開発もあるでしょう。
大事な事は、システム開発を通して開発者とユーザーがどれだけ幸せになれるかではないでしょうか。自分が見てきたような「IT土方」の様な人達が少しでも少なくなればいいなと思います。
そういう流れを作っていくには、社内で出世して機会を伺うのは自分にとっては途方もなく気の長い事の様に感じ、外に飛び出す事を決めました。
最後に
SIerでの1年半は思い悩む事が多く、必ずしも順風満帆とは言い難いものでしたが、ここで思い悩んだ事というのは後々自分にとってプラスになると信じています。
周囲からの期待も感じる中、この様な結果になってしまい関係者の皆様には申し訳ない気持ちで一杯です。
ですが、後悔無い様自分が信じた道を進んで行きたいと思います。開発者とユーザー、双方がハッピーになれるような現場が増えていけば良いと心から思います。
最後になりましたが関係者の皆様、今まで本当にありがとうございました。