Written by TSUYOSHI

初心者エンジニアの悩み 納期を守れない時に意識すべきこと

PROGRAMMING WORK

初心者コーダー「頑張っているんだけど納期に間に合わない」「常に全力でやっているけど納期に間に合わない」

こういった悩みにお答えします。

未経験の初心者でWebサイト制作の会社に入った頃などは、「決められた期日までに作業が終わらない…」という経験が多くないでしょうか。僕は初心者の頃はこの悩みがすごくありました。

初心者の頃はどうしてよいかがわかりませんでしたが、いくつかのパターンについて、今になって思う解決方法を僕が考えてみたいと思います。

本記事の内容

  • 納期に間に合わない原因の考察と解決方法
  • 先輩や上司に効率よく聞く
  • 参考:僕がHTMLとCSSで困ることはないなと思ったタイミング

主に未経験からWeb制作会社に入って、エンジニアというかHTML&CSSのコーダーとして仕事をすることを想定した際の話となります。

納期に間に合わない原因の考察と解決方法


なぜ初心者の頃に期日を守れないことが多いのかを考えてみます。

結論からいうと、僕が考える納期に間に合わない原因は3つ。
「進捗管理ができておらず、納期に間に合わない。」
「自力の能力が足りていない。」
「経験不足でスピードが追いついていない。」
であり、順番に解決方法を添えて解説します。

ちなみにこの内容はすべて僕の経験談をもとに書いております。自分を擁護するわけではないですが、初心者の頃は仕方ないですよね。。。
僕も失敗をたくさんしながら、経験を積んで徐々にミスを減らしてきました。

【課題1】 進捗管理ができておらず、納期に間に合わない。

複数のタスクに追われて、管理しきれず失敗する

2つ以上のタスクを振られた場合に時間配分に失敗して期日に間に合わなくなるということは結構あると思います。

長期スケジュールタスクの合間に、細かい作業が差込されて、進捗管理できなくなり失敗する

数日後などに期日が設定されているちょっと大きめのタスクがあり、その合間に日々の細かいタスクを振られた場合です。日々の細かいタスクを優先しすぎてしまい、大きめのタスクになかなか手が付けられず自滅するパターンもあると思います。

見積もりを間違えて自滅

初心者の頃は仕事を振られた時にどれくらいの時間がかかるか分からないと思います。見積もりを頑張って出そうとしても全く分からないということがザラではないでしょうか。
適当に見積もりしてしまって、結局、期日に間に合わないというパターンです。

解決方法

振られたタスクはできる限りすぐに見積もりして計画を立てる

仕事を振られたらできるだけすぐに見積もりをします。
初心者の頃は忙しすぎて目の前の仕事を片付けることを優先し、見積もりなどは後回しにしがちですが、僕はできるだけ早く見積もりすべきと考えます。
忙しければその日は残業してでも、振られた仕事を早めにできるだけ正確に見積もりすべきです。早めに見積もりすれば期日の相談もしやすくなります。

タスクを細かく区切って見積もりする

最初の頃は、少し大きめの仕事になると、「どれくらい時間がかかるのか」が経験不足で全くわからないと思います。僕がそうでした。ちょっとした修正なら予想はつくのですが、数ページ丸々イチから作るとなるともうわからなくなっていました。

まずデザインカンプをベースに、作業内容をメモ帳などに細かく分類して見積もりしていきます。細かく分類することによって見積もりの精度があがります。
例えばページ内のヘッダー、フッダー、ひとつひとつのページ内のブロックごとなどに分けて、それぞれがどれだけ時間が掛かりそうかを最短と最大の時間で見積もっていきます。
もし例えばJavaScriptで機能を作り込まなければならず全く検討がつかないなどがあれば、それは後回しにして一旦飛ばし、他の部分をどんどん見積もっていきます。
作業時間の他に確認時間(デザインカンプ通りか見直す時間と修正時間)もきちんと細かく見積もると、より正確に見積もりできると思います。

先ほどの難しくて見積もりを後回しにした部分は、家でググったりして、プロトタイプを作ってみます。一旦作ってみたらある程度の見積もりはできるはずです。僕が居た会社はデータを持ち帰ることはできなかったので、覚えている範囲で家で作ってみるという感じでやっていました。その程度で大丈夫です。本当に全くわからない場合はすぐに上司や先輩に相談して方向性の検討をつけましょう。

「家で調べるなんて無料のサービス残業なのでは…」と思うかもしれません。もし会社で残業してやっていいのであればそれでもよいと思います。
僕の場合は普段、残業しても間に合わなかったので、11時くらいに退社して帰宅した後に調査が必要なときは深夜の2時とかまでいつもやっていました。土日を挟んで調査できる時は土日に調査・勉強するのは当たり前でした。

初心者の頃は経験・知識不足で時間が足りないので、自分の学習のためと僕は割り切ってやっていましたし、ここは人それぞれだと思います。しかしこれくらいやらないと未経験の状態から早く成長するのは難しいのではないかなと思います。そもそも土日はできる限り学習の時間を作っていたので問題なしでした。
僕がこれくらいやれたのは、仕事と思いつつも、どちらかと言えば好きな仕事だったから楽しんでやっていたというのもあります。

納期は長めに取ってもらう

先ほどの見積もりをもとに、納期に間に合うかを考えます。
細かく進捗計画を立てるべきで、1日毎に、この日にここまで終わらせないと間に合わないという計画を立てます。
おそらく他の作業も入ってくるでしょうし、一日に何時間の作業が取れるかをきちんと見積もります。残業は予定に含めず、例えば1日8時間の内、4時間は日々の割り振られる作業(日々の小さい仕事)、4時間は新規サイト(少し先に期限がある新規サイト制作など)の作業などという感じで計算します。逆にこれくらい作業できれば期日に間に合うという目算を元に上司に相談するのもありでしょう。

ギリギリだとダメなのでバッファも取ります。そして日々の作業で予定通りに進捗が進まない時に残業でカバーするなどがよいと思います。本来は残業はすべきではないと僕も考えていますが、新人の頃は自分の成長のためにも致し方ないと割り切った方が能力も上がるし、納期に間に合わせる努力をすることで信頼も獲得できると思います。

できれば見積もりできた時点で上司などにそれを見せて、こういう予定で進める予定だと伝えて相談するとよいと思います。
そして遅れが出た時はすぐに報告&相談をしましょう。できればリカバリー案などと一緒に相談するのがベター(例えば残業すれば間に合うかもとか)ですが、思いつかない場合はとりあえず遅れそうなことを報告し「リカバリー案は後で考えます」などとしてもよいと思います。とりあえず状況を伝えることが最優先です。そうすることによって仕事の割り振りなども変わってくる可能性があります。
ちなみに上司がいないような環境の場合は、ディレクターや同僚のコーダーなどに相談するのがよいと思います。

おすすめのタスク管理ツール

昔の僕はタスク管理のツールなどは知りませんでしたが、今の僕が昔の自分に進めたいのが「Trello」という無料で使えるタスク管理ツールです。個人で使う分には無料で必要な機能は使えます。
GTD理論に基づいて、タスクを細かく管理してこなしていくことが可能です。

【課題2】 自力の能力が足りていない。

初心者すぎて他の人よりもスピードが遅く、間に合わないパターンがあります。
人によりますが、技術がわからないディレクターの中には、過去の人はこれくらいの時間で出来たらから見積もり時間はこれくらいと適当に見積もって時間設定をしてくる人がいます。
実際に僕の経験談ですが、未経験で入った最初の会社のディレクターは実はほぼ全員がこのパターンでした。経験者と未経験者ではスピードが違うのは当たり前です。

解決方法

単純ですが勉強するしかないです。自己学習で知識の幅を広げるのが解決方法で、本を読んだり、最近であれば動画(ドットインストール・Udemy等)で学習するのもよいかもしれません。

自己学習でサンプルをたくさん作り、経験値を上げるのも有効な手段です。
本で読んだ知識を実際に手を動かして、いろいろ作ってみると理解が深まるはずです。HTMLやCSSは小さいサンプルの作成でも知識の幅を広げられるのでかなりよいと思います。
ちょっと試すくらいならローカル環境の他に、JS Fiddleなども手軽に試せて良いと思います。

【課題3】 経験不足でスピードが追いついていない。(遅い)

作ったことがあるパターンが少なすぎて、スピードが追いついていないことが初心者に多いと思います。
これも仕方ないことで初心者のスピードが遅いのは仕方ないことです。

解決方法

一度作ったことがあるものは、作り方がわかっているのでスピード感を持って作ることができます。

そのため初心者の頃は、自分で多くのサンプルを作って経験値を上げるしか無いと思います。個人的にオススメなのは本で、多くの本で学習をするのが早いと思います。金銭的に本をたくさん買う余裕がなければ、図書館で借りるのも手だと思います。地域によりますが、最新の技術書を借りれる図書館もあったりするので覗いてみたらよいかもしれません。

また学習する際にできるだけ多くの事例を見たほうがよく、すべてを自分で試していては時間に限度があるため、似たような構成のものは読むだけにして、必要なものだけ自分で実際に組んで見るというようにした方が早く学習できると思います。

他には、いろいろなサイトを見る時にどうやって組んでいるのだろうと、ChromeDevToolsなどで見る癖をつけると経験値が上がります。I/O 3000などのサンプルサイトを定期的に見るのもオススメです。

先輩や上司に効率よく聞く


わからないところは飛ばしてまとめておき、後ほど先輩や上司に一気に相談するというのも手だと思います。

  • 何度も聞くと相手の仕事の中断をしてしまい、迷惑がかかります。できるだけまとめて聞くようにしましょう。
  • 先輩や上司は、できない人が仕事ができるようになれば、その分自分の仕事の負担は軽くなるし、その人が失敗して自分たちが尻拭いをする可能性も下がるので普通はきちんと教えてくれます。
  • ちょっと同じくらいのレベルの同僚とかだと、教えてくれる人と、ライバル視して出し抜こうとして教えてくれない人が居たりします。できるだけ自分よりも明らかに能力が上の人に聞くほうが、正確でよいアドバイスをくれると思います。
  • 聞く時にもヒントを下さいといった形で聞くのがよいと思います。イチから全部教えてくださいだと、先輩たちも疲れてしまいます。アドバイスをください、自分で調べますといった姿勢の方がやる気がある人と思われて印象もよくなります。
  • 期限の時間が迫っているときはそのことを伝えて、迷惑がかかりますが、助けてもらいましょう。これは初心者の頃は仕方ないです。

参考:僕がHTMLとCSSで困ることはないなと思ったタイミング


参考までにどのくらいで、僕がHTMLやCSSに自信を持てるようになったかを述べておきます。
業務内容が違うWeb制作会社2社を経て、フリーランスになるタイミング(未経験から15ヶ月経ったくらい)でした。

  • 1社目:
    ・大手のウェブサイト保守がメインでHTML&CSSとPHP(フロントエンド)に関する知識が多く付いて自信にもつながった。
  • 2社目:
    ・WordPressのオリジナルテーマで30サイトほど作り、メンテナンスは100サイト以上行い、いろいろなデザインカンプのパターンを経験して、スピードも付いた。
    ・多くの失敗をしたので、同じ失敗を避けるようになり、失敗が減った。

この2社目を退社して、未経験から15ヶ月たったくらいの頃に、HTML&CSSで困ることはないと思うようになりました。
(知らないCSSはあってもデザインされた構成をスピーディーにほぼ悩むこと無く自在に組めるようになった)

ちなみに、フリーランスになってからは、納期に間に合わなくて大惨事になるという失敗をすることがなくなりました。
(もともと無理なスケジュール依頼で)間に合わない時は部分的に仕上げてリリースし、次のリリースで残りをリリースするなど、提案と相談を上手くできるようになったことも大きいと思います。
またフリーランスになってからは、ギークな開発系の会社で仕事をすることができるようになったため、CSS設計についてもコーディング規約がよりしっかりしていたりと、より深い知識が備わるようになりました。

フリーランスを雇える会社はそれなりの予算があるわけで、その会社で働くエンジニアの年収も高くなるため技術レベルの高い人が必然的に多くなります。そういう人たちと一緒に働き、コードレビューもしてもらえるようになるので、フリーランスになって主にJavaScript周りのレベルは数段上がりました。

まとめ

初心者が納期が間に合わないと悩んでいる時のパターンは、
「進捗管理ができておらず、納期に間に合わない。」
「自力の能力が足りていない。」
「経験不足でスピードが追いついていない。」
ということだと思います。

進捗管理は意識するだけで、すぐにでも解決できる可能性が高いので、意識して対応するようにしましょう。
進捗管理については、「早めに見積もりする」「できるだけ細かくして見積もりする」「納期を長めに取れないか交渉する」などで問題を発生しにくくできるはずです。

能力や経験不足はすぐにどうにかできるものではないので現状はつらいかもしれませんが耐えながら、常に学習を続けてレベルアップしていくしかありません。

ご参考になれば幸いです。

※当サイトでは一部のリンクについてアフィリエイトプログラムを利用して商品を紹介しています