Apakah memutuskan tanggal rilis sebelum mengumpulkan semua persyaratan tidak tangkas?

10

Saya baru saja mulai membaca buku Menerapkan UML dan Pola oleh Craig Larman. Saya merasa ini sangat menarik karena menantang banyak dari apa yang saya katakan di tempat kerja. Saya membaca bahwa persyaratan tidak sepenuhnya dikumpulkan dalam sekali jalan tangkas dan dibutuhkan banyak iterasi untuk menyelesaikan pengumpulan persyaratan. Jika itu masalahnya, apakah menetapkan tenggat waktu yang sulit, yang harus saya lakukan di tempat kerja, sangat tidak gesit, mengingat mungkin ada beberapa persyaratan baru (atau ubah permintaan yang menyamar sebagai persyaratan) besok?

Kaushik
sumber

Jawaban:

19

Sama sekali tidak ada masalah "Agile" dengan memiliki tanggal rilis tetap jika Anda siap untuk memindahkan salah satu dari dua sisi lain dari "segitiga besi": persyaratan untuk apa yang perlu ada dalam rilis itu, atau sumber daya yang Anda miliki . Anda tidak dapat memperbaiki ketiganya - dan dalam praktiknya, sisi "sumber daya" dari segitiga sangat sering tidak fleksibel atau tidak efisien untuk dimodifikasi.

Jika ada persyaratan baru utama besok, itu bagus selama bisnis siap untuk menerima persyaratan yang mungkin tidak membuat tanggal rilis - yaitu tergelincir ke rilis berikutnya.

Philip Kendall
sumber
1
Saya selalu merasa bahwa sisi sumber daya segitiga adalah kesalahan. Tukar untuk kualitas dan berfungsi lebih baik. Tapi Anda tepat: ikat saya ke tanggal rilis jika Anda harus tetapi fitur dan kualitas akan tergelincir sebagai hasilnya.
David Arno
1
@ Davidvidno Saya berpendapat bahwa "kualitas" adalah bagian dari Definisi Selesai, yang merupakan bagian dari setiap persyaratan. Dan "sumber daya" pasti bisa memiliki dampak yang signifikan pada pengiriman jika Anda mengambil sumber daya jauh dari proyek tersebut.
Philip Kendall
1
@ChristianHackl: Saya pikir apa pun metodologinya, pengembangan perangkat lunak membutuhkan banyak waktu dan banyak uang jika Anda juga menginginkan kualitas.
Bryan Oakley
2
@BryanOakley: Itu benar. Saya hanya berharap penginjil yang gesit benar-benar menyadari bahwa metodologi mereka tidak istimewa dalam hal ini. Setelah Anda meninggalkan anggapan keliru bahwa tangkas memungkinkan Anda memiliki kue dan memakannya, maka Anda sebenarnya dapat merancang proses pengembangan yang benar untuk proyek Anda dengan memilih apakah dan seberapa banyak "gesit" seharusnya ada di dalamnya.
Christian Hackl
1
@ChristianHackl Tidak ada metodologi yang tepat. Tetapi poin utama dari "gesit" (istilah yang luas) bukanlah bahwa itu harus membuat pengiriman yang sukses lebih murah / lebih cepat tetapi itu membuat biaya kegagalan (tak terhindarkan) turun.
Guran
3

Saya pikir masalah di banyak kamp Agile adalah dengan batas waktu kata. Risiko dengan tenggat waktu adalah Anda menganggap Anda tahu apa yang perlu dilakukan. Seperti yang Anda tunjukkan, Anda tidak dapat memiliki tenggat waktu untuk hal yang tidak diketahui.

Apa yang dideskripsikan dalam jawaban Philip jauh lebih sedikit daripada tenggat waktu. Kami dapat mengatakan bahwa kami memiliki dana hingga Maret dan karenanya kami harus membuat produk terbaik pada saat itu.

Untuk memberikan analogi, anggaplah saya meminta Anda untuk pergi ke kisah belanjaan dan membeli semua bahan makanan selama seminggu dan, sebelum Anda pergi atau melihat harga berapa pun, saya ingin Anda memberi tahu saya dengan tepat apa yang akan Anda belanjakan. Selanjutnya, Anda akan dihukum jika Anda salah. Anda akan melakukan persis apa yang dilakukan orang dengan tenggat waktu proyek - Anda akan memilih angka di ujung atas dari apa yang Anda pikirkan jangkauannya karena memiliki peluang terendah Anda terkena sanksi. Sekarang, katakanlah saya katakan ini tidak dapat diterima dan Anda harus membeli hal yang sama seperti yang Anda rencanakan, tetapi Anda harus melakukannya dengan $ 50 lebih murah, atau yang lain. Sekarang apa yang bisa kamu lakukan? Anda dapat menolak, Anda hanya dapat menunda argumen sampai setelah Anda berbelanja, atau Anda dapat menemukan cara untuk menipu situasi. Inilah yang terjadi di banyak organisasi dengan tenggat waktu yang ditetapkan pada yang tidak diketahui.

Sekarang, melihat betapa tidak sehatnya seluruh situasi ini, Agile hanya mengatakan, "Jika Anda memiliki anggaran, saya bisa berjanji untuk masuk di bawah itu dan akan memberi Anda makanan terbaik untuk minggu ini dalam kendala itu." Yang merupakan percakapan yang jauh lebih sehat untuk dimiliki.

Daniel
sumber
Anda benar-benar menjanjikan itu kepada orang-orang? Bagaimana jika Anda salah dan pendekatan lain akan memenuhi tenggat waktu dengan makanan yang lebih baik?
Christian Hackl
1
Argumen serupa tentang Agile dan tenggat waktu di sini
Eric King
@Kristen. Tentu. Setidaknya, itu yang terbaik yang bisa saya sampaikan dalam batasan itu. Mungkin orang lain bisa berbuat lebih baik atau mungkin jika keadaannya berbeda saya akan datang dengan solusi yang lebih baik, tetapi spekulasi itu tampaknya tidak berharga. Terutama mengingat bahwa saya selalu memiliki lebih banyak informasi di kemudian hari dalam proyek yang didapatnya, perkiraan tenggat waktu yang saya berikan sekarang akan, pada dasarnya, kurang informasi daripada apa pun yang saya katakan nanti.
Daniel
tentu saja, kita berbicara tentang topik yang cukup rumit di platform StackExchange, yang tidak dirancang untuk menangani topik multi-segi yang luas. Saya mencoba untuk menjaga jawaban saya singkat dan fokus untuk memenuhi platform. Faktanya, ini adalah irisan yang sangat sempit dan banyak yang dapat dikatakan tentang sifat pengembangan perangkat lunak yang lebih kuat dan mengatur siklus pengembangan.
Daniel
@Aniel: Yah, saya hanya keberatan dengan anggapan bahwa seseorang menjanjikan hasil yang ideal kepada pelanggan hanya karena Anda yakin Anda menggunakan pendekatan terbaik. Itu tidak realistis.
Christian Hackl
2

Agile adalah teknik, bukan hasil. Dibandingkan dengan memotong rumput, satu iterasi seperti satu baris rumput yang telah Anda potong. Jika seseorang mengatakan "memotong seluruh halaman Anda dalam 15 menit", dan Anda menggunakan gesit, mungkin Anda akan menyelesaikan 30% pada akhirnya. Kemudian Anda akan beralih lagi dan menyelesaikannya.

Dingo
sumber
2

Anda dapat memiliki tanggal rilis yang direncanakan tanpa masalah. Pastikan saja bahwa pada tanggal khusus ini Anda tidak akan rugi. Anda harus memiliki produk yang dapat dikirim pada akhir setiap sprint, tetapi biasanya tidak ada salahnya dilakukan jika Anda tidak; itu lebih merupakan tujuan yang memfokuskan pekerjaan daripada persyaratan. Jika Anda memiliki tanggal rilis yang direncanakan, maka Anda harus memiliki produk yang dapat dirilis pada tanggal tersebut.

Anda biasanya akan bertujuan untuk memiliki produk yang belum diuji, tetapi mudah-mudahan dapat dirilis beberapa waktu sebelum tanggal rilis yang direncanakan, kemudian produk diuji dan bug diperbaiki sampai standar kualitas terpenuhi, dan kemudian dirilis tanpa perlu panik. Rilis ini akan berisi apa pun yang siap pada saat itu.

Sekarang mungkin tidak jelas bagi bos Anda bahwa Anda harus merencanakan tanggal rilis kedua juga, dengan lebih banyak fitur yang benar-benar diterapkan.

gnasher729
sumber