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

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

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

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

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

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

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

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

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

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

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

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

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

1

『Pythonプロフェッショナルプログラミング第3版』(ビープラウド著、秀和システム刊、2018年6月)

cover

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

ベストプラクティス

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

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

2

『管理ゼロで成果はあがる~「見直す・なくす・やめる」で組織を変えよう』(倉貫義人著、技術評論社刊、2019年1月)または著者のブログ記事 https://kuranuki.sonicgarden.jp/2016/07/task-break.html

cover

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