web-dev-qa-db-ja.com

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

アジャイルの初心者であり、開始方法がわかりません。アイデアは、プロジェクトの小さな部分をスプリントで作成することです。ただし、私が取り組んでいるプロジェクトにはデータベースが必要であり、データベースはプロジェクトで何かを実行するためにほぼ機能している必要があります。

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

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

むしろ、コードを必要とするストーリーの中でdbの一部を実行しますか?.

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

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

12
Ingó Vals

はい、必要なテーブルと列をストーリーに必要なものとして追加することにより、データベースを段階的に構築します。最初のストーリーを開始するときは通常、データベース全体は必要ありません。たとえば、「ユーザーとして登録できる必要があります...」のように、正確に定義された列のセットを持つ単一のテーブルが必要になる可能性があります。

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

14
Ladislav Mrnka

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

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

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

近いが十分ではない。アイデアは、各スプリントの最後に動作するソフトウェアを提供することです(システムの一部が1つのスプリントに収まるかどうか)。データベースが顧客に提供するものである場合に限り、データベースは実用的なソフトウェアと見なすことができます。

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

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

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

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

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

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

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

はい。

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

5
devnull

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

主に誤り。

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

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

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

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

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

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

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

コードをテストします。

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

他にどのような選択肢がありますか?最初にすべてのDBを実行しますか?それ無理。

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

まず、登録する価値がないので、それは役に立たない話です。これは、ユーザーが通過しなければならない技術的なハードルにすぎません。

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

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

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

アジャイルはプロジェクト管理です。それはどんなデザインにも役立ちません。

大きな仕事を細かく分割するのに役立つだけです。

4
S.Lott

まず、増分アプローチに従います。モジュールを選択して要件を定義し、機能をチョークアウトし、機能領域をターゲットにして、モデリング、DB設計、アルゴ、コードを実行し、最後にそれをテストしてプロセスを繰り返します。

2

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

それは何ですか?通常、これはウォーターフォール方式でソフトウェアを開発してきた組織ですが、機能していないことに気付いたため、アジャイル手法の採用に内部で苦労しています。結果として生じる「失敗」は通常、真のアジャイルが、確立された多くのウォーターフォールショップが構築されている方法からの基本的な組織の変革を要求するために発生します。そしてもちろん、アジャイルがソフトウェア開発にどれほど役に立たないかをアジャイルが示すとき、多くの有能で長年の人々が自分たちをプロセスに注入する必要があると感じているので、彼らはそのように構造化されたままになる傾向があります。

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

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

2
maple_shaft