プログラマーの残業って気になりますよね?
世間では嫌なイメージがたくさん流れています。
- 毎日残業で終電まで帰れない
- 繁忙期は徹夜が横行
- プログラマーはブラックの代名詞
などなど。
求人票には良いことしか書いてないし、実際のところはどうなのだろうか、と。
そこで、プログラマーの残業について実体験も交えながら赤裸々に紹介していきます。
目次
残業時間別、ブラック指数
プログラマーの業界すべてでこれが当てはまるわけではありません。 残業のレンジとしては、月0時間~月200時間ぐらいと幅広く、企業やプロジェクトによってまちまちです。
参考までに残業時間別の生活形態の感触を下記に記しておきます。
- 月0時間~月20時間・・・余暇で趣味や勉強などを十分できるレベル
- 月20時間~月40時間・・・少し趣味にさける時間が減ってくるレベル
- 月40時間~月80時間・・・趣味にさける時間が半分以上無くなる。たまに休日出勤がある。休日は頑張れば自分のことができるが疲れがだいぶ残る。
- 月80時間~月100時間・・・深夜残業、休日出勤が当たり前。炊事洗濯など基本的なことができなくなってくる。気力がなくなり、仕事の質もだいぶ落ちてくる。長期間続くようであれば転職を考えるレベル。
- 月100時間以上・・・仕事以外のことが何もできなくなる。生産性はほぼ無いに等しい。長期間続くようであれば即休職して、転職を考えたほうが良いレベル。
IT業界目指すのであれば、残業時間を意識したワークライフバランスを考えないといけません。求人票に公表してなくても100時間以上の企業とかひそんでいるかもしれませんからね・・・。
残業が多くなる要因
「残業が多くなる要因は自分にあるのではないか?」そのように思う人もいると思いますが、残業が起こる原因は基本的には環境(会社の体質)に依存します。
残業が多くなる原因について見ていきましょう。
教育がしっかりしていない
企業によっては教育がろくになされないで、いきなり現場に投入される場合があります。 その場合、勉強コストが労働時間にかかってきますので、残業時間が増える傾向にあります。 また、常に「本当にこれでできるのだろうか?」という不安との戦いとなり精神がすりへります。企業としての研修はもちろん、プロジェクトレベルで勉強会などをまったくしていない場合、どうしても業務時間中または休日返上での勉強コストがかかってきます。
意識や責任感の強いプログラマーは「いやいや、自分で勉強するのが当然でしょう!」と思いますが、そもそも企業は教育コストも含めて人を雇うべきなのです。何も教えてくれない環境にあるのであれば転職を考えた方がいいですね。そもそも残業時間が多くなると勉強時間もとれないので悪循環に陥ります。
経営者または幹部に技術上がりの人が少ない
リーダーレベルに技術の素養がないと、自分がやったらどのぐらいかかるかという観点を持ち合わせていないため、無理な期間/仕様/人員配置をしがちになり、 すべてがプログラマーにしわ寄せとしてやってきます。稼働増で対応という残業ありきの体制になり 残業時間が跳ね上がります。
お客様に無理な要求を提示され、「技術的な詳しいことはよく分からないけど売り上げのためだから」と ヘコヘコ受けてしまうリーダーがいる場合、デスマーチ(残業地獄)が起こります。
私のプチデスマーチ経験
ここで、わたしがプログラマーとして一番しんどかった時期のお話しをしたいと思います。
新卒で某携帯電話のソフト開発エンジニアとして入社しました。大学時代に授業でプログラミングやデーターベースの勉強を行った経験を生かして、会社ではもっぱらAndroidのミドルウェアやアプリケーションの設計、外注管理を行っていました。その時の残業は平均して月40時間程度でしたが、外注管理と並行しながら独自にプログラミングの勉強を行っており、また外注さんから技術を学ぶことも多く、少し忙しくも充実した日々でした。
5年目のある日、携帯電話事業の不振のあおりを受け、新規の部署へと異動となりました。出来立てホヤホヤのその部署での仕事は、主に車載アプリケーションや車載プラットフォームを開発し、車メーカーへ売り込みをかけるという仕事でした。わたしはAndroidの設計経験とプログラミング経験を買われ、とあるお客様へのデモアプリケーションの開発サブリーダーとなりました。使えるお金も少なかったので、外注を使わず全て自社メンバーで開発を行うという体制でした。
プログラミングが出来ると言うだけでなんでもやらされた
新規の部署ということで部全体としてのノウハウが足らなかったのもありますが、信じられないことにうちのメンバーの大多数は、ずっと外注管理ばかりをやってきて、プログラミングなんて全く出来ないというオジさんばかりで構成されていました。するとどうなるかと言うと、プログラミングができるというだけでプログラミングは勿論、設計から試験、他メンバーへの教育、なんだったらお客様先へのデモ対応まで全てをやらされるはめになりました。
技術力のないリーダー
開発の現場から離れて久しいリーダーのもと、お客様に刺さるデモアプリケーションの作成に勤しんでおりましたが、そのリーダーがお客様のざっくりとした要望を、難易度とかかる期間を度外視して受けまくるものですから、とにかく次から次へと仕様が二転三転、新規仕様もプログラミングをしている最中にボコボコ増えていきます。必然残業が膨れ上がりました。リーダーの放った、「え?これってそんなに難しいことだったの?1日ぐらいでできると思ってた」という言葉が忘れられません。
とかく上の人間に開発経験が乏しい場合、無理な期間と難易度の高い仕様はそのまま設計者やプログラマーに残業を強いる結果になります。
開発経験の乏しい同僚のフォロー
リーダーの開発経験が乏しいとともに、周りの開発メンバー自体のスキルも著しく不足しておりました。結果プログラミングがわずかばかりできる私が、その経験をもとに他メンバーのサポートも任されることになります。他メンバーが直面するありとあらゆるプログラムに関する難題を、時には当事者にヒントを与えながら、時には実際に自らサンプルコードを書きながら当事者に教えることになりました。時間があれば当事者に考えさせながらじっくり問題を解決することもできたのですが、前述のリーダーのお陰で納期は1週間前に差し迫っています。必然、他メンバーの問題を私が家に持ち帰り、妻が寝た後にプログラムを組み、翌日フラフラになりながら「こうすればいいですよ・・・(白目)」と同僚に指示するありさま。家に持ち帰る部分については当然残業代はつきませんし、家にいても仕事をしている不安定さに、妻も私もだいぶ消耗しました。
長時間残業の結果は悲惨
このプロジェクトに従事していた4ヶ月間は残業が平均して月100時間を超えていました。振り返ってみると、技術を理解しないリーダーが無理な仕様と開発期間でお客様と合意する。教育が全くされていない同僚と、教育を行う隙がない開発期間。残業が増える要素しかありませんでした。20代だった私が40過ぎの先輩のどうしようもないプログラミングのフォローをする心労は凄まじく、結果私はうつ病を発症し、半年以上も休職する羽目になりました。その間、ほとんどスキルが上がらなかったことを考えるとプログラマーとしては大変な痛手でした。
プログラマーになる場所を選ぼう!
もちろん、わたしの経験したようなプロジェクトはごく少数のケースだと断言できます。ただひとつ言えるのは、残業を抑えて、気持ち良くプログラマーを続けるためには下記の点に気をつけたほうが良いということです。
- リーダーや幹部クラスに技術畑の人がきちんといるか
- 周りの同僚のスキルは高そうか。また教育がきちんと行なわれている様子があるか
特に偉い人が、社内政治や経営だけに注力してそうな会社は黄信号だと思います。彼らは自分がやったらどのぐらいの期間がかかるだろうという想像力を欠いているので、お客様から受けた仕事は「とてもそんな期間じゃできないよ!」と軒並み炎上することになりかねません。
また、周りの同僚のスキルについても注視してください。それは研修が行われているかという単純な事実確認だけにとどまらず(研修は、形だけの低レベルなものになりがちで、実際に現場で使えないということもある)、プロジェクト内で活発に勉強会が行われているかということが重要です。メンバーが生き生きと勉強会を行っているプロジェクトは、スキルも高く、そもそも勉強会を行えるだけの元気があるという点で、適切な残業時間で仕事ができている可能性が高いです。
まとめ
いかがだったでしょうか?今回は私のプチデスマーチ体験を踏まえて、プログラマーの残業についてのぶっちゃけを語らせていただきました。プログラマーの残業の多寡は100%環境によります。「プログラマーになる場所を選ぼう」で語った点に注意して、ワークライフバランスを保ったプログラマーを目指してくださいね。