私は伝統的にスクラムの原則を使用してきた開発組織の一員です。 3週間のスプリントがあり、その最後に、お客様がオンプレミスでインストールするソフトウェアアーティファクトを独自の裁量で作成します。ほとんどのお客様は、奇妙なスプリントをすべてスキップすることを選択しているため、6週間ごとにのみインストールします。
これで、私たちのソフトウェアを使用する、またはすでに使用しているいくつかのブランチを持つ、新しい大規模な顧客がいます。各ブランチには、わずかに異なる要件があり、生産には厳しいスケジュールがあります。
数か月後の状況:
-登録ブランチを編集-
Origin/masterで開発しています。ただし、現在リリース5.0.12を開発中であり、顧客が5.0.10で緊急に必要としているバグ修正または機能があるとします。この場合、5.0.10.1と5.0.11.1へのパッチを選択します。顧客固有のブランチはなく、誰もが同じソフトウェアを入手できます。
-編集の終わり-
私はスクラムがこの種の仕事にもはやふさわしくないと確信しています。私はDevOpsに精通していませんが、私の理解では、DevOpsは迅速かつ頻繁な展開に基づいて構築されています。私の理解が正しければ、それも当てはまりません。
これに対処するためのベストプラクティスはありますか?我々がすべき:
いいえ。スクラムは、発生している問題と正確に対抗するように設計されています。
バグができるだけ早く報告されたら、バグを修正する反応的なアプローチに切り替えることができますが、これには、予測可能な完了日と、多くの場合ソフトウェアの安定性が犠牲になります。
プッシュバックして、すべてのリクエストがバックログに入れられ、優先されることを確認してください。テストに費やす時間を増やし、リリースするものが正確に要求されたものであり、バグがないことを確認します。バグのない週4回のリリースよりも、欠陥のない月1回のリリースを行う方が得策です。
ただし、3週間はスプリントには長すぎるとも言えます。 1週間のスプリントに移動します。
さくらんぼ狩りをやめろ!バグ修正をブランチにマージします。それから離れてではなく、単一のコードベースに向かって移動するようにしてください。
より多くの人々を雇います。どの方法を選択しても、1日は数時間しかありません。もっと仕事があるなら、もっと人が必要です。
Re:スプリントの長さ
どのスプリントシステムでも、少なくとも3つのスプリント、つまり顧客がスプリント1の結果を確認できるまでの所要時間は、スプリント2の間にバックログに発生する変更を示唆しており、スプリント3で完了する可能性があります。
この特定のケースでは、お客様は必ずしもすべてのスプリントをインストールするわけではなく、すぐには戻らないため、6週間後にインストールを検討し、9週目から11週目に15週目までの実装について問題を報告し、次に修正プログラムをインストールします。 21週目です。ほぼ6か月周期です。
1週間のスプリントがある場合、顧客は第6週にインストールし、第9〜11週にリクエストを取得して、第12週の次の6週間のサイクルに修正をインストールできます。
私の経験では、1週間のスプリントより短くすることは現実的ではありません。ちょうどビジネスのリズムと労働週の面で。 「来週までに完了」は許容されます。「2週間以内に完了します。他のATMに取り組んでいるため」は理解できる遅延です。 'SCRUM'は受け入れられないため、4週間で完了します。
特に新しい大口の顧客を引き受けたことにより、問題が何であるかを正確に指で正確に把握したかどうかはわかりません。スプリントの目標/期限を逃し始めていますか?品質が低下していますか?スループット/速度の低下が見られますか?バックログタスク(ロードマップに関連していると思います)にあまり取り組んでいないため、競合する見込み顧客を失っていますか?新しい顧客が原因で、作業構成がよりメンテナンス/バグ修正タイプの作業に変更されたという事実以外に何が変更されましたか?そして、問題を修正するためのリードタイムが近い将来に増加するのではないかと心配していますか?
フィードバックを提供してくれる顧客がたくさんいるのは良いことです。そして、少なくとも一時的には、製品ロードマップで作業できないことが悪いことではありません。おそらく、今こそ、家を整え、DevOpsについて学び、実装し、テストの自動化を導入し、チームメンバーの一部を殺害するときです。
ここでは、かんばんがそうするのを助けることができます。スクラムをあきらめる必要はありませんが、問題の改善と解決を支援するために、その上にカンバン(多くの人が呼ぶスクラムバン)を使用してください。かんばんはいくつかの方法で役立ちます-
現在の状況は複雑なので、列レベルと特定のスイムレーンの両方でWIP制限を実装できます。
かんばんが、現在の開発者管理手法の分析と改善に役立つことは間違いありません。必ずしもスクラムをあきらめる必要はありません。 Scrumbanについてさらに詳しく知りたい場合は、 ここ を検索してください。
HTH-すべて最高!
あなたの質問には、これがプロセスの問題以上のものであると私に思わせるいくつかの事柄があります。作業項目管理については、すでにいくつかの素晴らしい答えがあります。
リード/サイクルタイムを測定することがサポート効率を分析する最良の方法であることに同意しますが、お客様がチケットを開いてからお客様の環境でクローズされるまでの時間を必ず測定してください。バニティ開発の測定基準は何の意味もありません。彼らが行うことは、開発者に顧客の費用をよく見せるだけです。
スプリントは作業を解決してピボットできるようにするための最良の方法であることに同意します。私は1週間のスプリント提案で完全に販売されていません。これは、最後に展開するために必要な労力に依存します(タコのようなものによる展開の自動化を検討したい場合があります)。
しかし、他の誰も持っていない私が提起したかった大きなポイントは、複数のブランチについてのあなたのコメントです。
あなたが説明することから、コードベースの複数のブランチがあり、それらの修正は2つの間でマージされる必要があります。ここで間違った方向に進んでいる場合、ソフトウェアの新しいフレーバーが必要な場合はどうなりますか?新しいクライアントを引き受けるとどうなりますか?あなたのソース管理はますます成長し、ますます管理しにくくなります。
トランクベースの開発に移行する必要があります(または少なくとも短期間の機能ブランチ)。機能のトグル/ロール/構成を使用して、クライアント/プロジェクトごとにソフトウェアをカスタマイズできます。
これを行うと:
コードのプッシュアウトが容易になるほど、機能の開発が容易になります。しかし、修正を展開する方が簡単です。つまり、チームが現在直面しているサポート作業が容易になります。何が起こっているのかわからないので、ログをさらに展開してください。今日解決する必要のあるバグを見つけました。DLLパッチを適用せず、新しいバージョンをデプロイしてください。
最後のポイントです。あなたはサポート作業に費やす時間について心配しているはずです、そうすべきです、それはたくさんのことであり、すべての中断はあなたたちの時間を要します。 スプリントに取り込む作業の基準を定義します、そうであれば、同等の作業項目をプッシュします。私の提案は、「P1基準」を24時間のコールアウト基準と同じにすることです。結局のところ、アナリストが午前2時にベッドから出ることがそれほど重要ではない場合、バックログで最も重要な作業を犠牲にすることはおそらく十分ではありません。
測定時には、計画して完了した作業のSPを記録します。不足しているスペースは、サポート作業の中断を表しています。あなたの懸念は、「計画された作業のどれだけを提供したか」である必要があります。解決するためにすべてをドロップしなかったサポート問題は、計画することができますが、バックログ項目に対してそうします。
[〜#〜] tldr [〜#〜]