Metode dan Database Agile pada awal proyek

12

Baru tangkas dan saya tidak yakin bagaimana memulainya. Idenya adalah untuk membuat bagian kecil dari proyek dalam sprint. Namun proyek yang saya kerjakan membutuhkan database dan database harus hampir berfungsi untuk melakukan apa saja dengan proyek tersebut.

Jadi bagaimana proyek Agile menangani ini, apakah Anda mulai dengan membuat database?

Bagaimana Anda melakukannya, misalnya jika menggunakan Scrum, bagaimana Anda akan membuat cerita pengguna dan menguji db.

Apakah Anda lebih suka melakukan bagian dari db dalam sebuah cerita yang juga memerlukan kode.

Katakanlah Anda memiliki cerita yaitu "Sebagai pengguna Anda harus dapat mendaftar ..." Anda akan membuat tabel pengguna dalam database sebagai bagian dari cerita ini?

Bagaimana agile dapat membantu Anda merancang basis data?

Ingo Vals
sumber
1
re: "Sebagai pengguna, Anda harus dapat mendaftar ..." Saya sarankan membaca blog.gdinwiddie.com/2011/06/11/dont-you-have-to-login-first dan tulisan yang dia sebutkan . Mungkin tidak ada satu jawaban "benar"; ada baiknya untuk memahami berbagai alasan dalam diskusi.
StevenV
Jika Anda memulai Agile, atau metodologi lain dalam hal ini, harap pastikan itu sesuai untuk gaya tim, proyek, dan organisasi Anda dalam menangani proyek perangkat lunak (atau pelanggan Anda). Tidak benar bahwa setiap metodologi berfungsi untuk setiap proyek dan setiap organisasi.
NoChance

Jawaban:

14

Ya, Anda akan membangun basis data secara bertahap dengan menambahkan tabel dan kolom yang diperlukan sebagaimana diperlukan oleh cerita. Anda biasanya tidak memerlukan seluruh basis data ketika Anda memulai cerita pertama Anda - misalnya "Sebagai pengguna Anda harus dapat mendaftar ..." kemungkinan besar membutuhkan tabel tunggal dengan set kolom yang ditentukan secara tepat.

Jika Anda memiliki cerita yang benar-benar membutuhkan keseluruhan basis data, ceritanya Epic - terlalu besar dan harus dibagi.

Ladislav Mrnka
sumber
5

Baru tangkas dan saya tidak yakin bagaimana memulainya.

Setelah membaca posting Anda, saya pikir Anda salah paham dan Anda harus mulai dengan membaca apa yang benar-benar tangkas artinya dan coba capai.

Idenya adalah untuk membuat bagian kecil dari proyek dalam sprint.

Tutup, tapi tidak cukup dekat. Idenya adalah untuk memberikan perangkat lunak yang berfungsi pada akhir setiap sprint (satu bagian dari sistem dapat masuk ke dalam satu sprint, atau tidak). Basis data dapat dilihat sebagai perangkat lunak yang berfungsi jika dan hanya jika basis data adalah apa yang Anda berikan kepada pelanggan.

Namun proyek yang saya kerjakan membutuhkan database dan database harus hampir berfungsi untuk melakukan apa saja dengan proyek tersebut.

Mengapa harus hampir fungsional? Apakah setiap fitur sistem menggunakan seluruh atau sebagian besar konten basis data? Karena jika tidak, tidak ada gunanya mendesain seluruh database sebelumnya.

Jadi bagaimana proyek Agile menangani ini, apakah Anda mulai dengan membuat database?

Agile tidak menangani desain database atau sistem. Ini memberi tahu Anda cara mengelola proyek Anda. Dengan mengingat hal itu, Anda mulai dengan mengidentifikasi semua fitur sistem dan memasukkannya ke dalam jaminan produk. Kemudian Anda, bersama dengan pemilik produk, menetapkan prioritas untuk fitur-fitur dalam jaminan simpanan. Setelah selesai, Anda mulai mengambil fitur dari backlog dan membuat sprint (biasanya 2 hingga 4 minggu). Ketika sprint selesai, Anda harus memiliki fitur kerja baru dalam sistem yang dapat dikirim ke pelanggan.

Bagaimana Anda melakukannya, misalnya jika menggunakan Scrum, bagaimana Anda akan membuat cerita pengguna dan menguji db.

Saya mungkin salah, tetapi tidak ada gunanya menguji basis data. Anda dapat menguji kode yang memperbarui basis data. Tentu saja, Anda dapat menguji bagian yang dapat diprogram dari basis data tetapi itu dapat dicapai dengan menguji kode yang memanggilnya.

Apakah Anda lebih suka melakukan bagian dari db dalam sebuah cerita yang juga memerlukan kode.

Iya.

Agile bukanlah peluru perak bagi manajemen proyek dan dapat mengeja bencana jika tidak diterapkan dengan benar. Cobalah untuk meluangkan waktu membaca tentang itu (Anda dapat menemukan banyak sumber daya di sini atau di stackoverflow), mungkin menemukan seseorang yang telah melakukan gesit dan dapat membantu Anda untuk mempercepat.

devnull
sumber
4

database harus hampir berfungsi untuk melakukan apa saja dengan proyek.

Salah besar.

Jadi bagaimana proyek Agile menangani ini, apakah Anda mulai dengan membuat database?

Basis data kosong, ya. Kemudian tambahkan tabel sesuai kebutuhan untuk menyelesaikan sprint.

bagaimana Anda melakukan cerita pengguna dan menguji db?

Apa yang kamu tanyakan? Agile tidak ada hubungannya dengan desain database.

Anda menulis ceritanya.

Anda merancang solusi.

Anda membuat tabel dan kode.

Anda menguji kodenya.

Apakah Anda lebih suka melakukan bagian db dalam cerita yang juga memerlukan kode?

Apa pilihan lain yang ada? Lakukan semua DB terlebih dahulu? Itu tidak mungkin.

"Sebagai pengguna, Anda harus dapat mendaftar ..." Anda akan membuat tabel pengguna dalam database sebagai bagian dari cerita ini?

Pertama, itu cerita yang tidak berguna, karena tidak ada gunanya mendaftar. Itu hanya rintangan teknis yang harus dilewati pengguna.

Kedua, Anda akan membuat tabel yang cukup untuk mengimplementasikan cerita.

Bagaimana agile dapat membantu Anda merancang basis data?

Apa yang kamu tanyakan?

Agile adalah manajemen proyek. Itu tidak membantu dengan desain apa pun.

Ini hanya membantu Anda memecah pekerjaan besar menjadi potongan-potongan kecil.

S.Lott
sumber
2

Yah pertama-tama ikuti pendekatan tambahan. Pilih modul menentukan persyaratannya, tulis fungsionalitasnya, targetkan area fungsional dan kemudian datanglah pemodelan, desain db, algos, kode dan akhirnya mengujinya dan ulangi prosesnya.

Anand Govindarajan
sumber
2

Pertanyaan Anda meneriakkan anti-pola pengembangan AgileFall .

Apa itu? Ini biasanya sebuah organisasi yang secara tradisional mengembangkan perangkat lunak dalam metode Waterfall, tetapi kemudian karena mereka menyadari itu tidak berfungsi, mereka berjuang secara internal untuk mengadopsi teknik Agile. "Gagal gasm" yang dihasilkan biasanya terjadi karena Agile PERMINTAAN benar-benar perombakan organisasional dari cara banyak toko air terjun yang didirikan terstruktur. Dan tentu saja mereka akan cenderung tetap terstruktur seperti itu karena banyak orang kuat dan bertenor merasa mereka perlu menyuntikkan diri ke dalam proses ketika Agile menunjukkan betapa tidak bergunanya orang-orang itu BENAR-BENAR terhadap pengembangan perangkat lunak.

Anda perlu melepaskan diri dari gagasan bahwa entah bagaimana Anda mulai dari bawah, merancang dan membangun basis data Anda, dan kemudian pindah ke tingkat menengah dan tidak pernah harus menyentuh basis data Anda lagi. Ini adalah cara yang salah untuk melakukannya di Agile.

Mulai dari model domain untuk cerita pengguna, dan lanjutkan jalan Anda ke database, dan BAWAH ke tingkat menengah dan presentasi.

maple_shaft
sumber
Ya saya melihat sebagian besar petunjuk jawaban pada ini dan saya bahkan menemukan jawabannya saat menulis pertanyaan. Jangan khawatir tentang AgileFall, ini sebagian besar merupakan proyek uji di mana saya mencoba metode dan pola untuk mempelajari cara kerjanya, bukan proyek yang serius.
Ingó Vals