Kami memiliki proyek yang semua orang katakan akan kami lakukan dengan gesit tetapi saya ragu kami telah memahami dengan jelas apa itu gesit.
Dalam proyek-proyek sebelumnya, kami mengadakan pertemuan perencanaan, kemudian menetapkan log produk kembali dan mengalokasikan pekerjaan untuk pengembang dalam sprint 2 hingga 3 minggu. Setiap pagi kami mengadakan rapat scrum (yang tampaknya berlangsung selama 1/2 jam setiap kali) dan setiap pengembang melanjutkannya setelah itu. Hampir tidak ada yang menulis tes apa pun sampai pada akhir sprint dan pekerjaan yang tidak selesai ditambahkan ke sprint berikutnya.
Pengembang hampir tidak berbicara satu sama lain dan tidak ada TDD yang terlibat dalam pengembangan. Bahkan sebagian besar pengembang memiliki spesifikasi di awal dan baru saja menggunakannya selama 2 atau 3 minggu sprint diatur. Nyaris tidak ada komunikasi dengan klien / pemegang pasak.
QA terlibat biasanya beberapa bulan kemudian dan saat itu kami menemukan persyaratan yang hilang yang selanjutnya menambah jumlah pekerjaan yang harus kami lakukan. Jelas tidak ada loop umpan balik.
Jadi pertanyaan saya adalah, di mana kami salah dan bagaimana saya bisa mencegah tim melakukan kesalahan yang sama.
Jawaban:
Apa yang Anda gambarkan bukanlah Agile menurut definisi (Agile Manifesto) melainkan Air Terjun dengan pertemuan status harian. Agile berarti mudah beradaptasi dengan perubahan, jika tidak ada umpan balik interaktif dengan pemilik produk dan dengan demikian pelanggan, lalu perubahan apa yang terjadi?
Agile adalah tentang kegagalan yang cepat, melalui komunikasi yang konstan dengan pemilik produk / pelanggan. Lebih baik gagal lebih cepat daripada nanti, lebih sedikit pekerjaan yang dilakukan, dan lebih sedikit "hilang". Dan Anda tidak terjebak dengan argumen, bahwa "kita tidak punya waktu untuk melakukannya dengan benar, karena kita menghabiskan begitu banyak waktu melakukan kesalahan, kita hanya perlu melanjutkan jalan yang sama, meskipun itu mengarah pada kegagalan ".
Kedengarannya seperti manajemen Anda melakukan "SCRUM, tapi ..." di mana "tapi" adalah di mana mereka membuang semua hal-hal SCRUM yang tidak mereka pahami atau setujui dan hanya melakukan hal-hal dengan cara yang sama seperti air terjun serampangan seperti biasa, tetapi dengan nama kata kunci baru yang mengilap untuk semuanya.
Dalam SCRUM, pendirian harian BUKAN tentang memberikan status kepada manajemen, itu adalah untuk memaksa interaksi pengembang, sehingga Anda tahu apa yang dilakukan oleh sesama anggota tim Anda dan dapat saling membantu dan tidak menduplikasi pekerjaan. Jika dibutuhkan lebih dari 45 detik per orang, Anda salah melakukannya. Ini adalah tentang transparansi untuk tim, jika seseorang memberikan status yang sama beberapa hari untuk sesuatu yang seharusnya bernilai satu hari kerja, tim dapat menyelesaikan masalah orang tersebut lebih cepat daripada nanti.
Jika Anda tidak menguji satu sama lain kode seperti yang tertulis, maka Anda tidak melakukannya dengan benar. Pengujian harus tertanam ke dalam proses bukan setelah pikiran. QA harus dimasukkan dalam sesi perencanaan dan memberikan perkiraan pada berapa lama hal-hal akan dilakukan untuk menguji.
Jika Anda tidak memenuhi komitmen Sprint dan membalikkan keadaan, Anda tidak melakukannya dengan benar. Sprint adalah tentang komitmen jika Anda terlalu banyak melakukan pekerjaan, berhenti melakukan itu, tidak ada cara Anda dapat memperkenalkan prediktabilitas atau pengulangan jika Anda tidak dapat secara akurat berkomitmen pada hasil kerja.
sumber
Jarrod memberikan jawaban yang bagus (+1 untuk itu) dan saya ingin sedikit memperluasnya.
Agile bukan hanya tentang kegagalan yang cepat dan umpan balik antara pemilik produk (pelanggan) dan tim; ini adalah tentang umpan balik cepat antara semua pemangku kepentingan yang terlibat. Menjadi benar-benar gesit (dan ini langsung dari manifesto ) adalah mengakui bahwa proses itu ada hanya untuk membantu pengembang dalam memberikan produk yang lebih baik. Orang-orang di atas proses berarti bahwa begitu tim mengenali proses Anda saat ini tidak berhasil, Anda mengubahnya dan membuatnya bekerja.
"Scrum tapi ..." juga merupakan masalah, tetapi ada dua sisi pada koin ini. Jika Anda melihat manifesto Anda akan melihat bahwa ini tentang tim dan membuat alat / proses bekerja untuk Anda. Tidak ada dua tim yang sama dan karenanya masing-masing akan beroperasi sedikit berbeda dan itu tidak masalah. Anda tentu bisa, mengambil seluruh metodologi Scrum dan mencoba mengikutinya ke surat dan melihat apakah itu bekerja untuk tim Anda.
Alternatif lain adalah alih-alih mendorong proses lain ke dalam tim dan membuat semua orang mengikuti apa yang disarankan Scrum untuk Anda lakukan, cobalah pendekatan gesit : Berkomunikasi dengan tim dan lihat apakah bersama-sama Anda dapat mengidentifikasi area masalah dan solusi untuk masing-masing. Kemudian secara bertahap memperkenalkan perubahan dalam cara Anda bekerja sehingga masalah ditangani.
Mungkin butuh beberapa saat, tapi ...
Jika kita menggambar analogi antara Scrum dan pola desain, bekerja dengan cara yang saya usulkan akan mirip dengan pengkodean menjadi pola, di mana Anda menyimpan kode sesederhana mungkin dan hanya menyatu pada pola desain bila diperlukan. Berbeda dengan hanya memilih pola desain dan menggulungnya (yaitu memilih secara acak Scrum dan semua prosesnya sebagai satu set), yang terkadang membuat kode lebih kompleks dan lebih sulit untuk dipelihara daripada seharusnya.
Kunci untuk memahami adalah lincah bukan tentang datang dengan proses baru untuk melakukan sesuatu; ini tentang perubahan terus menerus dan penyesuaian konstan untuk proses / praktik yang ada.
sumber
jika tim (dan manajemennya) benar-benar ingin "gesit," mereka harus mulai dengan membaca dan berdiskusi sebagai tim Manifesto Agile dan para kepala sekolahnya. Kemudian pilih salah satu metodologi lincah yang telah dibuat ( Scrum , misalnya), dapatkan pelatihan di dalamnya, dan mulai dengan mengikuti itu. Saya akan merekomendasikan mengikuti cukup dekat untuk sementara waktu sebelum memodifikasinya, tapi itu hanya saya.
Mereka juga harus melihat secara mendalam ke dalam Praktek Teknik yang digunakan untuk mendukung metodologi proyek tangkas tertentu yang dipilih.
sumber