今回は、このような疑問をお持ちの方に向けて書いています。
例えば、受託開発の場合は、事前にスケジュールを立て、開発をどのくらいの期間で終えるか、テストを終えいつまでに納品するかが決まっています。
そのため、開発がスケジュール通りに進まないと遅れが発生し、納期に間に合わないという可能性がでてきます。
この記事では、そのように開発スケジュールに間に合わない時に、どのように対応し解決できるのかを解説していきます。
この記事を書いた人
特別何か持っているわけではない普通の人が未経験からエンジニアに転職し、10年以上経験を積みフリーランスエンジニアになり、単価80万〜140万の案件に参画し稼げるように。プログラミングを始めた頃は、「プログラミング向いていないかも」、「自分のスキルレベル低い」と感じ悩んだ経験がある。
- 元プログラミングスクール運営企業の社員のためプログラミングの学習に詳しい
- 自分と同じように悩んでいる初心者へのアドバイスが得意。
プログラマーが納期に間に合わない時の対応
頑張って実装しても、開発スピードを上げても間に合わない場合もあります。そのような時に一人で悩んでいると大きな問題になる可能性があるので注意しましょう。
結論から言うと、開発が遅れている時の対処法は、報告、連絡、相談の報連相(ほうれんそう)です。会社に入るとみんな教わることです。
PMに状況を早めに相談する
開発をしてきたエンジニアであれば誰もが経験しますが、以下のような理由で、どんなに頑張っても間に合わないということはあります。
- 思っていたより複雑な機能だった
- 仕様に漏れがあり想定以上に工数がかかる
- 前工程が遅れている
どのような理由があるとしても、PMに早めに相談するというのが重要です。
早めに相談することで他の開発者にその機能を手伝ってもらったり、スケジュールの調整をしてくれたりするので、少しでも遅れそうと感じたらすぐに相談するというクセをつけておくとよいでしょう。
SESやフリーランスの場合は営業に相談もあり
PMが他社の人の場合、相談してもしっかり聞いていなかったりという可能性もあります。
SESやフリーランスの場合は、担当の営業がいると思います。開発が遅れている理由など営業に報告しておくと、増員してくれたり開発の遅れを取り戻す提案をしてくれる可能性があります。
無理な仕事は無理と報告してみましょう。営業から常駐先の上司に連絡を入れてもらうことで何かしらの対応してくれるでしょう。放置されて最悪な状況になる前に、相談しておくことで自分の身を守ることができます。
相談していたにもかかわらず、対応してもらえずに遅れてしまい、責任を押し付けられることがないように、注意しましょう。自分の身を守るために「状況を共有しておく」ということです。
納期に間に合わないのはプログラマーに責任?
そもそもですが、開発スケジュール通りに進んでいなくて、納期に間に合わないという状況はプログラマーの責任なのでしょうか?
納期の遅れの理由はプログラマーではない
結論から言うと、プログラマーは責任を感じることはありません。
その理由は、納期に間に合わない状況にしたのはスケジュールを立てている側に問題があることが多いからです。以下は一例ですが、プログラマーが責任を感じる必要がないことばかりです。
- 急な仕様変更による開発の遅れ
- 要件があいまい
- スケジュールに無理があった
ほとんどがプログラマーの上にいる上司や上位会社などの責任で遅れます。
開発を進めていくと様々な問題が発生します。そのような問題の対応で遅れることがあります。
さらに開発途中で予想しない仕様変更があったりします。仕様変更の前に仕様が確定していないために仮に進めて行き、仕様が確定した時に合わせていくといった場合もあります。
とにかくしっかりと計画していても想定外のトラブルなどで、納期が間に合わなくなるということがあります。
初心者プログラマーが開発で遅れている場合
初心者のプログラマーが開発スケジュール通りに開発ができていないということがあると思います。そのような時は、初心者のプログラマーは自分の開発が未熟だから時間がかかっていると感じると思います。
しかし初心者のプログラマーが遅れるのは想定内です。そのあたりもカバーできるような体制だったりスケジュールを立てる必要があります。
つまり、責任はその上司や上場企業にあるということになります。なのでプログラマーがそこまで責任を感じることはないということがわかります。
他に理由があってもプログラマーにとって納期はつらい?
プログラマーに責任はないとしても、やはり与えられた仕事がスケジュール通りに終わらないと、責任を感じてつらい気持ちになります。
納期についてもう少し理解が増すと、ちょっと楽になるかもしれません。
納期とは?どのように決まるのか。
まず、「納期に余裕があって楽に終われた」。。。実はこのようなプロジェクトは、ほとんどありません。
開発工数が増えるとスケジュールが長くなるため、費用が高くなります。そのため納期までの期間をなるべく短くしたいというのがクライアントの希望になってきます。
納期はどのように決まるのか
- 予算で開発の規模を決め、スケジュールが組まれる
- 納期を決め、そこまでの期間にどのくらいの開発ができるか決める
他のパターンもあると思いますが、ある程度契約したときに納期が決まっているため余裕がある開発ができるということはほとんどありません。
自社開発の場合は、スケジュールを調整できることが多いため、余裕ができます。
プログラマーからすると、もう少し余裕を持ってスケジュールを計画してほしいと思いますが、開発費用やシステムの規模などを考えて計画されたので変更するのは簡単ではないということです。
スケジュールは短めに設定されている
クライアントがいる限り、上記の理由で余裕があって楽にできる開発はないということがわかりました。
メモメモ
ただ、上司や上位会社もある程度、問題が起きても対応できるだけの時間を確保してスケジュールを組んでいるため、プログラマーには2日と伝えていても実は3日かかっても間に合うというようになっていることがほとんどです。
このような状況がわかっていると、少しは冷静になって開発を進められるかもしれません。
プログラマーが納期の影響を受けやすい
プログラマーに責任はない、ということを書きましたが、それでも一番影響を受けるのは間違いなくプログラマーです。
例えば、仕様変更があるとリスケ(スケジュール変更)されるのが普通ですが、リスケできない場合があります。そのような場合でも遅れを取り戻すためには開発を急ぐしかないのです。上司は間に合うように無理な依頼してくるでしょう。
- 残業を増やし開発急ぐ
- 休日出勤して開発を急ぐ
- 開発する人の数を増やし開発を急ぐ
このように様々な状況で納期が厳しくなり、プログラマーたちは疲弊することなります。僕が一番きつかったのは2日連続の徹夜作業です。今では許されない働き方かもしれませんが、当時は会社からお願いされて無理な働き方をしたものです。
つまり開発が遅れると、みんなつらくなるのです。上司も部下に無理なお願いはしたくないわけですから。
上でも書いたように遅れた時は報連相しておくとプログラマーとしての責任は果たしたことになりますから、後は遅れないようにどうするかという点を解説していきます。
プログラマーが納期に間に合わすための方法
プログラマーは自分のタスクをいつまでに完了させるのかスケジュール化されていると思います。それはPMの役割ですが、明らかに無理な場合もあるでしょう。
そのような場合にどのように対応すべきか以下の点を参考にしてみてください。
自分なりに余裕を持った開発のスケジュールを立てる
プログラマーは自分に割り当てられたタスクがどのくらいかかるのかを考えてみると良いです。
割り当てられたタスクがどのくらいかかるのかを計算するためには、どのような実装をする必要があるのかという点が頭の中で整理されている必要があります。
チェック
初心者の人はこのあたりが難しいかもしれません。難しい場合は、自分で考えた実装方法をまとめて先輩社員に開発方法が間違っていないか相談してみるとよいでしょう。
自分なりに計画を立てることができれば、その後の開発の予定も考えて、早く帰る日を作ったり、休日に出勤しないように計画立てることができます。
戻りがないような開発を心がける
上で先輩社員に相談しましょうと書きましたが、経験の浅い人が一人で考えた場合に他のエンジニアが想定していた方法と違うと計画が予定通りに進まなくなるリスクがあるためです。
- 単に実装方法が違う可能性
- 仕様と合っていない実装になっている可能性
例えば、似たような機能が実装されていた場合、そちらに合わせて実装するのが正解に近い実装方法になると思います。明らかに元の実装がおかしいと思うのであれば、元の機能を自分の実装に合わせる必要がでてきます。
どちらが正解だとしても、先輩社員に相談して実装を進めていたら、戻りが発生しなかったかもしれません。時間がない中でやり直しは自分を苦しめることになります。
僕は会社員時代もフリーになってからも、自分なりに開発方法をまとめて、「こんな感じで実装しようと思ってるが問題ないですか?」と確認するようにしています。全て相談する必要はないですが、問題になりそうな部分があれば確認した方が絶対に戻りがなくなります。
スキルを上げて開発スピードをアップする
スキルが上がると開発スピードは確実に上がります。実装方法もある程度イメージできるようになります。
開発スピードを上げることで、余裕のある仕事ができます。(サボれるという意味ではありません)
プログラマーが納期でつらくなる時に及ぼす影響
プログラマーが余裕を持って仕事をすることが大事なのは、精神的、肉体的につらくなることで悪い影響がでるためです。
体調不良になる可能性がある
納期のことが気になると、休日も仕事のことを考えているという状況になります。特に責任感がある人は、タスクがスケジュール通りに終わらないことで、大きなストレスを抱えて体調を崩してしまうという人もいます。
いつまでに終わらせないといけないという状況は、かなりプレッシャーになります。特に経験の浅い人は思うように開発が進まないため病みやすいです。
また、遅れているタスクを家でやってしまい、休日なのに体が休まらず体調不良になるということもあります。
プログラマーに起こりやすい病気
プログラマーがなりやすい病気は以下になります。
- うつ病
- 睡眠障害
- 腰痛
- 不規則な食事、間食が引き起こす体調不良
プログラマーは、うつ病になる人が多いと言われます。そこからの睡眠障害なども引き起こし働くことが困難になる可能性があります。
納期だけが原因ではないかもしれないですが、プログラマーは厳しい環境で開発していると精神的にも肉体的にもつらくなってしまいます。
残業・休日出勤が続き崩壊する
稼働が高すぎると、意識がもうろうとして自分がおかしい状態になっているのも気づかないこともあるため危険です。電車に飛び込むサラリーマンが似たような状況なのかもしれません。
無理な稼働を続けることで、命の危険があるということを理解しておきましょう。そのようにならないために対策をしましょう。
プログラマーが精神的に崩壊しないための対策
精神崩壊しそうと感じたら無理をしないというのが一番なのですが、「少し体調が悪いくらいだから大丈夫かも」と考えないようにしましょう。
早めにうつ病の可能性を疑う
2週間くらい気持ちが落ち込んでいる状態が続くと、うつ病を疑う方がよいそうです。体の痛みもうつ病と関連がある可能性があるとのことなので、体調が悪い場合は早めに病院にいきましょう。
医者の診断があれば、体の状況も把握できるので安心して働けます。
働く環境が良い職場に転職する
エンジニアの働く環境は年々良くなってきています。毎日終電、毎週休日出勤しているような企業は離れましょう。もっと良い環境でエンジニアを採用している企業はたくさんあります。
危険な企業、プロジェクトからは早めに身を引くのが良いでしょう。精神崩壊してからでは手遅れです。個人的にはスケジュールに余裕がある自社開発企業で開発ができると、気持ちに余裕ができると思います。
転職先を自分で探すと、中の状況を知らないために失敗する可能性が高いため、できれば転職相談できるエージェントの利用をおすすめします。メリットは以下の通りです。
特にIT求人が多めの【マイナビIT】がおすすめです。
- キャリアアドバイザーがサポートしてくれるためマッチする転職先を探しやすい
- 非公開求人の紹介を受けられる
- 企業の情報を応募前にわかる
社員で働くより自分の希望に合った働き方をしたいという方には、【type IT派遣】がおすすめです。Web業界に特化した派遣サービスなので、以下のような希望にあった開発現場を見つけられます。
- スキルアップしたい
- 様々な現場で経験を積みたい
- 時短や週3日勤務で働きたい
- 副業・Wワークで働きたい
プログラマーにとって納期がつらいまとめ
今回は、プログラマーの納期について考えてきました。プログラマーにとって納期は、精神的な影響を与えるものです。自分一人で考えすぎず、早めに相談することでかなりストレスは軽減されます。
会社が慢性的に納期が厳しい状況が続いているのであれば、スケジュールや会社に問題があると考えましょう。その場合は転職も視野に入れておく方がよいと思います。