Ini keluar dari beberapa jawaban dan komentar pada pertanyaan lain (yang ini ).
Saya telah bekerja terutama dengan proyek air terjun dan sementara saya telah bekerja pada proyek ad-hoc yang telah mengambil perilaku lincah dan telah membaca sedikit tentang agile, saya akan mengatakan saya tidak pernah bekerja pada proyek agile yang "tepat" .
Pertanyaan saya adalah apakah konsep "terlambat" memiliki makna lincah, jika demikian lalu apa?
Alasan saya adalah bahwa dengan gesit Anda tidak memiliki rencana awal dan Anda tidak memiliki persyaratan rinci sejak awal. Anda mungkin memiliki tujuan tingkat tinggi dalam pikiran dan tanggal nosional yang melekat padanya tetapi keduanya dapat berubah (berpotensi besar-besaran) dan tidak ada yang pasti.
Jadi, jika Anda tidak tahu persis apa yang akan Anda kirim pada dasarnya sampai Anda mengirimkannya dan pengguna menerimanya, dan jika Anda tidak memiliki jadwal di luar sprint berikutnya, bagaimana Anda bisa terlambat dengan cara apa pun yang sebenarnya punya arti?
(Jelas saya mengerti bahwa sprint mungkin dibanjiri tapi saya bicarakan lebih dari itu.)
Hanya untuk memperjelas saya (secara pribadi) senang dengan asumsi bahwa pada waktu proyek air terjun (bahkan yang relatif besar) dimungkinkan berdasarkan fakta saya telah melihat mereka dan terlibat di dalamnya - mereka tidak mudah atau umum bahkan tetapi mereka mungkin.
Ini bukan tentang mengetuk tangkas, ini tentang saya memahaminya. Saya selalu melihat manfaat gesit sebagai tidak ada hubungannya dengan tenggat waktu atau anggaran (atau lebih tepatnya hanya secara tidak langsung), itu berkaitan dengan ruang lingkup - tangkas memberikan lebih dekat dengan apa yang benar-benar penting daripada apa yang tim proyek anggap penting sebelum mereka ' Saya telah melihat sesuatu.
sumber
Jawaban:
Saya tidak setuju bahwa proyek Agile tidak memiliki rencana awal.
Pengalaman saya adalah bahwa analis bisnis telah menghabiskan cukup banyak waktu untuk bekerja dalam rapat desain dengan pelanggan dan pengembang untuk menghasilkan daftar terperinci persyaratan yang dapat dicapai yang disajikan sebagai cerita pengguna. Ini kemudian dipecah menjadi tugas dengan estimasi yang sesuai dilampirkan oleh pengembang berpengalaman.
Setelah tugas yang paling penting telah diidentifikasi pada awal sprint / iterasi maka pengkodean dapat dimulai. Proses pemilihan ini menentukan arti iterasi dalam keseluruhan proyek ("Kami sedang membangun proses login"). Berbagai anggota tim melanjutkan berbagai tugas yang diperlukan untuk mewujudkan kisah pengguna itu.
Pada akhir iterasi, semua cerita pengguna untuk iterasi harus lengkap, atau Anda terlambat . Sama, pengembangan harus dapat berhenti pada akhir setiap iterasi dan produk yang dirilis. Mungkin tidak lengkap dalam hal semua cerita pengguna, tetapi cerita pengguna yang diminta dalam iterasi lengkap dan produk dapat bekerja sampai batas itu.
sumber
"terlambat" dalam metodologi tangkas berarti hal yang sama artinya dalam metodologi air terjun: perkiraannya salah, cakupannya terlalu besar untuk waktu yang ditentukan, kesulitan yang tidak terduga muncul, pelanggan tidak cukup responsif, pemrogram menjadi malas, mesin jatuh, anjing Anda memakan bytecode saya, dll.
Anda belajar darinya dan menyesuaikan untuk iterasi berikutnya
perbedaannya adalah ini bisa terjadi setiap 2-4 minggu, sehingga pelajaran bisa dipelajari dan prosesnya disesuaikan dengan cepat
sumber
Ya, tapi itu hanya akan memakan waktu 1 bulan untuk mengetahui Anda tidak akan mencapai tanggal jatuh tempo proyek 9 bulan mitos-final-bukan-9.
Alasan Anda didasarkan pada asumsi bahwa rencana awal dan persyaratan terperinci untuk proyek besar dimungkinkan. Tidak yakin ada banyak bukti untuk mendukung itu. Mungkin semua cerita horor hanya anekdotal? Setiap pengembang akan senang bekerja dengan spesifikasi lengkap dan tidak pernah berubah yang sepenuhnya disetujui dan dipahami oleh klien.
sumber
Setiap kali Anda membuat semacam komitmen, Anda berisiko terlambat. Itu berlaku untuk gesit juga.
Tapi kami tahu Anda tidak dapat memprediksi masa depan, dan kami tahu pelanggan akan terus berubah pikiran, dan kami setuju itu adalah hal yang baik. Jika kita menerima itu, kita juga harus menerima bahwa semua komitmen hampir selalu salah, yang, pada gilirannya, membuat pertanyaan tentang keterlambatan mudah dijawab: Kita selalu salah (awal atau terlambat). Ini semua masalah tebakan, tidak peduli seberapa baik dipoles. Lempar koin.
Ini adalah sesuatu yang kita sebagai pengembang harus menerimanya, dan dari sudut pandang itu cobalah mencari cara lain untuk bekerja, cara di mana masalah keterlambatan dibuat menjadi kurang penting. Perubahan perspektif. Saya pikir cara untuk melakukan itu adalah fokus pada pengiriman perangkat lunak yang bekerja sesegera mungkin, dengan opsi berhenti ketika pelanggan puas.
Misalnya, Anda terlambat ketika Anda gagal memenuhi komitmen yang Anda lakukan di awal iterasi saat ini. Ini diharapkan dan Anda harus belajar dari ini dan menyesuaikan proses Anda sehingga Anda cenderung gagal dalam iterasi berikutnya. Cara terbaik untuk menangani ini adalah menjaga iterasi sekecil mungkin.
Untuk perencanaan multi iterasi, alias perencanaan rilis, Anda menggunakan kecepatan yang dihitung dari iterasi yang selesai dan mengekstrapolasi data untuk memprediksi tanggal rilis di masa mendatang. Saya merekomendasikan artikel James Shores atau artikel saya sendiri (lebih pendek) untuk detail lebih lanjut tentang ini. Perhatikan bahwa ini tidak pernah merupakan komitmen yang solid dan lebih dari "kami 80% yakin bahwa kami akan menyelesaikan fitur berikutnya pada tanggal itu". Ini bisa (semacam) mengakibatkan Anda terlambat, tetapi komitmen itu hanya probabilitas, bukan fakta.
Sekarang par ini dengan janji dasar tangkas bahwa Anda harus selalu siap untuk merilis perangkat lunak yang berfungsi, fitur lengkap atau tidak. Ini memberi pelanggan kebebasan untuk menghentikan pengembangan ketika ia berpikir sistemnya cukup baik, yang bisa terjadi jauh lebih cepat daripada yang diperkirakan. Ini juga mendorong mengambil proyek ke arah baru berdasarkan umpan balik nyata dari iterasi terbaru.
Poin-poin di atas harus lebih dari cukup bagi pelanggan mana pun untuk memiliki kontrol penuh terhadap pengembangan, dan saya harap itu menjawab pertanyaan tentang keterlambatan dalam metode gesit.
sumber
Ada dua jenis "terlambat" di Agile SCRUM>
Carryover - Cerita tidak "Selesai" di akhir sprint, pengembang "berkomitmen" untuk menyelesaikan PBI, jadi ketika itu tidak dilakukan, itu bisa dianggap sebagai carry.
Roadmap - Dengan asumsi organisasi Anda memiliki peta jalan dan menganggapnya memiliki tanggal, jika kiriman utama untuk tanggal tersebut terlewatkan, itu dapat dianggap "terlambat".
sumber