Seperti yang saya mengerti, ide dengan metodologi Agile adalah bahwa Anda memberikan sesuatu yang fungsional dan Anda sering memberikannya. Aplikasi masuk ke kenaikan bentuk akhirnya setelah penambahan.
Tetapi dalam iterasi awal Anda mungkin membangun kerangka kerja atau fondasi di mana aplikasi akan berdiri sehingga itu sesuatu yang penting tetapi tidak terlihat oleh pengguna.
Apa yang dikirim ke klien dalam iterasi pertama ini? Bagaimana Anda menunjukkan kemajuan ke arah yang benar ketika Anda membangun kode perancah?
agile
development-process
frameworks
development-methodologies
iterative-development
JohnDoDo
sumber
sumber
Jawaban:
Biasanya memiliki sprint 2 minggu.
Bagi saya, sprint pertama atau 2 kemungkinan akan memiliki lebih sedikit fitur "terlihat" daripada sprint kemudian untuk alasan yang tepat ini (untuk beberapa deskripsi lemah "kurang").
Yang sedang berkata, tentu saja Anda tidak perlu 2 minggu untuk membangun seluruh perancah Anda dan tidak ada yang terlihat di UI untuk ditampilkan.
Mungkin Anda tidak menyempurnakan setiap item perancah di sprint pertama atau 2. Mungkin bagian bisa menunggu dan ditambahkan nanti.
Mungkin sprint pertama Anda memiliki "Buat halaman web X dengan data dummy" sehingga Anda bisa mendapatkan sesuatu yang mengkilap untuk ditampilkan kepada pelanggan Anda. Dan kemudian sprint berikutnya memiliki "Ubah halaman web X untuk menggunakan data dari database".
sumber
Agile Manifesto menyarankan bahwa Perangkat Lunak yang Bekerja lebih berharga daripada dokumentasi yang komprehensif, dan kerangka kerja Scrum mengambil gagasan ini untuk menyarankan bahwa memberikan perangkat lunak yang telah teruji dan berfungsi dengan nilai bisnis menjadi persyaratan setiap sprint.
Mengapa? Ya, antara lain, desainer dan pengembang sering menjadi korban menghabiskan banyak waktu untuk barang-barang YNNI (Anda tidak akan pernah membutuhkannya). Sayangnya, kerangka kerja yang Anda bicarakan seringkali merupakan tanggung jawab besar dalam bidang ini. Pengembang mulai membangun semua hal yang harus didukung oleh kerangka kerja dan tiba-tiba Anda berusia 3 bulan dan tidak memiliki nilai bisnis apa pun untuk ditampilkan. Kemudian ternyata kerangka itu bahkan tidak benar-benar mendukung apa yang mereka butuhkan.
Jadi pendekatan yang disarankan adalah membangun hanya apa yang sebenarnya dibutuhkan sekarang, dan mengirimkannya sekarang.
Ini BUKAN berarti Anda tidak dapat membangun bagian yang dapat digunakan kembali dan sejenisnya, Anda hanya selalu melakukannya untuk mendukung pembangunan kebutuhan saat ini. Selain itu, itu tidak berarti Anda harus benar-benar memakai penutup mata untuk apa yang akan terjadi - jangan membangun sesuatu sehingga tidak mungkin untuk mengubah / meningkatkannya nanti. Tetapi kuncinya adalah selalu memberikan nilai bisnis.
Sering ada beberapa hal penting yang benar-benar perlu ditetapkan sebelum apa pun dapat disampaikan, seperti pengaturan lingkungan dan sejenisnya. Untuk hal-hal ini, banyak tim merasa berguna untuk memiliki "Sprint 0" di mana landasannya diletakkan. Sprint 0 bisa menjadi sedikit lebih lama dari sprint Anda yang lain, karena tidak berlaku untuk jaminan simpanan produk Anda atau burn-down, tetapi sprint itu masih harus dikotak-kotak hingga durasi yang masuk akal.
sumber
Apa yang memiliki nilai bisnis tertinggi bagi pengguna. Misalnya, jika aplikasi memiliki aturan bisnis yang kompleks, iterasi pertama hanya akan berisi aturan bisnis yang disandikan dalam bentuk kode. Pelanggan harus puas selama Anda memiliki kode untuk aturan bisnis tersebut. (Masalah yang sebenarnya meyakinkan pelanggan untuk menerima hal seperti itu adalah masalah yang sama sekali berbeda.) Misalnya, Anda dapat menunjukkan kepada pakar bisnis pelanggan unit Anda / tes penerimaan yang menyatakan apa yang harus dilakukan domain dan kode yang lulus dengan hasil hijau. Atau bahkan lebih baik, buat pakar bisnis membantu membuat tes itu.
Ada juga pertanyaan tentang
Yang saya percaya jauh lebih penting daripada apa yang sebenarnya disampaikan. Ada hal besar bagi Desain Evolusi , yang mengatakan, bahwa Anda harus membuat arsitektur dari waktu ke waktu alih-alih mencoba membuatnya di awal. Adapun dasar, ini biasanya berarti semacam database atau kerangka UI. Dalam hal ini, ada gagasan " Arsitektur yang baik adalah arsitektur yang memungkinkan Anda menunda keputusan penting ." Dan memilih basis data atau UI adalah keputusan penting. Sebagai contoh, Anda mungkin baik-baik saja dengan hanya penyimpanan di memori untuk data alih-alih mencoba menggunakan DB dari iterasi pertama.
sumber
Apa yang kami coba lakukan adalah memberikan dalam iterasi pertama aplikasi paling sederhana yang mungkin (versi dunia halo dari apa yang kami kirimkan). Kami melihat 3 manfaat penting dalam hal ini:
sumber
Ini salah, karena Anda tidak perlu membangun kerangka kerja yang dapat Anda gunakan di masa depan. Idenya adalah membangun hanya apa yang dibutuhkan (lihat juga YAGNI ).
Dalam sprint zero, Anda harus bersiap untuk pekerjaan yang sebenarnya. Banyak orang berdebat apa yang harus dilakukan dalam sprint ini, tetapi menurut saya, itu selesai ketika Anda dapat mulai mengerjakan item-item di backlog. Langkah ini termasuk pengaturan PC, pengaturan proses build, memilih kerangka kerja, dll.
Ketika Anda selesai dengan sprint zero (atau iterasi nol), Anda dapat mulai mengerjakan aplikasi Anda. Ambil item dari backlog, dan selesaikan satu per satu. Setelah Anda menyelesaikan iterasi satu, Anda akan memiliki sesuatu yang bermanfaat. Iterasi pertama biasanya mencakup beberapa fitur yang paling penting.
Setelah iterasi nol, jelas Anda tidak memiliki apa pun untuk dikirim. Hasil datang setelah iterasi satu. Ini berisi fitur yang Anda tetapkan untuk iterasi.
Jika pertanyaan Anda adalah "bagaimana memilih apa yang masuk ke dalam iterasi X?", Maka lihatlah videocast ini (video untuk iterasi 0 A dan bagian dari B).
sumber
Anda dapat memberikan hampir semua yang Anda inginkan. Gagasan membangun infrastruktur sama sekali salah / tidak gesit / tidak berkelanjutan.
Misalnya: membangun aplikasi Hello World yang berfungsi penuh dapat dibangun dalam hitungan jam. Membawa server (bahkan sementara) di cloud atau sebagai VM dapat dilakukan dalam hitungan jam.
Ini sudah cukup untuk mulai berkembang . Kemudian, jika Anda membutuhkan CI, Anda dapat menambahkan cerita CI, jika Anda membutuhkan server fisik, tentu saja, tambahkan cerita untuk itu.
Tapi mulailah mengirim pada Hari 1 dan tidak pernah berhenti!
sumber
Iterasi awal, terutama yang pertama, akan berisi atau setidaknya harus merencanakan lonjakan arsitektur, yang mencakup sejumlah waktu penemuan dan mungkin beberapa prototipe arsitektur.
Seperti yang Anda katakan, secara umum, ada persyaratan struktural yang mungkin tidak banyak berarti bagi pemangku kepentingan / pelanggan, tetapi diminta untuk membentuk platform atau orientasi pola yang kuat. Anda tidak dapat menyiasatinya karena Anda tidak dapat mulai membangun B hingga A selesai.
Bagian dari pendekatan Agile adalah membuat pelanggan tutup sehingga dokumentasi tidak diperlukan karena yang perlu Anda lakukan hanyalah mengangkat telepon / mengirim email, dan itu diharapkan. Harapan pelanggan harus ditetapkan dengan tepat dan setiap pekerjaan yang diselesaikan harus sangat singkat dan DIPERLUKAN . Tidak ada pelapisan emas, tidak "Anda mungkin membutuhkannya", dll. Bangun apa yang Anda butuhkan dalam A untuk pindah ke B.
Bergantung pada bagaimana Anda menyerang proyek, Anda hanya dapat membangun fondasi yang diperlukan untuk menyelesaikan modul tertentu, sehingga selama pertemuan perencanaan sprint Anda akan menyusun rencana untuk sprint saat ini berdasarkan prioritas yang ditetapkan oleh pelanggan, tergantung pada apa yang diperlukan untuk sprint itu, mungkin ada beberapa persyaratan mendasar, jadi itulah yang masuk ke dalam sprint 1. Setelah sprint 1 selesai dan A telah dibangun dan kemudian berencana untuk menyelesaikan B.
Jika Anda telah menyetujui timeline dengan pelanggan, selama Anda akan memenuhi perjanjian itu, pelanggan mungkin tidak akan peduli apa yang Anda lakukan 1 atau 2. Anda selalu bisa menunjukkan hasil unit test kepada mereka, tetapi jika Anda mengatakan kami akan memiliki sesuatu untuk Anda lihat setelah sprint 2 (atau 3), dan Anda memberikannya, itu akan menjadi prioritas utama. Pelanggan diharapkan masuk akal seperti halnya pengembang dan keduanya bekerja menuju tujuan yang sama. Proyek yang selesai yang memenuhi kebutuhan pelanggan dan berfungsi seperti yang diharapkan. Jadi khawatir bahwa tidak ada yang bisa dilihat setelah sprint 1 adalah titik diperdebatkan karena pelanggan hanya ingin memastikan bahwa setelah sprint 20, proyek akan selesai (-ish).
sumber