私が理解しているように、アジャイル方法論のアイデアは、機能的なものを提供し、頻繁にそれを提供することです。アプリケーションは、増分後に最終的な形状の増分になります。
しかし、初期のイテレーションでは、アプリケーションが基盤となるフレームワークまたは基盤を構築する可能性があります。これは重要なことですが、ユーザーには見えません。
これらの最初の反復でクライアントに配信されるものは何ですか?足場コードをビルドするとき、正しい方向にどのように進行状況を表示しますか?
私が理解しているように、アジャイル方法論のアイデアは、機能的なものを提供し、頻繁にそれを提供することです。アプリケーションは、増分後に最終的な形状の増分になります。
しかし、初期のイテレーションでは、アプリケーションが基盤となるフレームワークまたは基盤を構築する可能性があります。これは重要なことですが、ユーザーには見えません。
これらの最初の反復でクライアントに配信されるものは何ですか?足場コードをビルドするとき、正しい方向にどのように進行状況を表示しますか?
回答:
2週間のスプリントが一般的です。
私にとっては、この正確な理由により、最初のスプリントまたは2の方が後のスプリントよりも「目に見える」機能が少ないでしょう(「より少ない」のいくつかのかすかな説明のため)。
そうは言っても、確かに足場全体を構築するのに2週間かかることはなく、UIに何も表示されません。
たぶん、最初のスプリントまたは2ですべての足場アイテムを肉付けしていないかもしれません。たぶん、パーツを待って後で追加することができます。
おそらく、最初のスプリントには「ダミーデータを使用してWebページXを作成」して、顧客に見せるために何かを輝かせることができます。そして、次のスプリントには「データベースのデータを使用するようにWebページXを変更します」があります。
アジャイルマニフェストは、ワーキングソフトウェアは包括的なドキュメントよりも価値があることを示唆しています。スクラムフレームワークは、ビジネス価値のあるテスト済みのワーキングソフトウェアをすべてのスプリントの要件とすることを示唆します。
どうして?まあ、とりわけ、デザイナーと開発者は、YNNI(あなたがそれを必要としないでしょう)アイテムに多くの時間を費やすことの犠牲になることがよくあります。残念ながら、あなたが話しているこれらのフレームワークは、多くの場合、この分野で大きな責任となります。開発者は、フレームワークMIGHTがサポートしなければならないすべてのものを構築し始めます。突然、3か月であなたはそれに対して示すビジネス価値がありません。その結果、フレームワークは最終的に必要なものを実際にはサポートしていません。
そのため、推奨されるアプローチは、現在実際に必要なもののみを構築し、今すぐ提供することです。
これは、再利用可能な部品などを構築できないことを意味するのではなく、現在のニーズを構築するために常にそれを行うだけです。さらに、これから進む道に完全に目隠しをしなければならないという意味ではありません。後で変更したり強化したりできないように物を作らないでください。しかし、キーは常にビジネス価値を提供することです。
多くの場合、環境のセットアップなど、何かを配信する前に絶対に確立する必要がある重要なことがいくつかあります。これらのことについて、多くのチームは、土台が置かれている「スプリント0」を持っていると便利だと感じています。スプリント0は、製品のバックログやバーンダウンには適用されないという点で、他のスプリントよりも少し長くなる可能性がありますが、妥当な期間にタイムボックス化する必要があります。
これらの最初の反復でクライアントに配信されるものは何ですか?
ユーザーにとって最高のビジネス価値を持つもの。たとえば、アプリケーションに複雑なビジネスルールがある場合、最初の反復にはコードの形式でエンコードされたビジネスルールのみが含まれます。これらのビジネスルールのコードがある限り、顧客は満足するはずです。(顧客にそのようなことを受け入れるように実際に説得する問題はまったく別の問題です。)たとえば、顧客のビジネス専門家に、ドメインが何をすべきかを表すユニット/受け入れテストを示し、そのコードが緑色の結果で合格する場合があります。さらに良いことに、ビジネスの専門家にこれらのテストの作成を支援してもらいます。
の質問もあります
フレームワークまたは基盤を構築できます
実際に配信されるものよりもはるかに重要だと思います。Evolutionary Designには、アーキテクチャを最初から作成するのではなく、時間をかけて作成する必要があるという、大きなことがあります。基盤に関しては、これは通常、何らかの種類のデータベースまたはUIフレームワークを意味します。その場合、「良いアーキテクチャは重要な決定を先送りできるものです」という考えがあります。データベースまたはUIを選択することは重要な決定です。たとえば、最初のイテレーションからDBを使用する代わりに、データ用のメモリ内ストレージだけで十分な場合があります。
私たちがやろうとしているのは、最初のイテレーションで可能な限り簡単なアプリケーション(私たちが提供しているもののハローワールドバージョン)を提供することです。これには3つの重要な利点があります。
しかし、初期のイテレーションでは、アプリケーションが基盤となるフレームワークまたは基盤を構築する可能性があります。これは重要なことですが、ユーザーには見えません。
将来使用する可能性のあるフレームワークを構築する必要がないため、これは間違っています。アイデアは、必要なものだけをビルドすることです(YAGNIも参照)。
スプリントゼロでは、実際の作業に備える必要があります。多くの人がこのスプリントで何をすべきかを主張していますが、私の意見では、バックログの項目で作業を開始できるようになった時点で終了です。この手順には、PCの設定、ビルドプロセスの設定、フレームワークの選択などが含まれます。
スプリントゼロ(または反復ゼロ)が完了したら、アプリケーションの作業を開始できます。バックログからアイテムを取得し、それらを1つずつ完了します。反復1を完了すると、何か有用なものが得られます。通常、最初の反復には最も重要な機能の一部が含まれます。
これらの最初の反復でクライアントに配信されるものは何ですか?足場コードをビルドするとき、正しい方向にどのように進行状況を表示しますか?
繰り返しゼロの後、明らかに何も提供するものがありません。成果物は反復1の後に来ます。反復用に設定した機能が含まれています。
あなたの質問が「イテレーションXに入るものを選ぶ方法」なら、これらのビデオキャスト(イテレーション0 AとBの一部のビデオ)を調べてください。
初期のイテレーション、特に最初のイテレーションには、一定量のディスカバリー時間とおそらくはアーキテクチャーのプロトタイプ作成を含む、アーキテクチャーの急上昇が含まれるか、少なくとも計画する必要があります。
あなたが言ったように、一般的に、利害関係者/顧客にとってあまり意味がないかもしれないが、強力なプラットフォームまたはパターン指向を形成するために必要な構造的要件があります。Aが完了するまでBの構築を開始できないため、これを回避することはできません。
アジャイルアプローチの一部は、顧客を近くに置くことです。そうすれば、電話をかける/メールを送信するだけでドキュメントが不要になります。顧客の期待を適切に設定する必要があり、完了した作業は非常に簡潔で必要です。金メッキも、「必要かもしれない」などもありません。Aで必要なものをビルドして、Bに移動します。
プロジェクトへの攻撃方法に応じて、特定のモジュールを完了するために必要な基盤のみを構築することができます。そのため、スプリント計画会議では、現在のスプリントの計画を優先順位に基づいてレイアウトします。お客様は、そのスプリントに必要なものに応じて、いくつかの基本的な要件があるため、スプリント1になります。最初のスプリントが完了し、Aが構築され、Bを完了する予定です。
顧客とタイムラインで合意している場合、その契約を満たそうとしている限り、顧客はおそらくあなたが1番目または2番目に何をするか気にしないでしょう。ユニットテストの結果はいつでも表示できますが、スプリント2(または3)の後に表示する何かがあると言って、配信すると、それは強力な優先順位を設定します。顧客は開発者と同じくらい合理的であることが期待され、両方とも同じ目標に向かって取り組んでいます。顧客のニーズを満たし、期待どおりに機能する完成したプロジェクト。顧客はスプリント20の後にプロジェクトが終了することを確認したいだけなので、スプリント1の後に何も表示されないことを心配することは重要なポイントです(-ish)。