スクラム-スプリント外で作業する開発者


11

スクラムチーム

  • 3 x開発者
  • 2 xテスター
  • 1 x自動化テストアナリスト

開発者がテストせず、テスターが開発しないという点で、私たちは多機能チームではありません。これが問題の根本原因だと思います。

現在、2週間のスプリントを行っています。

スプリントの開始時には誰もが忙しく、開発者は開発作業を開始し、テスターはテストの準備(テストケースの作成など)を行っています。

テスターが準備を完了すると、開発作業が完了するのを待っているか、開発作業が完了して開発者がフィードバック/バグを待っています。

開発者はここでitい足を踏み入れ、現在のスプリントの範囲外にあるバックログのアイテムの作業を開始します。これにより、現在のスプリントで常に次のスプリントを開発するという奇妙な影響が生まれています。私にはこれは正しくないと思う。

経営者の観点からは、彼らは開発者が机に座って何もしないよりはむしろ仕事をすることを望んでいますが、同時に、スクラムチームの目標と焦点は現在のスプリントのみにあるべきだと感じています。私たちのチームが多機能であることを願っていますが、残念ながらそれは達成できません。テスターに​​は開発作業を行うのに必要なスキルがなく、開発者の大多数はテストが彼らの下にあるという意見を持っています。

これはスクラムの問題と見なされますか?これに対する解決策はありますか?スクラムは多機能チームでのみ機能しますか?

可能であれば、これに関する他の人々の経験を知りたいです:)


3
管理に同意します。任意の2週間の期間のために人が座っているのはひどい考えです。おそらく、あなたのチームの責任はあまりにも厳格です。この小さなチームでは、すべてのチームメンバーが「機能横断的」であることは珍しくなく、現在のスプリントで必要な場所に飛び込むことができます。
ロバートハーベイ

...またはおそらく、チームを2週間占有するのに十分なスプリントを投入していない可能性があります。
Blrfl

3
ハイブリッドペアの開発/テストマッシュアップは実用的ですか?ある意味では、プロセスはユニットテストサイクルと同じです。少しテストを書いてください。これは正式にはありませんでしたが、バグが見つかったため、テスト担当者は直接私たちのところに来る習慣がありました。正式なバグレポートを介して通信しませんでした。「私のテスター」がテストを終了するまでに、修正が完了しました。Webアプリであるため、修正の所要時間が効率的になりました。しかし、少なくとも実験。そして率直に言って、たとえそれが良くも悪くもないとしても、mgtは個々の待ち時間をより少なく知覚します。
レーダーボブ

3
スプリントのために最初に計画された作業は、通常、十分な品質で完了しますか?または、元の計画から半完成した物語も残されていますか?
バートヴァンインゲンシェナウ

2
プロセスを保持するだけで、「スクラム」ではなく「かんばん」と呼ぶことができます。そうすれば、プロセスがスクラムに適しているかどうかを心配する必要はありません。/やや皮肉ですが、そうではありません
エリックキング

回答:


16

これは、パイプライン処理によって引き起こされるかなり一般的な問題です。チームは多機能ですが、もちろんパフォーマンスを低下させる内部サイロがあります。

まず、重要だと思ういくつかの点に注意したいと思います。

  1. 開発者が事前に反復作業を行っている場合、開発者は計画会議を先取りしています。プロダクトマネージャーとチームは、次の反復で最も価値のあるものを適切に議論する必要があります。開発者は優先すべきことは何もないので、優先順位付けを効果的に行うべきではありません。

  2. 反復をどのように分割して配置しても、チームにサイロで作業するスペシャリストがいる限り、常に全員を常に占有し、単一の計画会議で単一のチームを持つことはできません。純粋なウォーターフォールのアプローチを使用しても、「壁を越えて物を投げる」必要があり、フィードバックを待つ必要があります。

  3. また、多くの場合、単一のストーリーに開発フェーズ、テストフェーズ、バグ修正フェーズ、それに続く...が必要になるという問題があります。 、コンテキスト切り替えが必要なため。

明らかに、この状況には非常に大きなコストがかかります。チームは協力していません。QAチームが関与するたびにこれに遭遇したので、さまざまなソリューションを試す少しの時間がありました。

私にとって非常にうまくいったのは、次の2つのツールです。

  1. チーム全体が作業を行う責任があるという原則を強調します。開発者が「もう問題ではない」と言っている方法であるため、「開発者が行った」ストーリーを拒否します。これは建設的でも特許的にも偽りです。チームが受け入れたストーリーを配信しない場合、配信されなかったのはチーム全体です。

  2. 開発者とQAの両方の時間を占有するには、それらをペアにします。これは、選択できる専門知識とドメイン知識を共有するための断然最良の方法です。開発者は、テスターがタスクを自動化するのを支援できます。テスターは、コードが脆弱であるため、コードをテストすることが重要な場所を開発者に示すことができます。コラボレーションと作業の両方が、そうでない場合よりも速くなります。

これらの2つの手法を使用すると、チームのサイロ化が少なくなり、パフォーマンスが向上します。テスターと開発者がジョブを交換することはほとんど不可能ですが、彼らはお互いを責めるのではなく、チームとして働いて内部で問題を解決することができます。


1
ご回答ありがとうございます。開発者とQAリソースをペアにするというアイデアが本当に好きです。私は次の会議でこれを提案するつもりであり、できれば次のスプリントでこれを試してみることができます。質問を更新し、その方法をお知らせします!
fml

@Sklivvzこれは、QA部門がある場合よりも頻繁に発生します。QAが「特定の人々」のみが実行できる役割である場合は常に発生します。アイドルリソースが「次の」優先度の高いタスクを取得する代わりに、開発者はアイドル状態になり、QAが開発者の出力に永続的に反応している間、より多くの作業を取得します。
エドウィンバック

1
それは上記クリアされなかった場合、アイテムはバックログからではないの次の優先度の高い開発タスク『に出荷できるように、QAのバックログを削減する「次の優先度の高いタスクは次のようになります』。
エドウィンバック

1
チーム全体が責任を負うなどのアドバイスは、実は良さそうに聞こえますが、実際にはチームに役立っていません。それは、誰もが交換可能であり、投球しない全員がいないことを示唆しています。これは間違っています。SDLCの各人には特定の役割があり、YEARSでスキルを磨きました。ソフトウェアエンジニアにテストを依頼することは、品質をテストするのに必要な経験がないため、品質に悪影響を及ぼし、中途半端な試みを行う可能性があります。たとえQAエンジニアがそれらを指導しても、指導はテストから時間がかかり、作業にさらに時間がかかります。
チャックコンウェイ

1
@ChuckConway誰もあなたの言うことを提案していない。ペアリングは、代替またはメンターではありません。理想的には、ダウンタイムを最小限に抑えるための最良の方法を見つけるためにチームを信頼します。それは、互いの役割とニーズを理解する人々から始めなければなりません。最良かつ最も効率的なチームは自己組織化されます(本当かどうかは問わず、アジャイルの基本原則です)。
-Sklivvz

2

SCRUMとスプリントに関連する作業方法に問題はありません。評価時に、開発者の作業が計画よりも短い時間(およびどれだけ短い時間)で終了したかが記録されます。これにより、チームは次のスプリントでより多くのストーリーポイントを獲得できます。結局のところ、スプリントのポイントは計画を改善することです。明らかに改善の余地があります。

私たちは常に現在のスプリントで次のスプリントを開発しています

うわあ!これは技術的にはスクラムでは不可能です。次のスプリントにどのバックログアイテムが含まれるか、つまり、スプリントプランニングセッションの次のスプリントの開始時に設定されることはわかりません。

組織がスクラムを妨害するために発明した新しい創造的な方法について学ぶことは、依然として興味深い。


3
「Whoa!これはスクラムでは技術的に不可能」や「...組織がスクラムを妨害するために考案した新しい創造的な方法」などの文言の問題は、「スクラムを行う」正しい方法があることを暗示していることです。正しい方法が存在するためには、スクラムは規範的である必要があります。つまり、プロセスを人よりも優先する必要があります。したがって、スクラムを行う正しい方法がある場合、スクラムはアジャイルプロセスではありません。
デビッドアルノ

@David Arnoそれは素晴らしいことです。基本的に、どの方法論も定義上アジャイルではないと言っています。アジャイルマニフェストですら。まったく予測不可能なカオスだけが機敏になります。しかし、待って..誰が混toとしていると言っているのですか?今深刻なのは、アジャイルな「プロセスの前の人々」の対立が対立を解決するためにあるということです。選択しなければならない場合、必ずしもルールが言うことではなく、意味のあることを行う必要があります。私にとっては、OPのチームは問題なくスクラムの本を読むことができたようです。そしておそらくそうだろうが、重要な質問は彼らがどれほど透明であるかであるようだ。
マーティンマート

1
実際、@ DavidArnoは、スクラムを行うための特定の間違った方法があることを暗示しているだけであり、議論の余地はないようです。たとえば、アジャイル宣言と矛盾するものはすべて客観的に正しくないように思われます。
-Sklivvz

1

スクラムは、個人ではなくチームのために最適化されます。スクラムのポイントは、チームが効率的になることです。開発者が現在のスプリント以外の作業を開始している場合、彼らはチームを傷つけています。また、春を埋めるのに十分な作業を計画しなかった場合、計画プロセスでいくらか失敗していることも示します。

開発者が開発タスクを使い果たしてしまった場合、チームの誰でもテスター、技術ライター、またはデザイナーを絶対に売り込んで支援する必要があります。彼らは必ずしも実際のテストを書く必要はありませんが(そうすべきです)、テストプロセスに参加できます。彼らはテスターがより効率的になるのを助けるスクリプトを書くことができます、または彼らは彼らの課題が何であるかをテスターと単に議論し、それらの課題を克服するのを助けますテストなどで使用できます)。

問題の核心は、開発者が常に現在のスプリントに取り組んでいない場合、チームとしてまだ働いていないことだと思います。スクラムマスターは注意を払い、個人の集合ではなく、ユニットとしてチームを機能させるように努力する必要があります。

これは管理上の問題であることもお勧めします。開発者に忙しくしておくようプレッシャーをかけている場合、彼らはスクラムを完全には受け入れていません。これは、スクラムマスターが支援できるもう1つのことです。スクラムがどのように機能するかを理解するために管理者と協力し、開発チームを破壊するのではなく、サポートしてサポートすることができます。


0

ここで重要な問題は次のとおりだと思います。

開発者の大部分は、テストは彼らの下にあるという意見を持っています

当社でこれを処理した方法は、開発者に、それを証明できない場合、実際に作業を終了したと言うことができるかどうかを尋ねることです。もちろん、それを証明する唯一の方法は、彼らが書いたコードが実際に機能することを実証することであり、これはテストを通して行われます。彼らがテストに参加することに同意すれば、テストはより迅速に行われ、追加の機能をコード化する時間も増えることに注意する必要があります(これもテストする必要があります)。

コードのテストは開発者レベルより下ではないことを指摘してください。これは開発プロセスの不可欠な部分です。コーディングだけと切り離すことはできません。誰でもコーディングできます。誰もがコーディングして、コーディングしたものが実際に機能することを証明できるわけではありません。

開発者を忙しくさせるもう1つの方法は、スプリントで開発した機能の自動テストのコーディングに取り組むことです。これらのテストは、定期的に実行される回帰テストに使用できます。

いずれにせよ、スプリントの開始時に計画されていなかった何かをすることは、大したことではありません。計画されていないことをするよりも、何もしない方が良いです。これらのケースで彼らが書く機能は、おそらく十分にテストされていないため、DoD(Definition of Done)の基準を満たしていない可能性が高いと考えられます。これは、バグを導入して製品の品質を低下させる確実な方法であり、それによりチームは回帰問題とコンテキスト切り替えの下降スパイラルに陥り、結果としてストレス、速度の低下、そしてそのためにチームを終了します。


プログラマーはコードをテストしていると思いますが、自動テストは作成しません。大きな違いがあります。
-JeffO

この特定のケースでは、これらのプログラマーが行う唯一のテストはIDEからのテストであると確信しています。多くの開発者が実際にソリューションをインストールパッケージにビルドし、エンドユーザーが行うように最初からパッケージを展開してから、実際にソリューションをテストすることはありません。ほとんどの場合、これは十分ではなく、品質の著しい低下の理由です。
ウラジミールストキッチ

0

理論的には、SCRUMチームのすべてのメンバーは同じ知識を持っている必要があります。これにより、各メンバーは他のすべてのメンバーからすべてのタスクを引き受けることができます。そうでない場合は、知識を広める必要があります。

しかし、実際には常に何らかの専門化があります。ソフトウェアは複雑な場合があり、チームメンバーのスキルは異なります。チームを開発者とテスターに​​分割することは、スペシャライゼーションの1つの(非常に一般的な)例です。

知識を広めるには、経営陣が受け入れようとするよりも時間がかかる場合があります。

私の経験では、いくつかのことができます。

  • チームを小さくしすぎないでください。たとえば、4人の開発者と4人のテスターがいる場合、タスクを別の開発者またはテスターに​​移動する方が簡単です。この例のように3/2しか持っていません。
  • 大きなタスクを分割してみてください。より小さなタスクがある場合は、より柔軟になります。
  • 時間が残っている場合に実行できるオプションのタスクをいくつか定義します。

これらの提案は100%SCRUM理論ではないかもしれませんが、最初に開発作業を続けなければなりません。SCRUMは単なるツールボックスです。


0

チームの同期を解除する必要があるようです。そのように:

   Test.   -------s1 -----------s2
   Dev.        --------s1 -----------s2

テストの自動化を理解している人は、数日早く始めなければなりません。

しかし、私はあなたのチームに問題を感じています。自分のコードをテストしない開発者に問題があります。テスト担当者がコードを確認せずにテストを準備する場合、おそらく開発されたプログラムの決定点を考慮しないブラックボックステストのみを実行しています。ソフトウェアの品質に満足していますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.