web-dev-qa-db-ja.com

「メイン」機能のバックログと並行する「一口サイズ」のタスクのバックログ?

サイロ化された「孤独な狼」の開発部門構造で2年以上働いた後、私たちはアジャイルSCRUMを採用しています。すごい。私はアジャイルが好きです。開発者として、無数の利害関係者がプロジェクトを次々とプロジェクトに押し込むことなく、集中力、忙しさ、生産性を維持します。

ただし、現在の「モデル」ではなくSCRUMに移行することには、開発以外の人々が少しでも気に入らない点があると思います。それが、「待っている間に」私たちに小さな変更をさせる現在の能力です。私たちの開発の大部分は社内での消費のみを目的としており、ほとんどが同じ建物内にいます。そのため、他の部門のリーダーまたはマネージャーが特定のアプリケーションの「コードベースの所有者」に来て、小さなものを要求することは長年にわたって一般的な習慣でした(場合によってはそれほど小規模ではありませんが、3人ではなく、これらの「ドライブバイ」に基づく週のプロジェクト)。私たちの上司でさえ、このように育てられたものを中継することがあります。多くの場合、その時点で問題のコードベースで作業している場合は、ソースファイルをポップアップして変更を加え、肩越しに実行して、変更が目的のものであることを確認してから確認します。これをSubversionに組み込んで、次のビルドに含めます。

基本的なアジャイルSCRUM方法論では、これらの微調整は、欠陥(以前に消費されたストーリーで指定された要件を満たしていない)または新しい小さなストーリー(すべての指定された要件を満たしましたが、これらの要件は不完全、あいまい、または不正確でした)として記録されます、またはユーザーが新機能を見ると、出荷後に変更されました)。どちらにしても、大多数はゼロではなくても最大で1ポインターであり、優先度は比較的低くなります(システムは現在の状態で使用できますが、so場合、はるかにクールです...)、バックログをトップダウンで作業するときにスプリントに持ち込まれる可能性が低くなります。

この可能性は、他の部門によるアジャイルプロセスへの積極的な反対の源として開発会議で提起されました。他の部門は、要求に応じて現在の小さな調整を行う能力よりも「アジャイル」ではないと考えています。これはIMOの正当な懸念事項です。 POの背後にある利害関係者は、何が最も重要であるかについて常に同意するわけではありません。なぜなら、それらはすべて同じ視点を持っているわけではないためですが、最終的な決定を下すのは通常はマネージャのみであり、したがって、その偏見は製品バックログに表示されます。

その後、暫定的に「キャンディージャー」と呼ばれた解決策が提案されました(捨てられた別の用語は「グレイビーボート」でした)。さまざまな部門の「小さな人」によって要求された小さな調整は、既存のストーリーの欠陥ではなく、チーム内のコンセンサスまたは称賛によって開発者の日数の半分未満を要すると推定され、それはエンドユーザーの意見において、ユーザーエクスペリエンスに対する即時の重要なプラスの影響は、プライマリバックログと並行してリストに記載されます。それらは「ストーリー」として識別されますが、優先順位付けの対象となる「ビッグ」ストーリーの主要なバックログとは別に保管されます。スプリントの通常の進行中にいつでも、これらの微調整の1つを行うことができるシステムの領域で偶然に作業していて、Tweakを簡単にする場合、Tweakをスプリントに組み込んでコード化することができます。より大きな物語と一緒に。これを行う必要はありません大きなストーリーやその他のコミットされた作業の完了を危うくします。 POもこのリストにアクセスでき、Tweakを含む基本機能に触れる次のユーザーストーリーに取り組んでいる場合、要件としてストーリーに折りたたむことができ、他の場合と同様に要件を満たします。その他。これにより、調整がより早く行われる可能性が高くなると考えられていました。

これは私たちの間で "ええと、"のスクラムマスタートレーニングを持つ反応を引き起こしました。 1つのバックログがあります。 2つのバックログは、#1アイテムが本当に最も重要であるという質問を紹介します。リストのアイテムがreal速度、およびストーリーが実際に属する2つのバックログのどちらか(サイズ/複雑さの境界には、どちらか一方に比較的恣意的に該当する場合があります)。 「プロセスを機能させる」と私たちは言った。変更が本当にエンドユーザーにとって重要である場合、彼らは部門の責任者が時間/お金の決定をボードに行うのに十分なノイズを出し、バックログのトップに対する開発チームの意識にぶつかります。

私は質問を床に投げると思いました:あなたの意見では、「一口サイズ」のストーリーの並列リストは、小さく、有用ですが、最終的には優先度の低い変更がより速く行われるという価値がありますか、それともそれらをメインバックログにまとめ、基本的なプロセスにスプリントへの組み込みを管理させるという全体的なより良い決定?

16
KeithS

いくつかのポイントについてお話します。うまくいけば、あなたの方法を見つけるのに役立ちます。

  1. "[〜#〜] scrum [〜#〜]"はアジャイルになることです。常識が必要です。変更が数分の変更であれば、バックログは必要ないと思います。 2時間以上だとしたら、もう一度考えてみてください。 「簡単に勝つ」ことすべてを実行する必要はありません。 SCRUMでは、優先順位に従って作業します。 POは、追加から得るものとそれが取る努力についての情報を取得する必要があると思います。その後、POはそれが重要かどうかを判断できます。 SCRUMに移行すると、多くの質問が出てくることがあり、開発者はしばしば「数時間しかかからない」と言います。だから何?数時間は時間であり、短いものすべてを含める必要はありません。
  2. "engineering backlog"があるプロジェクトで働いていたことがあります。このバックログには、製品を改善するために開発者が提案した項目が含まれていました。これらのアイテムには、明示的なユーザー値はありませんでした(ただし、暗黙的なユーザー値はありました)。例:コード内のコンポーネントのリファクタリング。変更、労力、および利益について説明しました(この場合、ユーザーに何も提示できません。ただし、このようなリファクタリングによって新機能がより早く開発される場合は、ユーザーにとって間違いなく利益になります)。私たちのPOは、バージョン中に、各スプリントの(平均して)10%をそのようなアイテムに投資することを決定しました。各スプリントの前に、POは次のスプリントのバックログについて決定したとき、エンジニアのバックログ項目の10%があることを確認しました。つまり2バージョンバックログ-> 1スプリントバックログ
  3. バッファ-SCRUMで作業を開始するとき、人々はしばしばソフトウェアエンジニアとして不確実性の世界に留まることを忘れます。 1日の作業を8時間ではなく6時間として数えるのは問題ありません。たとえば、15日間のスプリントがあるとしましょう。つまり、会議に行くのに30時間余分にかかり、時間がかかりすぎた場合はそうです。そうです。覚えるにはマイナーすぎるが、私たちの1日2日の仕事の一部であるもの。
  4. 集中し続ける-最後になりましたが、SCRUMでは集中し続けることが重要です。そのようなタスクに投資するために、あなたの総努力のうちどれくらいを優先するかを決定し、この時間と努力を忘れずに投資してください。小さいからといって「小さいもの」に取り掛かってはいけません。あなたはあなたがあなたを決定するのを助けるPOとあなたはあなたの常識を持っています。
  5. Stay Agile-そして、最後に、問題に取り組むためのさまざまな方法を試すことを忘れないでください。それが本当に最善の方法であるかどうか自分自身に質問してください。途中で改善します。

幸運を :)

10
Avi

アジャイルやSCRUMなどのプログラミングフレームワークは、開発に規律と構造を適用するように設計されています。しかし、規律と構造は、楽しさと創造性の対義語のようです。通常は、規律を確立して維持するためにもっと努力する必要があります。これらの相反する概念の間のバランスを見つけることは非常に困難です。したがって、フレームワークはこのトピックを回避する傾向があります。

私の最後のプロジェクトでは、開発者が頭をリフレッシュしたりクリアしたりするのに毎日少し時間が必要であることがわかりました。彼らには、何でもできる予算の時間(1日あたり5時間または週あたり2.5時間)が与えられました理由(仕事で何かに適用される可能性がある)。規律を保つために、彼らは彼らの活動を文書化することを求められました。そうすることで、成果などの信用を得ることができます。

ところで、私たちはそれを「プロジェクトのクールさ」と呼んでおり、それがその会社の多くの優れたアイデアと改善の源でした。

3
TimG

小さなストーリーはメインバックログに保存する必要があります。

私はスクラムを使用していませんが、あなたが説明しているものと同様の問題に直面しています。 優先順位付けおよび効率の課題に直面しているようです。

「古いやり方」のように聞こえますが、開発者のオフィスに行った場合、だれでも暗黙のうちに自分のタスクを「最優先」にする権限が与えられていました。これにはいくつかの利点があります。リクエスタは応答されているように感じ、リクエスタと開発者の両方が「迅速な勝利」を得ます。

欠点は、これらのタスクを頻繁に挿入すると、製品の所有者と合意した最優先のタスクが遅くなったり、失敗したりする傾向があることです。 (余談ですが、多くの場合、誰もがこれらの「迅速な」修正に必要な時間を過小評価しています。)

私の経験では、優先度の低いタスクを絞ろうとすると、優先順位付けのメリットが損なわれます。開発者として、優先順位付けは、製品の所有者が私に取り組んでほしいことに取り組んでいることを私に確認します。 製品の所有者は、彼女が "Nice to have"リクエストで折りたたむ余分な作業とリスク(わずかではあるが)を引き受けたいかどうかを決定する必要があります。

多くの場合、利害関係者に優先順位を付けるように依頼すると、「これを絞り込めますか?」暗黙の希望は、現在の最高の優先順位に影響を与えずに魔法のように新しいタスクを完了することです。

私によく起こることは、利害関係者がLargeImportantProjectとSmallLessImportantTaskを要求することです。ジレンマは、SmallLessImportantTaskがLargeImportantProjectが完了するのを待つ必要があるのか​​(またはロードブロッキングがあるのか​​)です。トレードオフがあり、私の経験では、製品の所有者が決定する必要があります。 (製品の所有者が決定しない場合、開発チームが推測する必要があります。)

スクラム(およびプロジェクト管理全般)の1つの目標は、最も優先度の高いタスクの障害を回避することです。 より効率的になると、余分な "Nice to have"の作業で絞る余地が少なくなります。

効率は恐ろしいかもしれませんが、2つの重要な点でコストを上回る利点があることを確認しました。

  1. より効率的になると、 "Nice to have"リクエストを含む貴重な作業を完了するチームの能力が向上します。
  2. リクエストが本当に「いい」である場合、より重要なビジネス上の優先事項が対処されるまでリクエストが待機することはおそらく完全に正当です。
3
Aaron Kurtzhals

私の考えでは;あなたの問題は、タスクがバックログで優先順位付けされる方法です。たとえば、「優先度」では、重要度とそれがどれだけ早く完了できるかを考慮に入れることができます。それほど重要ではないが10分で完了できるものは、実装に数週間かかる重要なものよりも優先度が高くなる可能性があります。

2
Brendan

私はしばらくアジャイルで働いてきました。私が言えることはこれだけです-方法論とそれが組み込むすべてのものを主張することが絶対に間違っている状況があります。あなたはアジャイルである必要があり、方法論を特定の状況に微調整することは、IMO、必須です。

上記のAviのように、「SCRUM」はアジャイルであることについてです。常識が必要です。変更が数分の変更であれば、バックログは必要ないと思います。

変更に時間がかかる場合は、それがすべて「無害」ではないことを意味し、十分に文書化する必要があります。

2
Aleksandra

あなたの最初の質問とその後の説明に基づいて、これは私があなたの問題点を認識しているものです

  • 常に変化する要件
  • 開発者がアプリケーションの他の領域に集中することができない。私たちはアプリケーションの一部のヒーローですが、他の部分には触れたくありません。
  • 採用されているアーキテクチャ、ソリューション、フレームワークへのさまざまなアプローチ
  • 要件収集プロセスが機能していないようです

スクラムは、最初に正しく順守していれば、これらの問題の多くを修正し、さらに重要なことに、解決すべき他の問題を前面に出す必要があります。

-常に変化する要件

すべてがフィードされ、優先順位が正しく付けられた単一のバックログがあるということは、チームが開発の最中に変化する要件の矢面に立つべきではないことを意味します。それが非常に動的な環境である場合、1週間または2週間の小さなスプリントは、優先順位の変更が比較的短期間で促進できることを確実にするはずです。

-開発者がアプリケーションの他の領域に集中できないこと。つまり、私たちはアプリケーションの一部のヒーローですが、他の部分には触れたくありません。

チーム内で知識を共有し、アプリケーションの他の部分での作業の課題を探す特定の推進力を持つ、スクラムチームが連携して互いにサポートし合うことで、アプリケーションの知識が確実に共有されるように努めます。 ペアプログラミングのようないくつかの慣行は、慣れていないコードに取り組むことへの恐怖を克服し、その知識を学び、共有するのに役立ちます。これには、アプリケーションの知識がチーム間で配布される前のスプリントはほとんどなく、人々はアプリケーションのどの領域でも快適に作業できます。 また、ユーザーがボードのタスクをプルできるようにする、つまり、作業したいものを自分で選択できるようにすることで、これを促進できます。

-採用されているアーキテクチャ、ソリューション、フレームワークへのさまざまなアプローチ

スクラムは、より良いコミュニケーションを促進し、チームワークとより良い意思決定を促進するだけでなく、何が起こっているかについてのより良い可視性を提供します。これは今度は、フレームワーク、アーキテクチャソリューションなどの使用に関する組織の決定を容易にし、Scrum of Scrumsメカニズムの使用が組織全体に浸透させるのに役立つ場合があります。

-要件収集プロセス

繰り返しますが、ルールを厳密に遵守している場合、要件が明確にされておらず、チームが要件を満たすために何が必要かを理解および推定できる準備ができていない場合は、スプリントに含めるべきではありません。優先度が高く、明確に定義されている別の要件を採用してください。それで、それを実現できることがわかります。要件収集プロセスはすぐには修正されない場合がありますが、そのプロセスを修正するために必要な変更が強制されます。

最初の質問に答えるには、いいえ、2つの別々のバックログがあってはなりません。常に、開発者と組織が優先度の最も高い項目に最初に取り組んでいることは、誰にとっても最善の利益です。優先順位は主にビジネス価値に基づくべきであり、小さな微調整やリクエストの多くがビジネス価値を高める可能性は十分にあります。製品の所有者に決定してもらいます。

私は7年以上スクラムマスターであり、さまざまなチームや会社へのスクラムの導入を支援してきました。私の控えめな意見と私の観察から、スクラムが初めて組織に導入される場合は、本に従ってください。逸脱しないでください。スクラムには、実践とプロセスに固執するための規律が必要です。特定の状況に合わせて例外を作成するのは簡単すぎるため、早すぎると、それによってもたらされるメリットや価値の低下につながります。基本を実行し、それらを本当にうまく実行します。基本を実行し、それらが存在する理由を理解する専門家になり、プロセスをより適切に変更し、組織内の継続的な改善を推進します。初期の基本的なプロセスと実践から逸脱することは、他の問題や組織に存在する根本的な問題を隠すメカニズムになる可能性があります[おそらくスクラムが導入されている主な理由]。

これが「アジャイル」であると言うのに非常に有効なケースがあるので、プロセスを変更することをいとわない必要がありますが、プロセスを理解する自主的で自己組織的なチームと、アジャイルやスクラムの道を歩き始めたばかりのチームとは対照的に、プロセス。それはあなたがクロールすることを知る前に走ろうとするようなものです...

0
user91175