Apakah terlambat memiliki arti dalam metodologi Agile?

10

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.

Jon Hopkins
sumber
2
Apakah Anda bermaksud mengatakan bahwa tenggat waktu tidak dapat ada dalam proyek Agile? Betulkah? Jika ada tenggat waktu untuk proyek dan itu tidak terpenuhi, maka sudah terlambat. Akhir cerita, permainan kata dimaksudkan.
Raja JB
Saya pikir ini adalah pertanyaan yang sangat menarik. Ini memotong langsung ke inti dari apa yang membuat gesit berbeda.
Martin Wickman

Jawaban:

9

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.

Gary Rowe
sumber
Rencana yang solid adalah istilah yang jauh lebih pendek bukan - satu sprint yang mungkin sebagian kecil dari keseluruhan? Dan tidak dapatkah perkiraan untuk sprint di masa depan berubah karena lebih banyak informasi tersedia?
Jon Hopkins
@ Jon Ya dan ya. Saya telah menemukan bahwa perlu memiliki rencana menyeluruh yang berisi garis besar dari apa yang harus dilakukan. Rencana menyeluruh ini sangat membingungkan dalam hal memperkirakan pengiriman pada awalnya karena begitu banyak yang tidak diketahui. Karena semakin banyak dari rencana keseluruhan dipecah menjadi cerita pengguna dan menyelesaikan bagan burndown proyek mengungkapkan kemungkinan pengiriman untuk tanggal tertentu dengan akurasi yang semakin meningkat.
Gary Rowe
6

"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

Steven A. Lowe
sumber
1
+1 "anjing Anda memakan bytecode saya" (harus menggunakannya satu kali) - tapi serius, umpan balik cepat dari kesalahan adalah kunci metodologi tangkas.
Gary Rowe
4

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.

JeffO
sumber
1
Bukti anekdotal bekerja dua arah. Saya telah melihat proyek air terjun bekerja dan pengalaman saya adalah bahwa alasan mereka gagal bukan karena mereka tidak mungkin karena mereka berjalan dengan buruk (pelingkupan dan spesifikasi yang buruk, kontrol perubahan yang buruk atau tidak ada, perkiraan berdasarkan pada apa mereka ingin benar daripada apa yang dikatakan tim proyek akan benar).
Jon Hopkins
4

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.

Dan itulah yang lincah. Cara cerdas untuk mengelola gagasan tidak nyaman ini bahwa keterlambatan adalah fakta dan kita harus menghadapinya dengan sebaik mungkin.

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.

Martin Wickman
sumber
0

Ada dua jenis "terlambat" di Agile SCRUM>

  1. Carryover - Cerita tidak "Selesai" di akhir sprint, pengembang "berkomitmen" untuk menyelesaikan PBI, jadi ketika itu tidak dilakukan, itu bisa dianggap sebagai carry.

  2. Roadmap - Dengan asumsi organisasi Anda memiliki peta jalan dan menganggapnya memiliki tanggal, jika kiriman utama untuk tanggal tersebut terlewatkan, itu dapat dianggap "terlambat".

RandomUs1r
sumber