こんにちは!株式会社LITALICOでエンジニアをしている@taka_f0807と申します。
『LITALICO Engineers Advent Calendar 2016』 18日目の記事となります。
私は、IT従事者として、以前はSIerに約4年半、現在はユーザー企業に約3年、身を置いています。
そんな中で、私が他のIT従事者に一番伝えたかったことを書いてみました。
長文なポエムとなりますが、お読みいただけましたら幸いです。
2016/12/22 17:00
一部、個人的見解の記述により、誤解を招いてしまう恐れがありましたので、該当部分を修正いたしました。
申し訳ございませんでした。
# はじめに
##働く上での「やりがい」とは
皆さんは働く上で、しっかりと「やりがい」を感じながら日々を送れていますか?
例えば、エンジニアにとってのやりがいにはどんなものがあるでしょうか。
- 自分の技術で困っている人を助けることができる
- モノづくりによって世の中に影響を与えることができる
- 企業理念に共感し、その仲間をサポートする
- 最新の技術を学べる喜びと楽しさがある
- 給与が高い
- 人間性や技術力について尊敬できる上司、同僚がいる
- 自分の時間を作りやすい職場である
- 個人を尊重してくれる職場である
働く上での原動力に「やりがいを持つこと」は凄く重要です。
逆に**「やりがいを持てない」場合には、「やりがいにも勝る負の要素」**があるのかもと思います。
##こんな状態の人に「やりがい」について考えてみてほしい
- 好きだったはずのプログラミングが、最近は楽しくないなと感じている
- 「あくまで仕事」として日々プログラムを組んでいて頭の中がモヤモヤしている
- 「誰かの役に立ちたい」と思っているのにそういった機会を与えてもらえない
- 仕事をしていて「感謝されないこと」が当たり前になっている
- 今やっている仕事によって自身が成長できていると思えなくなっている
##この記事でお伝えたいこと
当記事では、私の実体験や周囲の方々の意見、ネット上で見かける世間の評価等を交え、
これを読んで下さる皆さんが
「エンジニアがやりがいを持って働ける場所」
について考える良い機会になれたら幸いに思います。
また、上記を述べるにあたり、SIer業界で仕事をする事に対して否定的な内容が含まれます。
当記事を最後まで読み、不快に思われた方は申し訳ありません。
人それぞれ自分に合う場所が、SIerであれ、Web系であれ、**「自分にとっての良い場所を見つけることができた」**という人を一人でも多く増やすことができればと思っています。
「SIerよりWeb系だ!」に込められた意味を考えてみる
※2つの用語については後で触れています。
##「今の時代はWeb系だ!」という賞賛意見の増加
近年、「SIerよりWeb系だ!」という意見を目にする機会が本当に増えたように思います。
(SIerとの対極がWeb系ということは無いですが、比較されることが多いと感じます。)
同時に、エンジニアの転職を斡旋するサービスであったり、「Web」というものを意識する機会の多いエンジニアに対し、知識の共有と成長の機会を与えるQiitaのようなサービスも劇的に増えたなと感じる昨今です。
Web系の魅力が、Webそのものを介して世間に認知され始めた現れなのかと考えられます。
こういう声をあげるのには以下のような理由があるからだと思います。
- Web系は技術の先端を行っており、SIerのようにレガシーにとらわれにくい
- Web系というスピード感ある業界に身をおくことで、当事者の成長スピードも速くなる
- Web系企業が優秀な人材を集めたいから声をあげる
- 単純に転職業者が転職を斡旋している
- エンジニアの評価を更に上げるためにWeb系が盛り上げていくんだという想い
- SIer(客先常駐)からWeb系(社内SE)に転職し、自分にとってのプラス要素が増えた
##「SIerはよくない!」という否定意見の増加
Web系賞賛の声に比例し、こちらも目にする機会が増えてきました。
否定意見を投げるのはこのような人たちだと推察します。
- 現SIer所属者が、環境への不満が爆発させている
- 元SIer所属者が、過去の理不尽な経験と現職の魅力を語りつつSIerを否定する
- IT業界はSIerの割合が多く、現状ではエンジニアの評価を上げることが難しいと考えている
- 今、プログラミングを学ぶ子どもたちをそんなSIer業界に踏み込ませたくない
また、一つが気がついたことなのですが、両者の違いに
- Web系の賞賛 → 割と抽象的な表現の意見が多い(もちろん間違いではないです)
- SIerはよくないという意見 → 割と事実に基づいた意見が多い
これが非常に面白いですね。事実を述べた上で否定している人が多いです。
お時間のある方は、色々な意見があるんだなぁということで、下のページを見てみるといいかもしれません。
笑ってはいけないSIer
#笑ってはいけないSIer2016
#笑ってはいけないSIerまとめ
SIerとWeb系の両方を経験した者の意見としては...
私は以前、中小SIerに所属し、客先に常駐しながらCOBOLによるシステム開発を行っていました。
現在は転職し、JavaScript+PHPを用いて、社内向け業務システムを内製する社内SEという立場にあります。(世間の言うWeb系ではないのかもしれませんが、言語がWeb系ということで、一応この記事での私はWeb系の人間とさせて下さい)
そんな私も「SIerよりWeb系だ!」という意見には賛成です。
上記で述べた称賛意見ももちろん理由に含まれますが、私の場合は、
- SIerでは得られなかった「やりがい」を得ることができ、それに波及して他にも色々なことを得ることができた
- Web系よりもSIerの方が「やりがいにも勝る負の要素」が圧倒的に多いということを身を持って体感した
- SIer業界の体質が、エンジニアの評価を上げることを難しくしていると感じた
以下でこれらについて触れていきます。
# そもそもWeb系、SIerとは?
※説明的なものなので不要な方は読み飛ばして下さい
また、説明に関して誤りや不足があったら申し訳ございません。
Web系とは
- インターネット事業で収益を得る企業、またはそこに所属するエンジニアの属性を「Web系」と呼称します。(例:Google、Yahoo、Facebook等)
- 企業に属するエンジニアは、主に自社オリジナルのWebサイト構築などを行います。
- また、LINEやソーシャルゲーム等で、インターネットに接続するアプリについてもWeb系の括りに入ると考えて良いと思います。(で、合ってますよね?(‥;)
- 社内SEと呼ばれるその会社の正社員であることが多いと思います。
「自分の会社のため」にシステム開発ができることが魅力です。 - 社内SEということもあり、自部門以外の人たちとも交流がある為、SIerでは関わる機会の少ない職種の人たちの業務風景を間近で見れることも魅力の一つだと感じます。
※Web系の説明は簡単ですが以上です。
# SIer(エスアイアー)とは
- 主に企業向けにシステム構築全般を請け負う企業をいいます。
正確な説明はこちらを
- SIerに依頼する代表的な大手企業の種類には、銀行や生命保険会社等の金融系などがあります。
老舗大手企業のシステムは、間違いなく大手ITベンダーとSIerが構築していると言って良いかもしれません。 - 業務形態は様々で、以下のような非常に複雑な構造になっていたりします。
(雑な説明でごめんなさい)
【システム導入時期】
銀行(発注者) → 大手ITベンダー(元請け)→ SIer(一次請け)...
【システム導入後】
銀行(発注者) → SIer(元請け)...
銀行(発注者) → SIer(元請け) → SIer(一次請け)...
【工数20万人月の某メガバンクのシステム刷新の例】
※こんな感じじゃないかという私の想像です
銀行(発注者) →
大手ITベンダー(元請け)→
→ SIer(一次請け) → SIer(二次請け)→ SIer(三次請け) → SIer(四次請け)
→ SIer(三次請け) → SIer(四次請け) → SIer(五次請け)
→ SIer(一次請け) → SIer(二次請け)→ SIer(三次請け)
→ SIer(二次請け)→ SIer(三次請け) → SIer(四次請け) → SIer(五次請け)
大手ITベンダー(元請け)→
→ SIer(一次請け) → SIer(二次請け)→ SIer(三次請け) → SIer(四次請け)...
大手ITベンダー(元請け)→ 省略...
##IT従事者の約7割はSIer所属である
IT従事者の内訳等、統計的なものが書かれていました。
IT人材80万人に対し、特定派遣/一般派遣で働く人が55万人、エンドユーザー企業で働く人は25万人という記載があります。
##エンジニアの評価を上げることが難しいと言われる「人月商売」
ざっくりした説明ですが、1人で1ヶ月かかる仕事量が1人月、10人で6ヶ月かかれば60人月、100人で半月かかれば50人月という考え方を「人月」と呼びます。
SIerは、この考え方に基いて人員を配置する為、「人月商売」と呼ばれています。
某メガバンクのシステム刷新は、工数見積り20万人月、多い時には8000人の人員が投入されたと聞きます。
システム開発開始から終了まで仮にフル動員で作業を行ったとしても
200000 ÷ 8000 = 25
25カ月掛かります。
この人月商売では、エンジニアの評価を上げることが難しいと一部から指摘されています。
大きなシステム開発の工数を人月で見積もる
↓
大体が見積りに失敗する
↓
納期に合わせるため、時間外労働を駆使して働く
↓
時間外労働をいくらした所で、見積り段階で支払う金額は決まっている
↓
割に合わない賃金しか得られない
↓
今後、依頼を受けるときも「前はこのくらいの見積りと金額だっただろう!?」と
見積りの失敗は考慮されず、負のスパイラルに陥る
↓
依頼料は据え置きのままでエンジニアの評価を上げることが難しい ←今ここ
この人月商売については、もう随分前から指摘されているようです。
参考元
@IT様
人月での見積もりがエンジニアをダメにする ←2002年の記事です
[ITpro](http://itpro.nikkeibp.co.jp/)様 [人月商売や多重下請けは滅びの道](http://itpro.nikkeibp.co.jp/atcl/watcher/14/334361/111300114/?rt=nocnt)
[paiza開発日誌](http://paiza.hatenablog.com/)様 [ITエンジニアの価値を貶める『人月商売』の功罪](http://paiza.hatenablog.com/entry/2014/07/10/IT%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%81%AE%E4%BE%A1%E5%80%A4%E3%82%92%E8%B2%B6%E3%82%81%E3%82%8B%E3%80%8E%E4%BA%BA%E6%9C%88%E5%95%86%E5%A3%B2%E3%80%8F%E3%81%AE%E5%8A%9F%E7%BD%AA)
##SIerの働き方や状況について
- 働く場所は、**SES契約により、相手企業の中が基本となることが多く、そういった状況を「客先常駐」**と呼称します。
- 何十年と同じ所に常駐する人もいれば、数ヶ月単位で現場が変わる人もいます。
また、急な会社命令(2週間前とか)により遠隔地に行かされることも珍しくありません。 - 私も東京(1年3カ月)→群馬(3カ月)→東京(3カ月)→某県(退職まで)という感じでした。
- 客先常駐の場合、**「働いた分だけお金が出る時給制」**の契約をすることが多いです。
- 社員が客先に出勤していれば、その成果にかかわらず自社の売上になります。
- 自社の正社員ではあるものの、働き方を見るに非正規雇用と変わらないことが多いです。(それもあり、技術者派遣、特定技術者派遣、エンジニア派遣と呼ばれたりします)
# SIer時代に感じたやりがいとそれにも勝る負の要素
##前職 (中小SIer時代)
学生時代は社会福祉について学んでおり、パソコンが苦手な人からはよく質問を受けたりして、一緒に悩みを解決したりすることが好きでした。
人の役に立つこと、または、高校時代に習ったプログラミングが好きだったこともあり、急遽、IT業界に行こう!と決め、中小SIerに新卒で入社しました。
好きだったと言ってもVBとC言語を学校の授業の一環でやった程度のレベルです。
入社当時、「SIer」という言葉そのもの、ITゼネコン構造、技術者派遣の実態など知りもせず、「東京で一人暮らし!大きな会社のシステムを作るんだ!」と夢にあふれていました。
##客先で働くということ。得ることのできた経験
前職の全ての現場に於いて、客先常駐という形で業務システムの保守開発をしてきました。
いわゆる汎用機エンジニアでプログラミング言語は全てCOBOLだけです。
あとはSIerのお決まりですが、Excelをフル活用して設計書やテストケースを作成し、成果物を作ることに時間を割く毎日です。
① 某生命保険会社のある一商品に関する保全開発
(一次請け 修正開発のみの下流工程)
② 某県大手スーパーのビール発注システムの開発
(元請け 新規開発の下流工程)
③ 某県第一地方銀行の預金オンラインシステムの開発
(元請け 新規・修正の上流~下流工程)
おそらくこれは、SIerの中でもマシな方なのだろうと今では思います。
何故マシだったのかというと、全てビジネスロジックに強みを置いたシステムだったからです。
人によっては、プログラミングがやりたかったのに、作業要素が強いことをやらされ、技術や知識の成長を実感できないままという人もいました。
##やりがいは感じていた
一番成長できたのは最後の現場である③の第一地銀での経験でした。
そこでの仕事は、銀行員(プロパー)を含む、8人前後のチームで行います。(銀行+4社程)
ウォーターフォールモデルで言う上流~下流工程、また、若手ながらも第一地銀の新商品取扱開始にあたるシステム設計+運用設計の主担当という貴重な経験もできました。
プログラムを組む時間は実際には少なかったものの、第一地銀のシステムです。
仕事内容にも非常にやりがいがありました。
職場に於ける人間関係も良く、客先、他会社、自社、全て円滑でした。
「第一地銀のしかも預金システム担当してるんだ!」と誇らしく感じることもありました。
##潜在的な負の要素
このままずっとこの現場にいたいと思っていたのですが、前から心に引っかかるものがありました。
(思い出してみると結構ありました・・・)
- 「普通の仕事だったり、人間関係を築くことには問題ない。だが、COBOLしか使えなくて将来大丈夫だろうか?」
- 「客先の人たちは、どうして我々客先常駐者の事を「派遣さん」と呼ぶのだろう?ちょっと嫌だな...」
- 「客先の人たちは、我々がやっている仕事を「作業」と呼ぶ。俺が今やってる仕事は、作業と呼ぶ程度のレベルなのだろうか?」
- 「色々経験してきたけれど、実際にシステムを使う人の顔って見たこと有ったかな...?」
- 「俺よりも二回り年齢が上の人が、給与が全く上がらない、君と大差ないよと言っている。単価は倍近くあるのに、その分はどこに消えてるのだろう?」
- 「有休なんて使えなくて当たり前。でも客先の人たちはバンバン取ってて羨ましいなぁ...」
常駐する期間が長くなるにつれ、今の働き方と自分の立場ついて疑問を感じるようなってきました。
いい面も悪い面もありながらもこういったところから転職を考え始めました。
#Web系社内SEになって思ったこと
##現職 (社内エンジニア)
現在は、株式会社LITALICOの社内エンジニアという立場でこれを書いています。
株式会社LITALICOが運営する一部事業のシステムをチームで保守開発する立場にあります。
私が中途入社した段階で社内では絶対に欠かすことのできないシステムが既にそこにはありました。
はっきり言って、前職の銀行で扱ったシステムと比べると世の中への影響度は少ないとは思います。
しかし、やりがいは前職よりも間違いなく大きいと感じています。
よりよい業務システムを作ることで、現場の方たちが、困っている人のサポートに集中する時間を増やすことができるからです。
##プログラミング言語は違えど、SIer時代に得た経験が活きた
使用するプログラミング言語はJavaScript(ExtJS)+PHPがメインで、ビジネスロジックは、バックエンドへの負担も考慮し、フロントエンド側に多く持たせる設計になっています。
入社時にはこの2言語での業務経験は全く無く、前職の業務ノウハウだけを持っての転職チャレンジとなりました。
最初は前職の名残で、プロパーのはずなのに客先で仕事をしている感覚だったのを覚えています。
オブジェクト指向言語に業務で触れるのは初めてだったこともあり、ExtJSの巨大かつコードリーディングが難解なプログラムを初めてみた時は、「果たしてこんなものを俺は理解できるのか?」と寒気がしました。
また、ベンチャーということもあり、システム開発する上での環境や統制、他部門のシステムに関する理解は高いとはいえません。
しかし、業務システムを扱う上での本質は「困っていることをどうにかしよう!」という問題解決意識にあります。
そこは「やりがい」を根底に日々勉強。なんとか毎日仕事ができています。
**「SIerにいたことに対して悲観する必要は無く、経験はこうしてどこかで活きるんだ!」**と考えるようになりました。
「プロパーとの格差」を気にしなくていい
自分で書いておいてなんですが、嫌な言葉ですね・・・。感じたことのある人も多いはずです。
(立場の格差というものは、IT業界に限らず、派遣業界はもちろん、友人から聞いた例では病院での看護師と介護士にも大きな格差があるという話を聞いたことがあります)
しかし今はそんなものを気にしなくて良くなりました。
どんな部署と接する時でも皆が対等な立場で接しながら働いています。
SIer時代には得られなかった「ありがとう」の言葉
私が「あぁ、ここで働いていて良かった」と感じる瞬間は、システムを使って下さるユーザーから**「ありがとう」**と言われた時です。
感謝の言葉を発注元から頂くことはもちろんありましたが、ユーザーからはありませんでした。
使ってる人と顔合わせる機会なんてほぼ無かったですし、そもそも動いて当たり前だと考えるはずですからね・・・。
開発したものからユーザーとの繋がりが生まれ、「ありがとう」と言って貰えることに最初は逆に戸惑い、不思議な感覚になりました。
システム開発は苦労することも多いですが、お礼を言われた時には報われた感覚になることを体感できました。
#「やりがい」を持った事で得られたもの
##「プログラミングは楽しい」ということを思い出せた
今では、仕事とはいえ、プログラミングをすることに楽しさを感じながらシステム開発を行えるようになってきています。(「え?楽しいことが当たり前だよ!」と思った人は、ぜひ今の場所を大切にして下さい!)
以前は、ビジネスロジックばかりを扱っていたこともあり、「仕事のため」という思い込みが作用したせいか、COBOLという言語について突き詰めることがありませんでした。
(今の自分がCOBOLを学び直せば面白く感じるのかな?とも最近思います)
プログラミングの楽しさを思い出させてくれたのは**「JavaScript」**でした。
好き勝手書いても大体動いてくれる自由度の高さに魅了されています。(適当な説明でごめんなさい)
##技術に追いつこうという意志
COBOLにばかり触れていると本当に技術に無関心になります。
しかし、Web界隈にいると技術の進歩が速いため、そこに身を置くと情報を調べるはずです。
例えばJavaScriptでは
ES2015であったり、多彩なフレームワークが誕生しています。
JavaScriptのフレームワークはこの記事を書いている2016年12月中旬の段階で71個とのこと。
(現状では全然使いこなせていないので勉強しないとなと思っています・・・。)
##他の技術にも触れてみようという興味
自身の技術が、身近な人の問題解決に繋がるということもあり、他の技術にも触れ、手助けの為のバリエーションを増やそうと考えることが増えてきました。
例えば、最近ではGoogleSpreadSheetを使って業務をする人も増えています。
ExcelライクなUIの為、データ入力などには使いやすいですが、いつしか自動化させたいという意思が働くはずです。
「俺がGoogleAppsScriptの知識をもう少し高めたら誰かの役に立つのではないか?」という思考になります。
ユーザーの顔がはっきり見えることで得られた効果だなと確信しています。
##技術的な話を仲間とするようになった
プログラミングの楽しさ、技術を高めた結果、ここに辿り着きました。
入社したての頃、周囲の話に全くついていけませんでしたが、今では少しずつ話にも入れるようになってきました。
開発の場面だけでなく、仲間との日常にも良い効果をもたらしています。
「あぁ、俺は今技術の話で盛り上がってるんだな・・・」と変な感情になります。
今では、仲間が学んでいる技術にも興味を持って、更には、自身が得た知見を積極的に共有することでチームを活性化させられたらなという考え方をするようになりました。
#「エンジニアがやりがいを持って働ける場所」とは
##やりがいと負の要素のバランスを考え、自分に合った働きやすい場所とは何かを考えていこう
完全にSIerに否定的な内容でしたが、もしSIerが自分に合う場所であれば全然良いと思います。
逆にWeb系に身を置いて、自分に合わないと感じているのに「Web系が良いって言われてるし...」という理由で無理やりそこにいるのであれば、是非一度、自分の思うやりがいについて振り返ってみると何かに気付くかもしれません。
この2つのバランスを考え、**「やりがい」>「負の要素」**となるように日々を過ごして行くことができれば、自分のやっていることの意義を見つけられたり、毎日に潤いが出てくるのではと考えます。
##日々、負の要素に打ち勝つ「やりがいの要素」を増やしていこう
やりがいとは、自身のやる気を引き起こす要素の集合体だと考えます。
また、冒頭から負の要素と1単位に書いてきましたが、最終的には集合体となるはずです。
そして無意識に日々点数化、計算をし、判定を繰り返しているのだと思います。
**「やりがい」>「負の要素」となるよう「エンジニアがやりがいを持って働ける場所」**を築いていきましょう!
#おわりに
完全にポエムかつ長文で失礼致しました。
ただ、今回の機会を経て、IT従事者となってから同じような境遇の人に自分が伝えたいと思っていたことを形にできたのは良かったです。
明日の『LITALICO Advent Calendar 2016』は、@wapa5powさんの「Railsでのサーバサイドログ収集に方法悩むあなた送る - 分析・デバッグ用ログ収集が捗るrack-action_loggerというgemを作った話」です。Railsは全然分からないので、Railsチュートリアルくらいはいつかやらねば・・・!(・・;)