はじめに
こんにちは、新卒でバックエンドエンジニアをしていますなかじです!
アドベントカレンダー18日目の記事です!
ついこのあいだまで、新規事業の開発を行っていたのですが、現在既存のプロダクトのプロジェクトをゴリゴリやっています!
インターンから働き始めて、見積もりをすることが多く、今回はプロジェクト見積もりから実装(進行形)を行ったのですが、やや順調に進んでおり、そこでプロジェクト初期の頃にやってよかったなーと思うことをご紹介します!
プロジェクトについて
ここで言うプロジェクトとは、やや不確実性の高めの要件がまだ完全に固まっていなかったり、技術的に未知な要素が多かったりするプロジェクトのことを言っています!
私が担当したプロジェクトも、初期段階では、要求はあるが仕様が不明確で、この日には機能は必ずリリースしないといけないとう状況でした!
そんな状況で取り組んでよかったことを3つ紹介します!
よかったこと
- 機能単位で分けてリリースできないか考えて見積もりを立てたこと
- 期限を基準にタイムラインを引かなかったこと
- 目標を決め、機能単位でお触り会を実施すること
1️⃣ 機能単位で分けてリリースできないか考えて見積もりを立てたこと
プロジェクトでは、最初に「いつまでにこの機能ができていないといけない」と言う期限が決まっていることが多いです!
しかし、依頼されるタスクの粒度としては、「プロダクトの〇〇機能がほしい」、「プロダクトのこの機能で〇〇できるように拡張したい」と比較的ざっくりしたものが依頼されました。
そこで、着手する際には1週間ほどかけプロダクトを理解し、依頼されたタスクの粒度から、タスク分解しました。
そのタスク分解の粒度を、触るファイルで競合は起きないかや、フィーチャフラグなどを利用し分割リリースできないかを考慮した上、機能単位で分けてリリースできるかを重視して考えたことが良かった点だと思っています!
最終的なタスクの粒度は、タスクが1スプリントで終わりそうな粒度まで細分化することを心がけました!(実際できていたかわからないですが)
2️⃣ 期限を基準にタイムラインを引かなかったこと
当初は、期限を基準にタイムラインを引こうとしていました。
期限を基準にタイムラインを引くとは、たとえば「12月25日までにこの機能を完成させなければならない」という期限を起点に、そこから逆算してタスクを配置する方法です。(多分あるあるだと思います!)
しかし、「期限に縛られず、タイムラインをひいたほうがいい」と先輩エンジニアのアドバイスをいただきました。
タスク細分化後、現在からタイムラインを引いていき、その上で「何日オーバーしそうか」「どれくらいヘルプがあれば間に合いそうか」を検討しました。ヘルプのためのチーム全体のリソースを考慮できたのは、今思えば、とても良かったと思います。
もし、期限通りにタイムラインを日いいていたら、今頃、遅れが積み重なり、大惨事になる未来がうっすら見えていました。💦
3️⃣ 目標を決め、機能単位でお触り会を実施すること
どのプロジェクトでもあるあるですが、長期間になってくると途中で目標を見失いがちです!
そこで、今回のプロジェクトの見積もりは半年だったので、3ヶ月ごとに明確なスコープを設定し、「この期間でここまでは絶対やり切るぞ!」という基準を設けました。
新規プロダクトにいたときも、感じたのですが、長期のプロジェクトでは、機能単位でお触り会を実施することはすごくいいなと思っています!
お触り会とは、普段の開発チームとは別に、CSなどビジネス側の人に触っていただく会のことです!
お触り会が目標になって、良い一段と目標を追いやすくなる気がしています!
まとめ
半年という長期間で不確実性の高いプロジェクトに取り組む中で、以下の3つの工夫を行いました
- 機能単位で分けてリリースできないか考えて見積もりを立てたこと
- 期限を基準にタイムラインを引かなかったこと
- 目標を決め、機能単位でお触り会を実施すること
これらの施策をしたことで、柔軟に進められる環境を整えることができたなと思っています!
同じような状況にある方の参考になれば幸いです!
PR
株式会社HRBrainでは、一緒に働く仲間を募集しています!
興味を持っていただけた方はぜひ弊社の採用ページをご確認ください!