読者です 読者をやめる 読者になる 読者になる

負け犬プログラマーの歩み

負け組だった人間が今一度PGとして人生の飛躍を模索するも加齢と共に閉ざされる未来に直面しているブログ。

エンジニアから見たSIerがクソな理由

少なくとも90%以上のSIerはクソだと思っている。

もちろん、これはポジショントークだ。SIerの中の人なら「SIerは最高だ」と言うだろうし、エンジニアをWeb系に売り込んで紹介料を稼ぐ転職エージェントなら「SIerはクソだ!Web系こそ至高!」と言うだろう。そして中立的な第三者であれば、一歩引いて日本にとってSIerは必要悪なのかどうかという視点で語るかもしれない。

しかし俺はエンジニアであり個人事業主だ。その上「技術的にはそこそこかもしれないが、人間としてはクソ」という特徴を持つ。だからこんな世渡りが下手な人間にとって便益があるかどうかという狭い視点でしか語れない。これが一般的な観点と言われれば否かもしれない。

それを前提で書かせてもらうと、よほど未熟でもない限り、エンジニアがSIerで働くのは時間の無駄だ。

なぜなら、SIerとはエンジニアの為の組織ではないからだ。

SIerの主役は言うまでなく正社員のSE、リーダー、マネージャー勢である。実際にコードを書くエンジニアは外部から連れてきた人間であり、SIerのプロパーには「コードを全然書けない or 読めない人間」というのは珍しくない。金を稼いで仕事をする題材がたまたまITだっただけで、特にプログラミングが好きでもない。

だから彼らは別にゼネコンでも商社でも良かった訳だ。要は企業の中に割り入ってピンハネできる構造、一部の人達の上に立って搾取できる力が欲しかっただけで、SIerに流れ着いたのはただの成り行き。特に業界の事なんて考えてないし、自分達にとって「養分」的な立場のエンジニアなんて更にどうでもいいと思っている。

仮にエンジニアがSIerにとって社外の人間であっても、互いがウィンウィンの関係で有ればいい。しかし実際のところ、エンジニアがSIerで働いて利を為すことは極めて限られている。よほどの低スキルならともかく、「SIerで働いてキャリアの無駄だった」というケースは当人の能力に加速的に比例して増えていくのだ。

そんなSIerを項目ごとにエンジニア視点で見てみよう。

SIerの技術水準

低い。実際にプログラミングをする側の人間の立場で考えることができないし、とにかく安全重視だから、「枯れたもの」「過去に実績のあるもの」を使いたがる。もちろん「コードも書けて技術アンテナも鋭くてエンジニアの視点で語れるSE」も確かにいることはいるが、残念な事に絶滅危惧種だ。

なぜSIerはエクセル方眼紙を愛するのか。今時ドキュメントを作るにしてもより効率のいいものが「探せば」有るのにだ。それは、探すのが面倒くさいし、誰にでもExcelは扱うことができるし、古来よりExcelを使い続けてきたという歴史と実績があるからだ。

なぜSIerにはテストコードやCIを導入する職場が少なくテスト項目をExcelに書いて手動で実施するのか。それは、テストコードは実装に強く依存してるからエンジニアにしか書けないし、テストコードがない以上CIを入れるメリットもないし、画面触ってエクセルを弄るのは誰にでも出来るからだ。

単純な技術レベルが低い事に加えて、SIerで作るシステムやサービスは、作る題材や内容的にもおもしろくない。SIerB2BやB2Gが中心なので「良いもの・新しいもの・斬新なもの・凝ったもの」を作っても貰える金は増えない。最初に契約した金額から基本的に動かないので、むしろ頑張ることに意義などなく、いかに手抜きをするかが大事なのだ。その手抜きには「エンジニアに払う金を減らす」というのも当然含まれる。

エンジニアとはプログラミングにおける「スキル」「センス」「経験」で勝負するものであるが、SIerはプログラミングをしないのでスキルやセンスなど磨きようがないし、トレンドに対するキャッチアップもできない。ゆえにSIerは「経験」のみで勝負する傾向が強い。それが「前例踏襲」「旧態依然」「陳腐」「周回遅れ」「退嬰」と言ったSIerの特徴となる。

エンジニアというのは技術を養ってなんぼだ。「給料は安いが技術を研鑽できる職場」というのも選択肢としては大いに有りだが、それだからこそ逆に技術を磨けないSIerは回避しないといけない。

SIerから貰える給料

残業もそれなりにあるという事情からSIerの正社員が貰える給与は低くない。30代で1000万超えも普通にいる。

ただ、エンジニアがSIerから貰える給与は高くない。SIerにとってエンジニアというのは「外部の人間」であり、有限契約だから育てる意味などない(その癖「できるだけ長期で働いて欲しい」とかほざくが)。エンジニアに対する給与などただのコストに他ならないので最優先削減対象だ。

しかし、給与が低い最大の理由はSIerで与えられる仕事の程度が低い事だ。SE達のレベルに合わせないといけないし、エンジニアをいつクビにして別の人間に入れ替えても済むように「その人にしかできない仕事」はあまり作らないからである。誰にでも出来る仕事というのは当然なことに高い給与は貰いにくいのだ。

SIerは「技術」を評価して買ってるのではない。自分達が掌握できる程度の仕事を忠実に正確にやってくれそうな「セーフな人材」を買っているのだ。そこに勤怠がよくて月に最低40時間、長くて80時間残業もできれば尚良しとなる。技術力など二の次、三の次である。

具体的な数値を挙げると、俺がSIerで働いていた時の年収は192万、240万、480万、520万のいずれかだったが、今は桁が1つ違う。もちろん派遣社員から自営業化して厚生年金が無くなったとか、給与所得控除がないからサラリーマンに比べたら少し税金が高いとかは考慮しないといけないが、SIerでこの金額を貰うには毎月400時間は働く必要はある。

また俺は1つの現場に1年以上、最長3年いたこともあるが、1度たりとも昇給を受けたことはない。高い給与を貰えていたならともかく、時給2150円という平均的な派遣エンジニアより低い賃金だったのに1年働いたあとに昇給を要求しても断られた。それで現場のレベルも低いことだし、辞めたいと告げたら「そこをなんとか!」と半年無理やり半年も延長させられたりな。

社会人というのは金を稼いでなんぼだ。「技術はつかないが給料は高い職場」というのも選択肢としては大いに有りだが、それだからこそ逆に金をくれないSIerは回避しないといけない。

SIerの環境

SIerは技術レベルが低いので、開発言語、フレームワーク、ライブラリー、外部サービスなどが周回遅れのものを採用しているのは言うまでもないが、それ以外での環境面も劣る部分がある。

「社員ひとりひとりが快適に働ける環境を作って、個人の生産性を上げよう」というのは何処の会社も考える事で、SIerも決して例外ではない。しかし、SIerにとってエンジニアは「社員」ではないし、むしろ自分たちが首根っこを掴んで働かせている人間だ。殆どが直ぐ辞めるし、自分たちもあっさりクビにできる。だからエンジニアに用意する環境は良くない。

例えば、協力会社の社員が本番サーバーにアクセスするにはISDNのクソ回線、もしくは踏み台サーバーを何重も経由とかいう制限を与えたり。一部のサイトを閲覧禁止など(SNS含む)を行うが、その癖FacebookTwitter APIを使えとかほざきやがる。Gmailも使用禁止なのに代替SMTPサーバー用意しないとか。

開発機材も渋い。OSも基本的にWindows固定だが、2015年になっても1280x768のメモリ4GBのノートパソコンで仕事をさせるとか普通。少しでもできる現場ならMacBookに外部ディスプレーが最も多いのだが、SIeriOS開発をしない限りOSXなんて使わない。サーバーすらWindowsなことも。別にWindowsが駄目とは言わんが、世の中のプログラミングはLinux/Unix中心で回っていて、Windowsは後から移植されるプラットフォームなのだ。

またスマホタブレット対応をするのに備品として購入するのを拒み私物のもので確認させるSIerもある。担当者どころか、現場のエンジニアが誰もiPadを持ってないのに「この画面を今月のリリースでiPad対応しろ」と言ってくる現場があったから、近くのソフトバンクショップに行って展示品のiPadで泣く泣く確認したり。

服装は大体30%ぐらいのSIerが「男はスーツ。女は自由」というルールを設けている。GLAYTakuroみたいな顔をした50過ぎのババアが金髪ミニスカハイヒールで香水プンプンさせてもお咎めなしだが、男は清潔感命で、茶髪もピアスも駄目なんだって。

致命的なのは「常駐」だ。最近は毎日でなくてもリモートで勤務ができる会社が増えているし、現に今はフルリモートだ。SIerは仮にリモートを認めても正社員のみ、雇われのエンジニアは完全常駐強制だ(しかもこれは実は違法になるケースが多い)。他人の職場に間借りする以上、窮屈な思いをしないといけない。

常駐先も異様にルールが厳しい所もある。たとえばトイレが混んでいるからって自席のある階以外のトイレを利用したら減点というルールが有った。たとえ、会議室用の階で自分達もたまにミーティングで利用していても(そうでなければそもそも階に入れない)容赦無くNG。最終的に俺はその減点が5点だか貯まって現場から退場(解雇)となった。

SIer達の人格

SIerには傲慢不遜で実力の癖には自己評価の高い奴が多い。

「ITはこんなもの」という狭い世界感で積み重ねた納入実績が無駄にあるから、そこで思考が停止して進歩することが難しくなっており、見識の底も浅い。知識もない癖に何でも自分たちの掌中に収めようとする傾向があるため、要らぬ制限や負の遺産となる判断ミスを現場に持ち込み、そして学習能力がないからそれを繰り返す。

極めて利己的であり、表向きは「クライアントは神様」と謳いつつも、実は神様のように考えてるのは自分達のことだけ。聞こえない所でのクライアントに対する愚痴だけは一丁前。雇ったエンジニアの事なんて完全に「下級労働者」として見下している。

我々は本来は「外部から招聘された専門家」であり、むしろ我々が「お客様」としてSE達から三顧の礼で迎えられるべき側なのであるが、先に述べたように、SIerは技術ではなく人を買うレベルにまでシステム開発を矮小化させているため、我々は専門家どころか、ただの単純作業を遂行する土方程度の立場でしかない。

愛社精神とプロジェクトに対する献身はすごいものがあるが、それを自己犠牲の範疇に留めるならともかく、「会社やプロジェクトの為ならエンジニアが犠牲になっても仕方ない」と平気で考えている所に寒気を覚える。同じ人間同士なのに、片や大義名分を振りかざして来るのだから。

それでもエンジニアに対して露骨に粗暴な物言いをするSIerは1割未満。でも酷いところは本当に酷い。日●も酷かったが、まだ契約が残っているのに、月末の21時に「明日から来なくていいよ」と言い出し、「お前の端末データとか消しておくから」と言って入館証も取り上げて追い出すような会社も。建築業界と変わらんだろう。

でもたとえ態度は丁重でも、ごく自然無垢にエンジニアの事を下に見ている人たちが一番質が悪い。

例えば、技術レベルが低く、給与も低く、労働環境の悪い●C●Kという会社で働いていたとき、愛想を尽かして「もう辞めたい」と言ったら、「(来年4月には新入社員が入るし、年度末の査定があるから)3月までは続けて欲しい」と無理強いされた。

こういう「お前に幾らメリットがなくても、俺たちのために犠牲になってくれ」とナチュラルに言える所に、SIerとエンジニアは決して分かり合えないものだと絶望したものだ。

SIerでの人間関係

SE

エンジニア

という縦の関係については言うまでもない。エンジニアの平身低頭だ。

しかし「横の関係」、つまり共に雇われた同僚エンジニア達とは結束して仲良くなれることも多い。たとえ所属会社が違う一期一会の関係であっても、同じ「下級労働者」同士の連帯感があるからか時には同僚以上の関係になることも。

ただ、正直SIerで働いてるエンジニアには劣等生も多い。たとえ才能に恵まれなくとも技術やセンスを養うという意欲すら欠けており、そもそもプログラミングが好きじゃなく、平均以下の能力しか持ててないので、結果的にスキルの問われにくいSIerで働いてるという向きがやや目立つ。

実際、俺はSIerで同僚に感化された試しがない。キャリアの初期ならともかく(いや初期でも「それは違うだろ」ってのは多かったが)、中期からは俺よりプログラミングができる人間にSIerで巡り合った事は一度もない。これは決して(断じて)俺が優れてるからとか自己を過信してるからというより、単にSIerで働くエンジニアの技術水準がそんだけ低いってことだ。俺自体は精々中より上程度だ。

俺という人間を客観的に捉えると「技術的にはそこそこだが、人間としてはクソ」となる。人間としてクソな部分を技術力で挽回できてないから、こんなに人生で苦労してるのだ。ところがSIerで働いているエンジニアはただでさえ技術的には平均未満なのに、性格的にも肯定しにくい奴らがいる。

ストレスが溜まる現場で安い給与で働いてるので、そりゃ性格も捻じくれよう。しかしそれを考慮してもなお、実力の割には無駄に自尊心や自己評価が高くて、明らかな瑕疵・改善点があるのに「これを修正してくれ」と言われても不機嫌になったり、他責癖があって自分が混ぜ込んだバグを人のせいにするような奴が目立つ。

思うにアルゴリズムの着想とかよりも、コードの貼り合わせや他人の世界観(フレームワーク)に頼る事が多い実務プログラミングにおいて、成長というのは、「問題解決能力」「言語、APIの知識」だけでなく、「如何に他人の価値観を認めて自分に取り入れていくか」という姿勢でもあるんだと思う。彼らにはそれが欠けていたから、エンジニアとしても人としても成長できなかったのではないか。

子は親の鏡と言うが、SE達の下で働くようなエンジニアはSEも似る運命に在る。結局、純粋な技術や能力で勝負することができなかった以上、「プログラミングなんてこんなもの」という諦観を持たざるを得ないのだろう。

また、SIerで幾ら働いて「その職場限り」の友達や知り合いを作ってもそこからキャリアの発展はしにくいと思う。彼らはエコシステムに貢献しておらず、エンジニア同士の知り合いや友達が多い訳ではない。いわゆる「知人のつてを使って転職」というパターンは望みにくい。

長老

SIerのプロジェクトには必ず一人ぐらい「年齢と自尊心とそのプロジェクトでの参画期間だけは高い」エンジニアがいる。彼らは、他人に完全には共有されていないプロジェクトの仕様や過去の歴史について詳しいので、SE達からも一目置かれる存在であり、時には客先にSIerの社員として名刺まで渡されて打ち合わせに向かう。本人もそれを知ってか態度がややでかい。

ざっくらばんに言えば、クソコードを大量に書き散らして現在進行系で負の遺産を作り上げてるのが長老。もし当人にしかメンテが出来ないように敢えてクソにしているなら策士であるが、単価も俺たちと比べて精々月10万高い程度なのでそれもなかろう。

で、俺はいつもこいつらと折り合いが悪い。露骨に喧嘩をしたことこそないが、この長老どもは基本的に技術力が低いし、俺達の足をいつも引っ張っている。SIerで一つのプロジェクトに何年も参画している時点でお察しなのであるが、長老に与えられる権限と本人の力量が釣り合ったケースなど一つもない。

SIerでのやり甲斐

仕事のレベルが低い以上、やり甲斐など少ない。ここに加えて更に致命的な問題がある。

どの職場にも起こり得る事だが、特にSIerはタスク配分が下手くそなので「仕様が固まるまで待ち」という状況がよく発生し、すごく暇なことがある(その癖、納期は動かないから後で残業地獄)ウォーターフォール式だから、SE様がお仕事を終わらせない限り、我々はなかなか仕事を巻き取れない。ゆえに時期によっては本当に仕事がない。

しかし、SIerというのは常駐強制で、また私的なネット閲覧、スマホ使用などを禁止する事のみならず、プロジェクトとは無関係なコーディングも禁止されている。ソフト●ンクとかは実際に協力会社の社員のHDDを監視して数時間で通報するシステムがあり、実際にそれでクビになった事がある。

出社する以上、早退する訳にもいかない。よって「仕事がないのに一日中定時まで席に座っている」という状況が発生するのがSIerであり、更に悪いことに、その頻度は本人の能力にまさに比例する訳だ。要領が良くて技術力にも優れてる人間なほど、さっさと仕事を終わらせてしまって、仕事がなくなってしまう事になる。

これは、もう「時間の切り売り」に等しい。我々は多少のお金を貰えるからって無駄に窮屈で退屈な時間を時間を過ごせと言われてるのだ。刺身の上にタンポポを載せていた方がまだ生産的だろう。

しかしエンジニアには権限も裁量も理解も少ないから仕事を増やせない。仕様はお客とSEが決めるものでエンジニアから「こんな機能どうですか?」という提案はできない。これがB2Cならまだ下からの意見を掬う風通しはあるかもしれないが、B2BとかB2Gのプロジェクトにそれは到底期待できない。

では技術面で仕事を増やすのはどうだろう。SIerのプロジェクトはレベルが低いからこそ大きな伸びしろもあるというものだが、仮に「ほぼ完全互換なんだからバージョンアップしましょうよ」とか「こんなライブラリを追加しましょう」とか「CIを導入しましょう」とかエンジニアが提案しても聞いてくれることはなかった。

技術力のある人間ほど空虚な時間を過ごすというのを目の当たりにすれば、もう我々は技術を買われてる訳ではなく単に飼われているだけに過ぎないと分かる。

SIerの良いところ

とまあここまでボロクソに書いたが(まぁクソをありのままに書いても「これはクソです」にしかならないが)、どんな人間にも良いところは探せばある。SIerもまた然り。SIerが嫌いで「SIerはクソ」という結論有りきで書いてると言われても仕方ない俺でも、多少の塩ぐらいは送ることはできる。何故なら俺はSIer育ちだからだ。

平均未満のエンジニアには向いている

SIerというのは作業レベルが低く、個人の裁量権もあまり与えられない。作業の大半がgrepとコピペ、あとはエクセル方眼紙を片手にした単調作業という事が多く、能力がある人間ほど辛い思いをする醜悪な場というのは先に述べた。

しかし、これは逆に言えば能力の低いエンジニアはSIerで働いてもいいってことだ。別にプログラミングが好きな訳でもないし、プライベートで勉強して技術を磨く訳でもない。適当に既存コードやググって1番目に出てきたページからコピペして貼り付けて動けばそれでいい。ある意味気楽ではないか。

またSIer以外の企業にとってもこれは有り難い事だ。SIerは有名な「人/月単価」という頭数払いをしてるので、とにかく送り込めば金が取れる。結構あっさりクビにはしてくるものの、プログラミング未経験の人間を経歴偽造して送ればそれなりの金が手に入るチャンスがあるのだ。

この業界に多重請負が多いのは、SIerが技術不問とは言わずとも技術軽視で人を飼うからであり、IT企業の外面をしながら実態は派遣会社な零細企業が本当に多い。だからIT業界で正社員になるのは非常に簡単だ。俺ですら幾度も断っているし、たとえ待遇面や収入面が非正規以下だとしても、「正社員」という肩書の信仰は根強いから、それを喜んで受ける人もいるんだろう。

結局、人の雇用を支えてるのは中小零細企業な訳で、そういう意味ではSIerは社会に資するものではある。全体的に見れば害悪かもしれんが。

テストやリリースには割と慎重かもね

SIerは極めて保守的であり、バグや障害に対してはすごく神経質だ。そのバグや障害が起きた終局的な原因はお前らが技術軽視で負の遺産を積み上げていったからだろと思う事も多いのだが、この姿勢は素直に評価してもいいと思う。

在るWebサービスに関わっていたとき、動作自体は書き連ねたテストコードで一応担保してるものの、「おいお前それ本当にリリースしていいのか?」と思うことがあった。参画しているエンジニアのレベルが高くて信頼して頂いてる事こそ、ここまで気軽にリリースしてしまってるのだろうが、たまに障害を引き起こしてるのを見ると、どうかなあと思うことがある。まぁ、そのサービスは俺のせいでトップページに障害発生のお知らせを掲載したんだが。

SIerはあまりにも慎重かつ原始的過ぎて「既存コードのリファクタリング禁止」とか、テストは毎回検証を手動で全パターンで行う(ページネーションを手動で実装してやがるクソプロジェクトがあって、ガラケー3機種で全リンク踏まされたことがある)とか動作の担保方法がクソ過ぎるのだが、テストコードやCIに対する信奉もそれはそれで良くないと思うのだ。

良いSIerもあるかもしれない

俺がこれまで経験してきたSIerの中で「働く価値があった」と言えたのは1社だけ。そこは技術レベルは比較的高かったし、俺のエンジニアとしての成長に大きく関与してくれて今でも非常に感謝している。が、そこすらも給料が安いという致命的な欠陥があった。だから本当は全滅と言ってもいいのだが、SIerも数あるし、部署も色々だし、中には良い職場もあるかもしれないので冒頭で「90%」のSIerはクソとした。

SIerを批判すると、やたらと「SIer vs Web系」という対立構図になる事があるのだが(某転職エージェントが理由か)、個人的にはこの「Web系」という定義そのものが曖昧なので、対立概念に用いるには不毛だと思う。SIerで一般消費者向けのサイトを作っていようが大概クソだし、自社でゲームやサービスを展開していてもクソな所はあるだろう。反面、零細受託開発企業でも少人数で自社開発しているところはなかなか良いのもある。

でも一つ確かなのは、大抵のSIerは俺にとってはクソということだ。