本文へ移動

ホーム / EM / 第4部 開発の生産性

第4部 開発の生産性・第7章

開発の進め方

★★★ 必須10トピック・面接 5問

チームが速く、安全に、継続的に価値を届けるための計画・見積もり・リリースの仕組みを押さえる。

7.1スクラムとカンバン

用語★★★ 必須
ひとことで

不確実性を前提に、小さく区切って計画し、定期的に見直す。スクラムは期間で、カンバンは同時に進める量で区切る。

ソフトウェア開発は、作ってみて初めて分かることが多い仕事です。最初から完璧な計画は作れないので、小さく区切って計画し、定期的に見直すことを前提にします。

スクラムとカンバンの違いスクラムカンバン計画開発レビューふりかえり1〜2週間のスプリントをくり返す待ち作業中(上限3)完了同時に進める数を制限して流す
スクラムは「期間で区切る」、カンバンは「同時に進める量で区切る」
スクラムカンバン
進め方1〜2週間のスプリントごとに計画・開発・レビュー・ふりかえり期間を区切らず、作業を順に流す
量の調整スプリントに入れる量を決める同時に進める作業の数(WIP 制限)を決める
向いている仕事機能開発など、まとまった計画が立てられるもの運用・問い合わせ対応など、割り込みが多いもの
見る数字ベロシティ(1スプリントで終えた量)リードタイム(着手から完了まで)・スループット(期間あたりの完了数)

どちらか一方を厳密に守る必要はありません。機能開発はスプリント、運用は WIP 制限つきのカンバン、のように組み合わせるチームも多いです。どちらでも、ふりかえり(何がよく、何を変えるか)は欠かさないようにします。

ふりかえりの進め方

面接ではこう答える

スクラムは1〜2週間のスプリントごとに計画・開発・レビュー・ふりかえりを回すやり方で、まとまった計画が立てられる機能開発に向いています。カンバンは期間を区切らず、同時に進める作業の数、つまり WIP を制限して作業を流すやり方で、割り込みの多い運用や問い合わせ対応に向いています。どちらかを厳密に守る必要はなく、機能開発はスプリント、運用はカンバンと組み合わせることも多いです。どちらでも、ふりかえりで進め方を直し続けることを大事にしています。

7.2見積もりの方法

用語★★★ 必須
ひとことで

見積もりは当たらない前提で、相対・幅・実績を使って出し、進むたびに見積もり直す。

見積もりの幅は、進むほど狭くなる楽観と悲観の幅構想要件が固まる設計が固まる完成
最初の見積もりは幅が大きいのが当たり前。進むたびに見積もり直す

作る前の見積もりは、当たらないことを前提に扱います。始めたばかりは分からないことが多く、進むほど幅が狭くなります(不確実性のコーン)。

方法やり方使いどころ
相対見積もり「あのタスクの2倍くらい」と比べてストーリーポイントなどで表すスプリントの計画
三点見積もり楽観・最頻・悲観の3つで出す(例:2〜5週間、最頻3週間)関係者に日付を伝えるとき
実績から予測過去のスループット(期間あたりの完了数)から「この量なら何週間」と出す数か月の計画
スパイク未知が大きいものは、期限つきの調査タスクを先に入れる新しい技術・外部連携
分割1つの作業が1〜2週間を超えるなら細かく分けるすべて

よくある失敗は、見積もりを約束として扱い、外れた人を責めることです。次から大きめに言われ、予測の役に立たなくなります。ベロシティをチーム間で比べたり、目標にしたりするのも、ポイントの水増しを招きます。

面接ではこう答える

ソフトウェアの見積もりは、始めたばかりほど幅が大きく、進むほど狭くなります。そこで、タスク同士を比べる相対見積もり、楽観・最頻・悲観の三点で幅を出す方法、過去のスループットから予測する方法を使い分けます。未知が大きいものは期限つきの調査を先に入れ、大きな作業は1〜2週間以内に分けます。見積もりを約束として扱って外れた人を責めると、次から水増しされて予測の役に立たなくなるので、それは避けています。

7.3ロードマップ

用語★★★ 必須
ひとことで

ロードマップは日付の約束ではなく、何をどの順でなぜやるかの共有。今・次・その後に分けて確度の差を伝える。

Now / Next / Later のロードマップ今(Now)具体的な機能と日付確度が高い次(Next)おおまかな内容日付は幅でその後(Later)方向と狙いだけ状況で入れ替わる遠くなるほど不確か。月1回など定期的に見直す
ロードマップは日付の約束ではなく、何をどの順でやるかの共有

ロードマップは、日付の約束の表ではなく「何を、どの順で、なぜやるか」の共有です。「今(Now)・次(Next)・その後(Later)」に分け、近いものほど具体的に、遠いものほどぼんやり書くと、確度の差が伝わります。

区分書き方確度
今(Now)作っている機能と、終わる時期の見込み高い。週単位で話せる
次(Next)次に着手する課題と、解きたい問題中くらい。月単位
その後(Later)検討中のテーマ。解決策はまだ決めない低い。四半期単位

日付を出すときは「確度 80% で11月、早ければ10月」のように確度を添え、月1回など定期的に更新します。機能の名前より「解きたい問題」で書いておくと、途中でよりよい解決策が見つかったときに変えやすくなります。

面接ではこう答える

ロードマップは日付を約束する表ではなく、何を、どの順で、なぜやるかを関係者とそろえるためのものだと考えています。今・次・その後の3つに分け、近いものほど具体的に、遠いものは解きたい問題だけを書きます。日付を出すときは確度を添え、月1回など決まった間隔で更新します。機能名ではなく解きたい問題で書いておくと、よりよい解決策が見つかったときに柔軟に変えられます。

7.4優先順位の付け方

用語★★★ 必須
ひとことで

やることを価値とコストで並べ、期限のあるものと、運用・負債の枠を先に確保してから機能を入れる。

価値とコストで並べるすぐやる価値が高く、安い計画してやる大きな投資手が空いたら小さな改善やらない理由を書いて閉じる価値(高 → 低)コスト(小 → 大)
価値とコストは、どちらも「ざっくり」で十分。並べて比べることが大事

やりたいことは、いつもチームの力より多くあります。優先順位は、価値(何がどれだけよくなるか)とコスト(どれだけかかるか)で並べるのが基本です。

方法中身
価値とコストの2軸上の図のように4つに分けて、左上から着手する
RICE届く人数(Reach)× 影響(Impact)× 確信度(Confidence)÷ 工数(Effort)で点をつける
期限のあるもの法令対応・サポート終了など、期限を過ぎると困るものは別枠で先に入れる
枠を先に取る運用・割り込み・負債の返済の時間を、機能開発の前に確保する

EM は機能の優先順位そのものは PdM と一緒に決め、技術の仕事(負債・信頼性・運用)の枠を確保する役を担います。「やらない」と決めたものも理由を書いて共有すると、同じ議論のくり返しが減ります。

面接ではこう答える

優先順位は、何がどれだけよくなるかという価値と、どれだけかかるかというコストで並べるのが基本です。価値が高く安いものから着手し、点数で比べたいときは RICE のような方法も使います。法令対応のような期限のあるものは別枠で先に入れ、運用・割り込み・負債の返済の時間も機能開発の前に確保します。やらないと決めたものも理由を書いて共有し、同じ議論がくり返されないようにしています。

遅れは分かった時点で、すぐに伝えます。期日の直前に伝えると、選べる手がほとんど残っていません。伝えるときは、選択肢と、それぞれで何が起きるかを並べて、関係者と一緒に決めます。

調整のしかた中身注意点
範囲を減らす必須でない機能を後回しにして、期日に間に合わせる一番よく使う手。最初から「必須」と「あれば」を分けておく
日付を動かす範囲はそのまま、期日を延ばす後ろの予定(営業・広報)への影響を確かめる
人を足す他チームから応援を入れる遅れているプロジェクトに人を足すと、教える手間でさらに遅れることがある
品質を下げるテストやレビューを省く選ばない。障害と手戻りで結局遅くなる

「人を足す」については、『人月の神話』で知られるブルックスの法則(遅れているソフトウェアのプロジェクトに人を足すと、さらに遅れる)が有名です。新しい人が慣れるまでの時間と、やりとりの手間が増えるためです。足すなら、切り離しやすい作業を任せられる場合に限ります。

見積もりの方法

チームの時間を先に分けておく(例)機能開発約60%運用・割り込み約25%負債の返済約15%割合は過去の実績から決める。割り込みが多い週は機能開発のほうを減らす
割り込みの分を先に引いておけば、計画が毎回あふれることはない

障害・問い合わせ・他チームからの依頼などの割り込みは、計画に入れていなくても必ず来ます。過去の実績から割り込みの割合を見て、先に差し引いて計画します。

工夫中身
当番を決める割り込みを受ける人を週替わりで1人決め、他の人の集中を守る
窓口を1つに依頼はチケットやフォームで受ける。個別のチャットで受けない
見える化する割り込みにかかった時間を記録し、多い種類は元から断つ(ドキュメント・自動化)
断り方を決める急ぎでない依頼は次の計画で検討、と答えられるようにする

割り込みの当番は、オンコールの当番と同じ人にすると、障害対応と問い合わせ対応を1人で抱えて回らなくなることがあります。チームの大きさに合わせて分けるかを決めます。

チームの会議は、目的・長さ・決めることがはっきりしていれば少なくて済みます。目的のない定例は、集中の時間を細切れにします。

会議目的長さ・頻度の例
スタンドアップ困っていること・助けがほしいことを出す。進捗の報告会にしない毎日15分以内
計画(プランニング)次の期間にやることと、その順番を決める1〜2週間に1回
レビュー(デモ)作ったものを関係者に見せ、意見をもらうスプリントの終わり
ふりかえり進め方のよかった点・変えることを決めるスプリントの終わり
リファインメント次に作るものの中身と大きさを話し合う週1回
  • 集中の時間をまもるため、会議は午前か午後のどちらかに寄せる、会議のない曜日を作る、などの工夫をする。
  • 非同期(文章)で済むものは会議にしない。進捗はチケットやチャットで共有できる。
  • 四半期に1回、すべての定例について「まだ必要か」を見直す。

コードレビューは、品質を上げ、知識をチームに広げる場です。一方で、レビュー待ちは開発の待ち時間のうちで大きな割合を占めがちです。ルールをチームで決めておきます。

ルール例理由
PR を小さく目安は数百行まで。大きい変更は分ける小さいほど早く、ていねいに読める
最初の反応の目安半日以内に最初のコメントか承認待ち時間がリードタイムの大部分になりやすい
見る観点をそろえる設計・正しさ・テスト・読みやすさ。書き方の好みは自動整形に任せる好みの議論で時間を使わない
コメントの重さを書く「必須」「提案」「質問」などを頭に付ける直すべきか迷わない
承認者を偏らせない自動割り当て・ローテーション一部の人がボトルネックにならない

EM はレビューの待ち時間を数字で見て、偏りがあれば割り当てを直します。シニアのメンバーばかりがレビューしているなら、他の人にも任せることが育成にもなります。

CI/CD とボトルネック

ひとことで

小さな変更をこまめに出し、機能フラグやカナリアで一部から公開して、問題があればすぐ止められるようにする。

段階的に出して、問題があればすぐ止める1%社内・一部10%指標を見る50%問題なければ100%全員に各段でエラー率・応答時間を見る。悪ければ機能フラグで止める
デプロイ(コードを出す)とリリース(機能を見せる)を分けると、戻すのが速くなる

速く出すことと安全に出すことは、小さく・段階的に・すぐ戻せるようにすれば両立できます。

手段中身
トランクベース開発長く分岐したブランチを作らず、小さな変更をこまめにメインに入れる
機能フラグコードは出しておき、設定で機能の表示を切り替える。問題があれば設定で止められる
カナリアリリース一部のサーバーや利用者にだけ先に出し、指標を見てから広げる
自動の切り戻しエラー率が上がったら自動で前の版に戻す
リリースの時間帯人が見ていられる時間に出す。金曜の夕方や大きなイベントの直前は避ける

機能フラグは便利ですが、増えすぎると設定の組み合わせが複雑になります。使い終わったフラグを消す作業も計画に入れます。

面接ではこう答える

速く出すことと安全に出すことは、小さく、段階的に、すぐ戻せるようにすれば両立できると考えています。具体的には、長いブランチを作らずに小さな変更をこまめにメインに入れ、機能フラグでコードの配置と機能の公開を分けます。公開は1%、10%のように一部の利用者から始め、エラー率や応答時間を見てから広げ、悪ければフラグで止めます。使い終わったフラグを消す作業も計画に入れておきます。

ふりかえりの進め方場を整える目的・約束集める出来事・気持ち考えるなぜ起きたか決める1〜3個確かめる次回の最初に
意見を出して終わりにせず、変えることを絞って次回に確かめる

ふりかえりは、チームが自分たちの進め方を自分たちで直す場です。出た意見を並べて終わりにせず、次に変えることを1〜3個に絞って決めます。

型中身向いている場面
KPTKeep(続ける)・Problem(問題)・Try(試す)定番。初めてのチーム
よかった・もやもや・次に試す気持ちも出しやすい言葉で集める話しにくい雰囲気のとき
タイムライン期間の出来事を時系列に並べてから話すプロジェクトの終わり、長い期間
  • 決めたことには担当をつけ、次回の最初に「やってみてどうだったか」を確かめる。
  • EM が話しすぎない。ファシリテーターをメンバーで回すのもよい。
  • 同じ型が続いて飽きてきたら、型を変える。

この章のまとめ

🖨 まとめシート(印刷・PDF)
  • 小さく区切って計画し、幅のある見積もりと定期的な見直しで不確実性に向き合う
  • 優先順位は価値とコストで決め、割り込みと負債の枠を先に確保する
  • 遅れは早く伝え、範囲・日付・人のどれで調整するかを関係者と決める
  • 小さな PR・機能フラグ・段階的なリリースで、速さと安全を両立する
  • スクラムとカンバン:不確実性を前提に、小さく区切って計画し、定期的に見直す。スクラムは期間で、カンバンは同時に進める量で区切る。
  • 見積もりの方法:見積もりは当たらない前提で、相対・幅・実績を使って出し、進むたびに見積もり直す。
  • ロードマップ:ロードマップは日付の約束ではなく、何をどの順でなぜやるかの共有。今・次・その後に分けて確度の差を伝える。
  • 優先順位の付け方:やることを価値とコストで並べ、期限のあるものと、運用・負債の枠を先に確保してから機能を入れる。
  • 安全なリリース(機能フラグ・段階的な公開):小さな変更をこまめに出し、機能フラグやカナリアで一部から公開して、問題があればすぐ止められるようにする。

この章のクイズ

面接ではこう聞かれる

まず答えを見ずに声に出して答え、そのあと開いて比べる。

Q1スクラムとカンバンの違いは何ですか? どう使い分けますか?

模範回答

スクラムは、1〜2週間のスプリントごとに計画・開発・レビュー・ふりかえりをくり返すやり方で、期間ごとに「どれだけやるか」を決めます。カンバンは期間を区切らず、同時に進める作業の数(WIP)を制限して作業を順に流すやり方です。

使い分けは仕事の性質で考えます。機能開発のように、ある程度まとまった計画が立てられる仕事はスクラムが合います。運用や問い合わせ対応のように割り込みが多く、2週間先が読めない仕事はカンバンが合います。両方を持つチームでは、機能開発はスプリント、運用は WIP 制限つきのカンバンと分けることもあります。

どちらでも、ふりかえりで進め方自体を見直すことが一番大事です。形を守ることが目的にならないようにしています。

深掘りされたら

  • WIP 制限を入れると何がよくなりますか?
  • スプリントに割り込みが多く、毎回計画があふれるときは?

見られているポイント違いの説明と、仕事の性質による使い分け

Q2見積もりがいつも大きく外れるチームを、どう改善しますか?

模範回答

まず、外れ方を見ます。いつも遅れる方向に外れるのか、ばらつきが大きいのか、特定の種類の仕事だけ外れるのかで、手が変わるからです。過去のチケットで、見積もりと実績を並べてみます。

よくある原因と手は次のとおりです。仕事が大きすぎるなら、1〜2週間で終わる単位に分けます。分からないことが多いなら、期限つきの調査(スパイク)を先に入れてから見積もります。障害や問い合わせの割り込みが計画に入っていないなら、過去の割り込みの割合を差し引いて計画します。見積もりを一つの数字ではなく「2〜5週間、一番ありそうなのは3週間」のように幅で出すことも効きます。

そして、見積もりを約束として扱わず、外れても責めないことが前提です。責めると大きめに言うようになり、予測の役に立たなくなります。

深掘りされたら

  • 過去の実績から予測するとは、具体的にどうしますか?
  • ストーリーポイントと時間の見積もりはどう違いますか?

見られているポイント原因の切り分けと、具体的な打ち手

Q3期日が決まっているプロジェクトが、間に合わないと分かったらどうしますか?

模範回答

分かった時点で、すぐに関係者に伝えます。遅れの報告は、早いほど選べる手が多いからです。伝えるときは「どれくらい遅れそうか(幅と確度)」「理由」「選べる手」をそろえます。

選べる手は主に3つです。範囲を減らす(必須の機能だけを期日に出し、残りは後で出す)、期日を動かす、人を足すです。人を足すのは、新しく入った人が慣れるまで既存のメンバーの時間をとるので、終盤ほど効きにくい点に注意します。多くの場合、PdM と一緒に「期日に絶対必要なものは何か」を洗い出して範囲を減らすのが現実的です。

どれを選ぶかは事業側と合意して決め、メンバーに長時間労働で埋め合わせさせることはしません。最後に、なぜ遅れに気づくのが遅れたのかをふりかえり、次の計画に生かします。

深掘りされたら

  • 期日が絶対に動かせない場合は?
  • 遅れの兆しを早く見つけるために何をしていますか?

見られているポイント早い共有と、範囲・期日・人の選択肢

Q4やりたいことが多すぎて、チームの手が回りません。優先順位をどう決めますか?

模範回答

まず、やりたいことを1つの一覧に集め、それぞれの価値とコストをざっくり見積もります。価値は「誰の何がどれだけよくなるか」、コストは「何人で何週間か」です。PdM と一緒に並べ、価値が高くて安いものから着手します。

その前に、運用・割り込み・負債の返済の時間を過去の実績から先に確保し、法令対応やサポート終了のように期限があるものは別枠で入れます。残りの機能は、やると決めたもの以外は「今はやらない」と理由つきで共有します。例えば、以前のチームではこれで同時に進める案件を半分に減らし、1つずつ終わらせる速さが上がりました。

深掘りされたら

  • PdM と優先順位が合わないときはどうしますか?
  • 負債の返済の割合はどう決めますか?

見られているポイント価値とコストで並べ、技術の仕事の枠を先に確保できるか

Q5リリースのたびに障害が起きるチームを、どう改善しますか?

模範回答

まず、直近の障害がどんな変更で起きたかを並べ、変更の大きさ・テストの有無・出し方を確かめます。多くの場合、変更が大きくまとめて出ている、本番に近い環境で確かめていない、すぐ戻せない、のどれかが原因です。

打ち手は、PR を小さくしてこまめに出す、機能フラグで公開と配置を分ける、一部の利用者から段階的に出してエラー率を見る、悪ければ自動で切り戻す、の順に入れていきます。変更失敗率と復旧時間を毎月追い、改善したかを確かめます。リリースを減らして慎重にする方向は、1回の変更が大きくなるので逆効果になりやすいと伝えます。

深掘りされたら

  • 機能フラグが増えすぎたらどうしますか?

見られているポイント小さく・段階的に・すぐ戻せる方向で改善できるか