アジャイルの最初の数回の反復で何を提供しますか?


22

私が理解しているように、アジャイル方法論のアイデアは、機能的なものを提供し、頻繁にそれを提供することです。アプリケーションは、増分後に最終的な形状の増分になります。

しかし、初期のイテレーションでは、アプリケーションが基盤となるフレームワークまたは基盤を構築する可能性があります。これは重要なことですが、ユーザーには見えません。

これらの最初の反復でクライアントに配信されるものは何ですか?足場コードをビルドするとき、正しい方向にどのように進行状況を表示しますか?


2
フレームワークまたは基盤全体を構築することは、プロジェクトのできるだけ遅い時点で決定する必要があります。
ジェフ14年

@JeffO:可能な限り遅くなるとはどういう意味ですか?それを答えに展開できますか?
JohnDoDo

5
理想的には、まったく決定すべきではありません。フレームワークは作成されるべきではなく、リファクタリングの結果として有機的に現れるべきです。「良い」(私自身の「良い」という主観的な定義)フレームワークはゼロから設計されたものではなく、既存のアプリケーションから、または他のフレームワークに基づいて抽出されました。
ヨルグWミットタグ14年

7
事前に基盤を構築する@JohnDoDoは、アプリケーションの要件が存在する前であることを知っていることを前提としています。人々がこれをしているのを見るたびに、彼らは硬直し、作業が非常に困難な何かに巻き込まれました。多くの場合、その「フレームワーク」のユーザーは、それを受け入れることよりもそれと戦うことになります。
ステファンビリエット14年

回答:


15

2週間のスプリントが一般的です。

私にとっては、この正確な理由により、最初のスプリントまたは2の方が後のスプリントよりも「目に見える」機能が少ないでしょう(「より少ない」のいくつかのかすかな説明のため)。

そうは言っても、確かに足場全体を構築するのに2週間かかることはなく、UIに何も表示されません。

たぶん、最初のスプリントまたは2ですべての足場アイテムを肉付けしていないかもしれません。たぶん、パーツを待って後で追加することができます。

おそらく、最初のスプリントには「ダミーデータを使用してWebページXを作成」して、顧客に見せるために何かを輝かせることができます。そして、次のスプリントには「データベースのデータを使用するようにWebページXを変更します」があります。


6
最後の段落の+1-ユーザー検証用のプロトタイプで開発を開始することをお勧めします。
コナミマン14年

4
「おそらく、最初のスプリントには「ダミーデータを使用してWebページXを作成」があり、顧客に見せるために光沢を持たせることができます。」:IMOは顧客とプロジェクトのタイムスケールに依存します:2か月のプロジェクトでは、顧客は1週間または2で何かを見たい場合。18か月のプロジェクトの場合、1か月または2か月で最初のデモを入手しても問題ないことがあります。いずれにせよ、一部の顧客はダミーページを見たいと思うかもしれませんが、他の顧客はもっと意味のある何かを見たいと思うかもしれません。一般化できないと思います。
ジョルジオ14年

4
+1、ただし常に、顧客にUIパーツを表示するときは常に氷山の秘密を念頭に置いてくださいjoelonsoftware.com/articles/fog0000000356.html-Doc
Brown

1
@MatthewFlynn-スクラムには真の「要件」フェーズがない場合がありますが、ゼロ要件または利用可能なドキュメントがあるという意味ではありません。私は、顧客が「先に進んで構築を開始すれば、その過程で解決できる」と言ったプロジェクトに関与したことがありません。そのための用語があると思います。通常、何が提供されるかについての議論と合意を含むプロジェクトのある種の誘発段階があるはずです。セールスピッチの間にプロトタイプを提示しました
ハンゾロ14年

1
@hanzolo-私が最近取り組んだ非常に成功したプロジェクトは、手ごろな価格のケア法の一部であった新しい法的要件に対処するためのソリューションの実装に関係していました。基本的な要件はわかっていました。しかし、ソリューションが何であるかに関して、プロトタイプまたは設計の方法に何もありませんでした。プロジェクトチーム(ビジネスアナリストを含む)は、スプリントのコンテキスト内でそれを把握しました。せいぜい、BAはビジネスチームと、チームの残りの1つまたは2つ先のストーリーについて話をしますが、それだけで作業が必要でした。うまくいきました。
マシューフリン14年

13

アジャイルマニフェストは、ワーキングソフトウェアは包括的なドキュメントよりも価値があることを示唆しています。スクラムフレームワークは、ビジネス価値のあるテスト済みのワーキングソフトウェアをすべてのスプリントの要件とすることを示唆します。

どうして?まあ、とりわけ、デザイナーと開発者は、YNNI(あなたがそれを必要としないでしょう)アイテムに多くの時間を費やすことの犠牲になることがよくあります。残念ながら、あなたが話しているこれらのフレームワークは、多くの場合、この分野で大きな責任となります。開発者は、フレームワークMIGHTがサポートしなければならないすべてのものを構築し始めます。突然、3か月であなたはそれに対して示すビジネス価値がありません。その結果、フレームワークは最終的に必要なものを実際にはサポートしていません。

そのため、推奨されるアプローチは、現在実際に必要なもののみを構築し、今すぐ提供することです。

これは、再利用可能な部品などを構築できないことを意味するのではなく、現在のニーズを構築するために常にそれを行うだけです。さらに、これから進む道に完全に目隠しをしなければならないという意味ではありません。後で変更したり強化したりできないように物を作らないでください。しかし、キーは常にビジネス価値を提供することです。

多くの場合、環境のセットアップなど、何かを配信する前に絶対に確立する必要がある重要なことがいくつかあります。これらのことについて、多くのチームは、土台が置かれている「スプリント0」を持っていると便利だと感じています。スプリント0は、製品のバックログやバーンダウンには適用されないという点で、他のスプリントよりも少し長くなる可能性がありますが、妥当な期間にタイムボックス化する必要があります。


8

これらの最初の反復でクライアントに配信されるものは何ですか?

ユーザーにとって最高のビジネス価値を持つもの。たとえば、アプリケーションに複雑なビジネスルールがある場合、最初の反復にはコードの形式でエンコードされたビジネスルールのみが含まれます。これらのビジネスルールのコードがある限り、顧客は満足するはずです。(顧客にそのようなことを受け入れるように実際に説得する問題はまったく別の問題です。)たとえば、顧客のビジネス専門家に、ドメインが何をすべきかを表すユニット/受け入れテストを示し、そのコードが緑色の結果で合格する場合があります。さらに良いことに、ビジネスの専門家にこれらのテストの作成を支援してもらいます。

の質問もあります

フレームワークまたは基盤を構築できます

実際に配信されるものよりもはるかに重要だと思います。Evolutionary Designには、アーキテクチャを最初から作成するのではなく、時間をかけて作成する必要があるという、大きなことがあります。基盤に関しては、これは通常、何らかの種類のデータベースまたはUIフレームワークを意味します。その場合、「良いアーキテクチャは重要な決定を先送りできるものです」という考えがあります。データベースまたはUIを選択することは重要な決定です。たとえば、最初のイテレーションからDBを使用する代わりに、データ用のメモリ内ストレージだけで十分な場合があります。


3

私たちがやろうとしているのは、最初のイテレーションで可能な限り簡単なアプリケーション(私たちが提供しているもののハローワールドバージョン)を提供することです。これには3つの重要な利点があります。

  • 配信手順を設定します(常に最も難しい部分の1つ)(環境、サーバーを設置し、この環境のセキュリティを更新します)。頻繁に配信するため、できるだけ早くこれを正しく行うことが重要です。
  • ユーザーに、アプリケーションがどのように見えるかを最初に垣間見せます。これにより、ユーザーと開発者は、本当に欲しいものと必要なものを理解できます。
  • アプリケーションのアーキテクチャがどのように見えるかについての基本的な考えを持ちます(アプリケーションは、アプリケーションの基本的な「レイヤー」またはコンポーネントをカバーする必要があります)。

「配信プロセスのセットアップ」は、人々が考えるよりもはるかに困難です。
フランク・シーラー14年

はい、そうです。そのため、できるだけ早くこれを行う必要があります。
user99561 14年

2

しかし、初期のイテレーションでは、アプリケーションが基盤となるフレームワークまたは基盤を構築する可能性があります。これは重要なことですが、ユーザーには見えません。

将来使用する可能性のあるフレームワークを構築する必要がないため、これは間違っています。アイデアは、必要なものだけをビルドすることです(YAGNIも参照)。

スプリントゼロでは、実際の作業に備える必要があります。多くの人がこのスプリントで何をすべきかを主張していますが、私の意見では、バックログの項目で作業を開始できるようになった時点で終了です。この手順には、PCの設定、ビルドプロセスの設定、フレームワークの選択などが含まれます。

スプリントゼロ(または反復ゼロ)が完了したら、アプリケーションの作業を開始できます。バックログからアイテムを取得し、それらを1つずつ完了します。反復1を完了すると、何か有用なものが得られます。通常、最初の反復には最も重要な機能の一部が含まれます。

これらの最初の反復でクライアントに配信されるものは何ですか?足場コードをビルドするとき、正しい方向にどのように進行状況を表示しますか?

繰り返しゼロの後、明らかに何も提供するものがありません。成果物は反復1の後に来ます。反復用に設定した機能が含まれています。

あなたの質問が「イテレーションXに入るものを選ぶ方法」なら、これらのビデオキャスト(イテレーション0 AとBの一部のビデオ)を調べてください


反復ゼロに言及する唯一の存在であるため、+ 1
crad 14年

スプリントゼロのビルドプロセスの設定とフレームワークタスクの選択は検討していません。構築するものがわからない場合、どのフレームワークが必要かをどのように知ることができますか?私は常にスプリント0を最小限に制限しています。人々のPCを取得し、彼らが座ることができるスペースを見つけます。あなたがビジネスから話をする必要がある人を見つけてください。最初の計画会議をセットアップします。残りにYAGNIを適用します。
user99561

@ user99561フレームワークは大きな決断であり、通常は変更が困難です。たとえば、コードを書き始める前に、ユニットテストにgtestまたはcppunitのどちらを使用するかを知っておく必要があります。後で変更することは、ロバに多大な苦痛をもたらし、多くの時間を無駄にします。
BЈовић

@BЈовић:はい、フレームワークは大きな決定です。そのため、決定を延期する必要があります。開発する必要があるものと、アプリケーションとアーキテクチャがどのように見えるかがわからない場合、フレームワークを決定する意味はありません。可能な限り最後に使用するフレームワークを決定する必要があります。そうでなければ、あなたは間違いなくあなたがそれを変えなければならないという危険を冒します。
user99561 14年

@ user99561開発する必要があるものがわからない場合、開始することさえできません:)要件とユーザーストーリーを書き留める必要があります。そうしないと、反復1を開始することさえできません。
BЈовић

2

あなたが望むものはほとんど何でも提供できます。インフラストラクチャのアイデアを構築することは、単に間違っている/アジャイルではない/持続不可能です。

たとえば、完全に機能するHello Worldアプリの構築は数時間で構築できます。サーバーを(一時的であっても)クラウド内またはVMとして立ち上げることは、数時間で完了します。

これらは開発を開始するのに十分です。次に、CIが必要な場合、CIストーリーを追加できます。物理サーバーが必要な場合は、そのためのストーリーを追加してください。

しかし、1日目に配信を開始し、停止することはありません!


1

初期のイテレーション、特に最初のイテレーションには、一定量のディスカバリー時間とおそらくはアーキテクチャーのプロトタイプ作成を含む、アーキテクチャーの急上昇が含まれるか、少なくとも計画する必要があります。

あなたが言ったように、一般的に、利害関係者/顧客にとってあまり意味がないかもしれないが、強力なプラットフォームまたはパターン指向を形成するために必要な構造的要件があります。Aが完了するまでBの構築を開始できないため、これを回避することはできません。

アジャイルアプローチの一部は、顧客を近くに置くことです。そうすれば、電話をかける/メールを送信するだけでドキュメントが不要になります。顧客の期待を適切に設定する必要があり、完了した作業は非常に簡潔で必要です。金メッキも、「必要かもしれない」などもありません。Aで必要なものをビルドして、Bに移動します。

プロジェクトへの攻撃方法に応じて、特定のモジュールを完了するために必要な基盤のみを構築することができます。そのため、スプリント計画会議では、現在のスプリントの計画を優先順位に基づいてレイアウトします。お客様は、そのスプリントに必要なものに応じて、いくつかの基本的な要件があるため、スプリント1になります。最初のスプリントが完了し、Aが構築され、Bを完了する予定です。

顧客とタイムラインで合意している場合、その契約を満たそうとしている限り、顧客はおそらくあなたが1番目または2番目に何をするか気にしないでしょう。ユニットテストの結果はいつでも表示できますが、スプリント2(または3)の後に表示する何かがあると言って、配信すると、それは強力な優先順位を設定します。顧客は開発者と同じくらい合理的であることが期待され、両方とも同じ目標に向かって取り組んでいます。顧客のニーズを満たし、期待どおりに機能する完成したプロジェクト。顧客はスプリント20の後にプロジェクトが終了することを確認したいだけなので、スプリント1の後に何も表示されないことを心配することは重要なポイントです(-ish)。

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