組み込みシステムデバイス用のスクラム


8

当社では、一括通知に使用する新製品をお届けする予定ですので、組込みソフトウェアプロジェクトであり、SCRUMを製品のフレームワークとしてご利用いただきます。

製品のバックログの記録を開始しました。私が理解したことに基づいて、製品のバックログは各アイテムのビジネス価値を反映する必要があります。組み込みソフトウェアの性質は、SPI、UART、イーサネット、WIFIなどのマイクロコントローラー用のドライバーを作成するために大量の時間を消費する多くの技術的詳細があることです。

たとえば、システムは通知のためにメッセージを再生することで音を出しているので、メッセージを再生することがビジネス上の価値であることは明らかですが、この目標を達成するために、どのような方法でもない要件を書き留める必要があります。 SPI、MP3デコーダーチップドライバー、SDカードドライバー、そして最後にFATなので、以前のすべてのドライバーには、製品バックログに書き込む必要がある要件があります。サブ要件。

これらはクライアントのビジネス価値を反映していません。製品のバックログをどのように作成するのですか?


段落を複数の文に分割するのと同じように、問題を小さなステップに分割する必要があります。問題を小さなステップに分解できない場合は、スクラムが適切ではありません。
Kevin Workman

1
組み込み開発では、一部のタスク(それらのドライバーなど)が一般的に推奨されるよりも大きくなることがあります。これは時々避けられず、あなたはそれと一緒に暮らさなければならないでしょう。
Bart van Ingen Schenau 2014

1
問題は、結果をどのように達成したいかに焦点を当てていることです。これはアジャイルでは機能しません。基本から始めて顧客が望むものに焦点を合わせ、次に、それらを実現する方法を指定せずにこれらの機能を垂直方向にスライスします。ポイントは「ドライバーを書く」ことではなく、「お客様がドライバーで何をするか」です。
Sklivvz 2014

1
私はスクラムが組み込みシステムにとって最良のアプローチであることに深刻な疑問を抱いています。スクラムではなく、スクラムに基づいてアジャイルを実行できます。私の主な関心事は、ハードウェア開発のリードタイムとサイクルの現実の世界と衝突するスクラムの概念に関係しています。他のアジャイル手法を検討しましたか?
mattnz 2014

1
@Blrfl、はい、何かがビジネス価値を提供するために必要であるが、それだけでは十分ではないことを表現する問題。多くの製品は現実的には、統合された全体としてのみ価値があり、その価値は販売の事実によって定量化でき、部品としては価値がありません(またはほとんど価値がありません)。
Steve

回答:


11

私が働いている場所では、組み込みシステムを作成し、開発にもスクラムを使用しています。機能の観点ではなく、技術的な観点から物事を見ています。

最初に尋ねる必要があるのは、「なぜこれを実装する必要があるのか​​」です。例: なぜ SPIが必要なのですか?シリアル番号を保存できるように、EEPROMに使用する予定ですか?または、ディスプレイコントローラーに接続して、ユーザーがディスプレイ上のアイテムを表示できるようにしますか?SPIドライバーを作成することには多くの正当な理由がありますが、SPIドライバーを作成するためだけに作成することは、それらの理由の1つではありません。

スクラムを使用すると、採用されなければならない「私たちがするまで、我々はそれを必要としない必要がある、それを」ポリシーを使用すると、SPIまたはWiFiまたはで時間を無駄にはならないと言うことである、があるまで、他のビジネスニーズにこれらの技術を必要とし成し遂げる。次に、そのビジネスニーズがストーリーになります。

「Create SPI Code」の代わりに「Add on EEPROM for configuration storage」を試してください

そして、「リモート管理用サーバへの接続を作成する」の代わりに「WIFIのドキュメントを検索し、実装」


2
(a)SPI処理コードの追加が非常に複雑(つまり、スプリントで処理できる限り多くのポイントを中心に)で、(b)SPI処理コードを必要とするユーザーストーリーがいくつかある場合はどうしますか?
14

実際、これは私の懸念事項であり、1つのビジネス価値の要件に継承される技術要件のパンチにつながります。したがって、最終的に製品バックログにはビジネス価値ではない多くの技術要件が含まれます。それは許容できるのですか、それともアジャイルコンセプトの1つに違反していますか?
Mohamed Fawzy 14

アジャイルのテナントにこだわりすぎないでください。ブライアンが言ったように、あなたは教義にこだわりすぎて、あなたのために働くことをやるべきではありません。ここで私の主なポイントは、ビジネスの価値を念頭に置いて試してみるべきだということです。ストーリーの最後に直接ビジネス価値を追加することはないかもしれませんが、それはその目標に向かって進むはずです。
Ampt 2014

1
悪魔の擁護者を演じる極端な例:SPIインターフェースが必要ないため(Scrumの教義)、SPIインターフェースを使用しないとどうなりますか。ある日、必要になります。SPIを実装し、ハードウェアの欠陥を見つけました。既にハードウェアを出荷している可能性があることを除けば、固定ハードウェアのリードタイムは6か月(かなり一般的)ですが、スクラムでは必要になる直前に実装する必要がありました。これに対するスクラムソリューションは何ですか?
mattnz 2014年

@mattnzこれは少し遅いですが、スクラムの答えは、ハードウェアの欠陥を早期に解決することにビジネス上の関心があり、SPIインターフェースを早期に実行することがビジネス上の価値があるということです。あなたはあなたの実際のニーズに注意を払わなければなりません。すべてのワークフローと同様に、Scrumの単純な実装は失敗します。同様に、EVMSの単純な実装やその他の重いトップダウンアプローチも失敗します。
Cort Ammon

5

スクラムの教義にこだわらないでください。スクラムはあなたをより機敏にするために存在します。その邪魔になるものはすべて無視できます。

ビジネス価値をもたらさない仕事をすべきではないのは事実ですが、価値には多くの形があります。あなたはイーサネットドライバを持っていることから価値を得ていますか?そうしないと、特定の機能を提供できないためです。「開発者として、インターネット接続を必要とする機能を実装できるように、イーサネットドライバーが必要です」。

したがって、値をユーザーに表示される機能としてのみ見てはいけません。価値とは、たとえそれがエンドユーザーに見えなくても、製品をより良くするものです。

これは有効なストーリーではないと言う人もいますし、ストーリーにはユーザーに表示される機能のみを含める必要があります。このような問題が発生するところまでは、大丈夫だと思います。繰り返しますが、スクラムの目標はあなたを助け、集中力とコミュニケーションを向上させることです。あなたがやっていることになっていると思っていることを、物事を成し遂げることの邪魔にさせないでください。実用的で正直に。何かを開発する必要があると思われる場合は、「なぜ」、「誰のために」という質問に答えてください。答えは常に同じ人物である必要はありません。


元の質問のスクラムドグマは何でしたか?誤解はドグマではありません。ドグマは、スクラムに適用できない慣行があった場合に発生します。
Dave Hillier、2014年

3

私の経験では、組み込み開発でスクラムを使用する主要な課題の1つは、最高のスクラムチームが機能のフルスタックの機能スライスを提供することです。最も深い根性からユーザーへの露出まで。これにより、1つのチーム内および1つのスプリント内で統合の問題が維持されます。また、エンドユーザーが結果を確認して試すことができるため、ビジネス価値が証明されます。

純粋なソフトウェアであっても、ストーリー全体を1つまたは2つのスプリントで構築できるように、各レベルでストーリーを十分に薄くすることは困難な場合があります。しかし、組み込みの場合、これは不可能である可能性があります。最も深い根性は、物理的な世界に基づいているため、ソフトウェアほど速く適応しないハードウェアを必要とするためです。

理想的なソリューションは、ハードウェア機能を向上させて、より速く循環できるようにすることです...シミュレーター、短期間の高速ターンアラウンドラン、モデルなどを使用して。しかし、それは高価になる可能性があります。したがって、私があなたの状況に当てはまると私が考える、よく使用される妥協点は、ビジネス価値の概念を緩和し、エンドユーザーとアプリケーションに必要なより一般的な機能を含めることです。

したがって、たとえば、WiFiを構築する必要がある場合は、エンドユーザーの理由があるか、それを行う理由があるはずです。それを見つけて、自動車の例のように、ユーザーストーリーの定義に入れてください。


ソフトウェアによる自動車生産の類推が非常に適切であるとは思いません。車は1世紀にわたってかなり落ち着いたデザインで、あらゆる分野の経験豊富なスペシャリストを作成し、保持している最大の企業によってのみ製造されています。とにかく、今日の車は主にボルトオン機能とマイナーな改良の対象となっており、ボトムアップで設計および構築されておらず、設計変更にはまだ何年もかかります。ソフトウェア開発は自動車ビジネスとほとんど関係がありません。
Steve

1
@Steve彼はアナロジーをしていません。彼はあなたが自動車チームのバックログで見つけるかもしれない物語の例を与えています。
RubberDuck 2018年

@RubberDuck、私は彼が暗黙のうちに自動車の生産または類似の製造プロセスとのいくつかのアナロジーを知覚しなければならない(そして読者に知覚させることを意図している)べきだと思います類推を論じ、反論するのは適切な時期ではありません。製造で採用されているプロセスが、多くのソフトウェア開発で存在するのとはまったく異なる状況や条件でどのように使用されているかはわかりません。
Steve

1

私はこのリンクを見つけました。とりわけ、組み込み開発のユーザーストーリーについて説明しています(下にスクロールして[ストーリー]セクションに移動してください)。

ストーリー

アジャイル開発の大きな課題の1つは、システムをストーリーに分割して、製品の段階的かつ目に見える進歩を可能にするためです。組み込みアジャイル開発では、ハードウェアとソフトウェアの相互作用がさらに複雑になるため、ストーリーの定義がさらに難しくなります。

ストーリーは通常、ユーザーストーリーと呼ばれます。私はそれらをProduct Storiesと呼びたいと思います。多くの場合、組み込み開発で行う作業はエンドユーザーには見えません。製品ストーリーという名前の方がふさわしいようです。

製品ストーリーは価値を提供し、進捗状況を示したり、リスクを軽減したりするため、1回の反復で完了することができます。

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