海と山が好き

海と山が好きだけど埼玉に住むおっさんが遭遇したアジャイルとかのはなし

なぜ割り込み仕事に悩まされるのか

スプリントへの割り込みに対してどう対処するか。

スクラムをやっていて一番悩まされることが、スプリントへの割り込みどうするか。

基本的には、スクラムマスターが スプリントへの割り込みタスクを防止するように割り込み依頼者に伝える。とある。でもそうはいっても難しいというのをよく聞く。つらい。

 

なぜ割り込みが発生するのか

 

<答え:ビジネスはスプリントなんて知ったこっちゃないから>

 

スプリントというのは、スクラムという作る側のプロセスの問題であって、スプリントに合わせて世の中が動いているわけではない。

 

逆に、スプリントはビジネスに対して制約を与える。例えば、1ヶ月に施策を試行錯誤できる回数を制限する。

 

この認識を明確に持っていない場合、割り込みを断る行為はかなりツラい戦いを強いられる(後述)

 

----

 

スクラムにおいては、”スプリントの期間で見たときに” Obvious な領域にいるべきだと思っている。

f:id:Bashiko:20200622232119p:plain

Cynefin framework

 

Waterfall をやるほどの見通しはないけど、スプリント期間程度の見通しを持ってチームに Go を出せる。

何を達成すべきか明確であるからこそ、スプリント「計画」を立ててもムダがない。

逆に、その期間で何を達成すべきかが Fix できない場合、計画すべきではない

これはウォーターフォール開発で要件定義した内容が Fix できなかったということと、構造が一緒。

 

ウォーターフォールは要求の変化に追従できない(することをあまり想定していない) 

スクラムもスプリント期間より短い要求の変化には追従できない(することを想定していない)

 

一方で、(再掲になるが) そのスプリントの期間はビジネスから見て意味はない。頼んだ覚えもない。

 

そこの期待値のズレが起こると、割り込みが発生する。割り込みを断れば、あいつらはスプリントという期間を勝手に決めて柔軟ではないと言われる。

これってウォーターフォールが Dis られてた構図と一緒じゃん。

 

逆に言えば、タイムボックス(スプリント)において、

- スコープを変えない(スプリントのスコープを変えない=割り込まない)

- ゴールをずらさない(Acceptance Criteria を変えない)

という約束があるからこそ、スプリント計画を立てても無駄じゃなくなるし、チームも達成に向けて全力を尽くすようにコミットすることができる。

この約束が破られるのであれば、チームはコミットできないし、結果としてチームのパフォーマンスも下がっていく。

 

この規律を破ってしまうメンタルもわからなくはない。

チームは心理的プレッシャーから解放されダラダラやってもスコープ変更を言い訳にできるし、PO も事前に何をやるべきかを判断してチームに委ねる責任から解放され、ダラダラと困ったときに依頼すればよいという状態になる。

ただし、こうなるとまず確実にプロダクトは成功しない。よっぽどイケてるポジショニングしてると体力フルフル大企業サマみたいなケースでない限り。

 

----

別の表現で理解する

この問題をもうすこしわかりやすく理解・整理する上で、サーバー性能を考える場合とアナロジーを持ってきて説明することが多い。

 

f:id:Bashiko:20200625173451p:plain

 

サーバーが要求を受けて、レスポンスを返すまでのいわゆる「レイテンシ」は、非機能要求のなかで性能要件として定義することが多い重要な要件の一つ。

  

どれくらいレイテンシが低くないといけないのかは、そのシステムが使われるドメインによる。

 

たとえば、あるシステムのレイテンシが 「0.1 秒」だったとする。

これは早いのか、と言われれば、どんなサービスに用いるシステムなのか次第、という回答になるのと一緒。

 

東証の取引システムであれば、お話にならないくらい遅いシステムだろう。

東証、予算20億で往復1ミリ秒以下の超低レイテンシを実現 - ITmedia エンタープライズ

 

逆に、社内の経費精算システムとかであれば、怒られることはないだろう。

 

「要求を受けてから返すまでの時間がどれくらいが許されるのかは、それが置かれているドメイン次第で決まる。」

 

というのは、明確にしておかないといけない。

 

それを踏まえた上で、スプリント期間という、レイテンシを考えてみると、どれくらいの期間で返せばいいのかを決めるのは、そのチームが置かれているビジネス環境次第であって、スクラムチームが決めたスプリント期間だから、というのは理由にならない

それは、「このサーバは性能が**なので、これ以上のレイテンシで作動することはできませんが何か?」と非機能要件を満たしていないサーバーを持ってきて開き直っているのと同じ。

f:id:Bashiko:20200622232207j:plain

どこまで決めつけてアクセル踏んでハンドル切っていいですか、というのを決めるのは、道路の見通しの良さであって車の性能で決めるものじゃない。

PO がドメインに対して手探りすぎる場合もこの場合に含まれる。何を実現するかを決める人が目の前しか読めていないのでは、先を見通せていないリスクはそりゃ高い。

 

個人的な感想を言えば、スプリントのタスクのうち、15%以上が割り込みタスクであるなら、そのスプリント期間は長すぎる。もちろん、スクラムマスターが割り込みを防いだ上でも尚差し込まれるという前提で。

 

 ----

 じゃあどう対処するのか

長くなったからまた別で書く。割り込ませないための方法も含めて。