プロジェクト開始時のアジャイルメソッドとデータベース


12

アジャイルは初めてで、どのように始めればいいのかわかりません。アイデアは、スプリントでプロジェクトの小さな部分を作成することです。しかし、私が取り組んでいるプロジェクトにはデータベースが必要であり、データベースはプロジェクトで何でもできるようにほぼ機能している必要があります。

それでは、アジャイルプロジェクトはこれをどのように処理しますか、データベースを作成することから始めますか?

たとえば、Scrumを使用している場合、ユーザーストーリーをどのように行い、データベースをテストしますか。

コードを必要とするストーリーの中で、dbの一部を実行したいですか。

「ユーザーとして登録する必要があります...」というストーリーがあるとします。このストーリーの一部としてデータベースにユーザーテーブルを作成しますか?

アジャイルは、データベースの設計にどのように役立ちますか?


1
再:「ユーザーとして登録することができなければならない...」私は通読をお勧めしたいblog.gdinwiddie.com/2011/06/11/dont-you-have-to-login-firstと彼は言及投稿。誰も「正しい」答えがないかもしれません。議論のさまざまな理由を理解することは良いことです。
スティーブンV

アジャイルやその他の方法論を開始する場合は、ソフトウェアプロジェクト(または顧客)を扱う際のチーム、プロジェクト、および組織のスタイルに合っていることを確認してください。すべての方法論がすべてのプロジェクトおよびすべての組織で機能することは事実ではありません。
-NoChance

回答:


14

はい。ストーリーに必要なテーブルと列を追加して、データベースをインクリメンタルに構築します。通常、最初のストーリーを開始するとき、データベース全体は必要ありません。たとえば、「ユーザーとして登録する必要があります...」は、ほとんどの場合、正確に定義された列セットを持つ単一のテーブルを必要とします。

データベース全体を本当に必要とするストーリーがある場合、そのストーリーはEpicです-単に大きすぎて分割する必要があります。


5

アジャイルは初めてで、どのように始めればいいのかわかりません。

あなたの投稿を読んだ後、あなたはそれを誤解していると思うので、アジャイルが本当に意味し、達成しようとするものを読むことから始めるべきです。

アイデアは、スプリントでプロジェクトの小さな部分を作成することです。

閉じますが、十分ではありません。アイデアは、各スプリントの最後に機能するソフトウェアを提供することです(システムの一部が1つのスプリントに収まる場合と収まらない場合があります)。データベースは、データベースがお客様に提供するものである場合にのみ、機能するソフトウェアと見なすことができます。

しかし、私が取り組んでいるプロジェクトにはデータベースが必要であり、データベースはプロジェクトで何でもできるようにほぼ機能している必要があります。

なぜほとんど機能する必要があるのですか?システムのすべての機能がデータベースのコンテンツ全体またはほとんどを使用していますか?そうでない場合、データベース全体を事前に設計しても意味がないためです。

それでは、アジャイルプロジェクトはこれをどのように処理しますか、データベースを作成することから始めますか?

アジャイルはデータベースやシステム設計を扱いません。プロジェクトの管理方法を説明します。それを念頭に置いて、システムのすべての機能を特定し、それらを製品バックログに追加することから始めます。次に、製品所有者と一緒に、バックログの機能に優先順位を割り当てます。完了したら、バックログから機能を取得し、スプリントを作成します(通常2〜4週間)。スプリントが終了すると、顧客に提供できる新しい機能がシステムに追加されます。

たとえば、Scrumを使用している場合、ユーザーストーリーをどのように行い、データベースをテストしますか。

間違っているかもしれませんが、データベースをテストしても意味がありません。データベースを更新するコードをテストできます。もちろん、データベースのプログラム可能な部分をテストできますが、それを呼び出すコードをテストすることで達成できます。

コードを必要とするストーリーの中で、dbの一部を実行したいですか。

はい。

アジャイルは、プロジェクト管理にとって決して特効薬ではありません。正しく適用されないと、災害を引き起こす可能性があります。少し時間をかけてそれについて読んでみてください(ここまたはstackoverflowで多くのリソースを見つけることができます)。


4

データベースは、プロジェクトで何かを行うためにほぼ機能している必要があります。

ほぼ間違い。

それでは、アジャイルプロジェクトはこれをどのように処理しますか、データベースを作成することから始めますか?

空のデータベース、はい。次に、必要に応じてテーブルを追加して、スプリントを終了します。

ユーザーストーリーをどのように行い、データベースをテストしますか?

何を聞いているんですか?アジャイルはデータベース設計とは関係ありません。

あなたは物語を書きます。

ソリューションを設計します。

テーブルとコードを作成します。

コードをテストします。

コードを必要とするストーリーでdbの一部を実行したいですか?

他にどんな選択肢がありますか?最初にすべてのDBを使用しますか?それ無理。

「ユーザーとして登録する必要があります...」このストーリーの一部としてデータベースにユーザーテーブルを作成しますか?

まず、登録する価値がないので、それは役に立たない話です。これは、単にユーザーに強制的に通過させる技術的なハードルです。

次に、ストーリーを実装するのに十分なテーブルを作成します。

アジャイルは、データベースの設計にどのように役立ちますか?

何を聞いているんですか?

アジャイルはプロジェクト管理です。設計には役立ちません。

それは単にあなたが大きな仕事を小さな断片に分割するのを助けるだけです。


2

モジュールを選択して要件を定義し、機能をチョークアウトし、機能領域をターゲットにしてから、モデリング、データベース設計、アルゴリズム、コードを作成し、最後にテストしてプロセスを繰り返します。


2

あなたの質問は、AgileFall開発のアンチパターンの叫びです。

それは何ですか?通常、従来はウォーターフォール方式でソフトウェアを開発していた組織ですが、機能していないことに気付いたため、アジャイル技術を採用するために内部で苦労しています。結果として生じる「フェイルガズム」は通常、真のアジャイルが、多くの確立されたウォーターフォールショップの構造から根本的な組織改革を要求するために発生します。そしてもちろん、アジャイルがソフトウェア開発にとって本当に役に立たないことをアジャイルが示すとき、多くの強力で終身的な人々がプロセスに自分自身を投入する必要があると感じているので、彼らはそのように構造化されたままになる傾向があります。

どういうわけか下から始めてデータベースを設計および構築し、その後中間層に移動し、データベースに再度触れる必要がないという概念をエスケープする必要があります。これはアジャイルでそれを行う間違った方法です。

ユーザーストーリーのドメインモデルから始めて、データベースに進み、中間層とプレゼンテーションに進みます。


ええ、私はこれに関するほとんどの答えのヒントを見て、質問を書いている間にそれを少し考えました。AgileFallについて心配する必要はありません。これは主にテストプロジェクトであり、メソッドとパターンを試して、それらがどのように機能するかを学習しています。深刻なプロジェクトではありません。
インゴヴァルス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.