=================================== 34:一度に実装する範囲を小さくしよう =================================== .. maigo:: 一気に遅れを取り戻すためにタスク分割を省略? * 先輩T:SNS連携の実装って今どうなってる? なかなかレビュー依頼が来ないけど何かハマってる? * 後輩W:SNSへの通知機能、予定より遅れていますが、もう1週間くらいかかりそうです。 * 先輩T:え、どうしたの、けっこうかかってるよね。 * 後輩W:SNSの認証が必要で、そのライブラリの使い方に手間取りました。コメント欄にSNSに通知するための機能がまだ途中で、ここにもSNSのメンションの自動補完が必要だし、あと、連携解除する機能が必要なこともわかったのでそれも……。 * 先輩T:ちょっとまって! それだとやることが増えていって、いつまでも終わらなそう。だから、全部別々に分けてレビュー依頼しましょう。 **機能の粒度** が大きくて、作るのもいろいろ考えることが多くて大変だよね。 * 後輩W:はい、実はすごい大変で……。 * 先輩T: **大きいチケットは分割しよう** 、っていうのはこのあいだ『Pythonプロフェッショナルプログラミング』 [#pypro3ticket]_ 5章の「チケットを分割しよう」を読んで納得してたと思うんだけど、今回はどうして分割できなかったの? * 後輩W:粒度が大きすぎるのは認識していたんですが、もう遅れているので **分割に時間かけてる場合じゃない** と思って……。 * 先輩T:なるほど、一気に実装して遅れを取り戻そうとしたのか。 :doc:`../実装の進め方/35-基本的な機能だけ実装してレビューしよう` に続く .. index:: 見積もり SNS連携のような機能を実装する場合、見た目はSNSに投稿するだけの簡単なものでも、内部ではOAuth等による認証が必要だったり、トークンをデータベースに保存しておくといった **多くの前準備** が必要になります。 こういったコードを書いたことがないと、実装にどのくらいの時間が必要なのかの **見積もり** ができません。 .. [#pypro3ticket] 『Pythonプロフェッショナルプログラミング第3版』(ビープラウド著、秀和システム刊、2018年6月) .. omission:: ベストプラクティス ================== 一度に実装する範囲を小さくしましょう。 .. index:: タスクばらし 「SNS連携機能」のような一言で済む機能であっても、実装する内容は多岐にわたります。 あるいはちょっとした機能だと思っていたものでも「実装し始めると芋づる式にやることが増えていく」というのはよくあるハマリパターンです。 あれもこれも、と手を広げる前に **タスクばらし** をしましょう [#taskbarashi]_ 。 .. [#taskbarashi] 『管理ゼロで成果はあがる~「見直す・なくす・やめる」で組織を変えよう』(倉貫義人著、技術評論社刊、2019年1月)または著者のブログ記事 https://kuranuki.sonicgarden.jp/2016/07/task-break.html .. omission:: 関連 ===== * :doc:`../実装の進め方/39-開発アーキテクチャドキュメント`