34:一度に実装する範囲を小さくしよう

プログラミング迷子: 一気に遅れを取り戻すためにタスク分割を省略?

  • 先輩T:SNS連携の実装って今どうなってる? なかなかレビュー依頼が来ないけど何かハマってる?

  • 後輩W:SNSへの通知機能、予定より遅れていますが、もう1週間くらいかかりそうです。

  • 先輩T:え、どうしたの、けっこうかかってるよね。

  • 後輩W:SNSの認証が必要で、そのライブラリの使い方に手間取りました。コメント欄にSNSに通知するための機能がまだ途中で、ここにもSNSのメンションの自動補完が必要だし、あと、連携解除する機能が必要なこともわかったのでそれも……。

  • 先輩T:ちょっとまって! それだとやることが増えていって、いつまでも終わらなそう。だから、全部別々に分けてレビュー依頼しましょう。 機能の粒度 が大きくて、作るのもいろいろ考えることが多くて大変だよね。

  • 後輩W:はい、実はすごい大変で……。

  • 先輩T: 大きいチケットは分割しよう 、っていうのはこのあいだ『Pythonプロフェッショナルプログラミング』 [1] 5章の「チケットを分割しよう」を読んで納得してたと思うんだけど、今回はどうして分割できなかったの?

  • 後輩W:粒度が大きすぎるのは認識していたんですが、もう遅れているので 分割に時間かけてる場合じゃない と思って……。

  • 先輩T:なるほど、一気に実装して遅れを取り戻そうとしたのか。

35:基本的な機能だけ実装してレビューしよう に続く

SNS連携のような機能を実装する場合、見た目はSNSに投稿するだけの簡単なものでも、内部ではOAuth等による認証が必要だったり、トークンをデータベースに保存しておくといった 多くの前準備 が必要になります。 こういったコードを書いたことがないと、実装にどのくらいの時間が必要なのかの 見積もり ができません。

cover

(中略)詳細は書籍 自走プログラマー をご参照ください

ベストプラクティス

一度に実装する範囲を小さくしましょう。

「SNS連携機能」のような一言で済む機能であっても、実装する内容は多岐にわたります。 あるいはちょっとした機能だと思っていたものでも「実装し始めると芋づる式にやることが増えていく」というのはよくあるハマリパターンです。 あれもこれも、と手を広げる前に タスクばらし をしましょう [2]

cover

(中略)詳細は書籍 自走プログラマー をご参照ください

関連