これはマイネットエンターテイメント Advent Calendar 14日目の記事です。
hazama-mynet がお送りいたします。1日目の記事でいうと『使ってくれるユーザーさんの喜ぶ姿が見たい、という思いが強いタイプ』のエンジニアです。
はじめに
エンジニアは開発工程で最後のケツ持ちをすることが多いです。〆日から逆算して作業を前もって行ったり、スケジュール通りに行かなかった部分の帳尻合わせをしたり...
なんだかんだ、最もスケジュール管理の力が必要とされる職種と言って間違いないでしょう。今回はそんなエンジニアのスケジュール管理について、自身の考え方を含めて書かせていただきます。
前提
- Webサービス開発を行うことを想定しています
振り返ってみる
開発が始まって日にちは進んでいきますが、仕様が決まっていなかったり、別の作業が差し込んできたり...
気付けばもう開発期間がない!
こんな経験はありませんか?
ええ、大いにあります。
このとき、何がダメだったのか、どうすれば良かったのか、思い出せるでしょうか。今の作業がその繰り返しになっていませんか。決められたスケジュール通りに作業するだけになっていませんか。それは、決してスケジュール管理ができているとは言えません。
# スケジュール管理とは 『自身がこなせる作業量を把握し、与えられた作業に対して、是非の判断を行うこと』です。 開発初期に提示される決められたスケジュールは、全体を管理する人の"出来たらいいな"であり、正確なものではありません。唯一正確なのは開発の〆日です。工程を担当する各パートが〆日を元にスケジュールを提示し、すり合わせを行うことで本当のスケジュールができます。 決められたスケジュールに対して、是非の判断を行わず、そのスケジュール通りに進めることを選んだ時点で、完了させることが必然となります。この場合、スケジュールがキツいなどと言うことは論外です。なぜなら、それを自身で選んで、完了させることが必然になっているからです。 # スケジュール管理のステップ スケジュール管理をするために、いくつかのステップがあります。このステップを何度も重ねることによって、より正確なスケジュール管理を行えるようになり、開発がスムーズに進みます。 ### ステップ1 Webサービス開発を行う際、いつまでに、どのようなものを制作するか、最低限の情報はあるかと思います。その情報を元に逆算して、実装に必要なもの、それらが揃った上でできうるものを提示するのがスケジュール管理の最初のステップです。どのようなものを制作するかが決まっていなかった場合、担当者に作成を求めることもこのステップに含まれます。 ### ステップ2 Webサービス開発はアジャイル型開発を採用していることが多く、短いスパンで追加実装ができるため、仕様を細かく分けることが可能です。 開発初期で提示される決められたスケジュールでは、制作する予定のものを実装する期間が足りない場合があります。その場合に制作する予定のものを細かく分け、次の期間に一部実装するなどの折衷案を提示するのがステップ2です。 ### ステップ3 ステップ1、ステップ2を行い、決められたスケジュールではなく、自身が作ったスケジュール通りに実装を行い、実装を進める上で思った以上に作業が進んだ、または遅延した場合にその原因を考え解決していく。そうして自身のスケジュール感を研ぎ澄ましていくことが最後のステップです。 # スケジュール感を養う方法 スケジュール管理する上で、スケジュール感を養うことは非常に重要です。スケジュール管理のステップ1で提示するスケジュールを正確なものにするために、各作業にどれだけの時間が必要かというのを把握する必要があります。スケジュール感を養うために以下の点を意識しておくと良いです。 ### 1. やるべきことを書く 朝、今日やるべき作業書き出します。新しく作業が入ってきた場合にもこれに追加します。やるべきことを把握することで、手をつける前に前もって何が必要かを考える癖がつきます。また、やるべきことを書くことで作業忘れを防止することもできます。 ### 2. 優先度をつける やるべきことに優先度をつけます。優先度が高いものから処理していくのですが、作業をやるときは手をつけたものが完了するまではそれを継続します。優先度が非常に高いものがきた場合は、現在の進捗状況とを天秤にかけて判断します。人間は1つのことを集中的に行った方が能率も高いため、できる限り手をつけたものが完了するまでは他のことをしない方が良いです。 ### 3. 作業量を測る これが最も掴みにくいです。なぜなら、やったことがない作業の作業量を見積もるのは難しいからです。新しい作業を行う際はどれくらいの時間がかかるかを想定しておき、それに対して実装完了時にどれだけの差異があったか、その差異はなぜ起こったのかを見直します。そうしてどんどんと精度を上げていくしかありません。 # まとめ 技術的な話ではなく、考え方の話となってしまい申し訳ありません。 スケジュール管理はエンジニアだけでなく、どの職種にも当てはまるとても重要なスキルです。初期段階でスケジュールをすり合わせておくことで、制作が終わったときに遅延のボトルネックがどこにあったのか、次はどう改善すれば良いのかも見えやすくなります。この記事内に少しでもお役に立てることが書けていれば幸いです。 効率よく作業をこなせるスケジュール管理をして、定時に退社しましょう。 最後までおつきあいくださり、ありがとうございました。次回は masao-fukase さんがお送りします。