Di toko kami, kami berusaha untuk gesit. Dan saya katakan kita membuat langkah besar. Yang mengatakan, beberapa dari kita telah melihat pola kita sudah mulai memanggil "Pembangunan Gagal Didorong".
Kegagalan Didorong Pengembangan pada dasarnya dapat digambarkan sebagai siklus rilis / iterasi tangkas di mana bug / fitur dipandu bukan oleh tugas dan cerita dengan kriteria penerimaan, tetapi dengan cacat dimasukkan dalam perangkat lunak pelacakan cacat.
Tim kami memiliki Manajer Proyek hebat yang berusaha untuk mendapatkan kriteria penerimaan dari pelanggan, tetapi itu tidak selalu memungkinkan. Dari kursi pengembangan saya, ini disebabkan oleh pelanggan yang tidak tahu persis apa yang mereka inginkan atau (dan ini adalah penendang) dua "kamp" yang berbeda pada konflik kantor utama pelanggan dengan bagaimana sebuah cerita harus dilaksanakan. Camp A akan secara longgar menentukan bahwa Fitur X berfungsi seperti ini , maka Camp B akan gagal karena tidak berfungsi seperti itu . Karenanya, istilah "FDD". Proses ini didorong oleh "kegagalan".
Ini mengarah ke pertanyaan saya: Apakah ada orang lain yang menemukan ini dan jika demikian, ada tips / saran untuk menghadapinya?
Kami, tentu saja, telah mencoba membuat Camp A dan B disetujui sebelumnya, tetapi semua orang tahu ini tidak selalu terjadi.
Terima kasih
sumber
Salah satu alasan utama untuk menggunakan iteratif pengembangan adalah karena Anda memiliki grup pelanggan yang tidak memiliki gagasan yang baik tentang apa yang diinginkannya.
Ini bukan kegagalan. Banyak pelanggan tidak memiliki gagasan tentang apa yang mereka butuhkan sampai mereka mendapatkan sesuatu di tangan mereka. Inilah sebabnya mengapa mereka pertama kali pelanggan melihat sistem tidak boleh setelah semua kesesuaian dan penyelesaian telah dilakukan. Biarkan mereka melihatnya lebih awal dan sering.
Dengan kata lain, jika itu adalah satu-satunya masalah, tidak perlu panik kecuali Anda berakhir dalam situasi di mana Anda hanya perlu mencoba ulang tanpa akhir.
Masalah ketidaksepakatan di antara tubuh pelanggan adalah masalah Product Manager yang seharusnya tidak bocor ke Anda. Yang paling harus Anda lihat adalah jaminan simpanan / tugas / apa pun. Tentu saja, PM akan sering curhat dalam berbagai pengembangan karena itulah satu-satunya tempat mereka bisa, tetapi seharusnya tidak mempengaruhi Anda.
Cara pengelolaannya akan sangat tergantung pada siapa Camp A dan Camp B berada.
Jika Camp A dan Camp B mewakili dua petinggi, maka bawa seseorang yang benar-benar akan menggunakan sistem untuk memberi tahu Anda apa yang Anda butuhkan. Terkadang Anda mendapatkan udara yang langka di lahan pengelolaan yang menyebabkan terputusnya kenyataan. Seseorang yang aktif sering dapat memotong idealisme dan menunjukkan apa yang sebenarnya dibutuhkan.
Di sisi lain, jika A dan B adalah kelompok pengguna, Anda menggunakan taktik yang berlawanan untuk mendapatkan seseorang dari manajemen untuk menetapkan hukum.
Dalam semua kasus, kesempurnaan adalah musuh yang cukup baik.
sumber
Apa yang Anda gambarkan adalah implementasi Agile yang salah. Anda tidak menerima perubahan, Anda adalah budaknya .
Apakah Anda memiliki pemilik produk? Bisakah Anda berbicara dengan mereka sesuai kebutuhan? Apakah Anda melakukan tinjauan sprint dengan pengguna? Apakah pengguna terlibat dalam proses (melalui pemilik produk) dalam perencanaan sprint? Apakah Anda memiliki penguji di tim utama?
Saya sangat menyarankan agar Anda menyewa pelatih Agile dan / atau mengirim tim Anda ke pelatihan.
Solusi lain adalah berhenti melakukan Agile.
sumber
Jika mereka ping-ponging (A mengatakan do x, B menolak, mengatakan y, maka A menolak dan kembali ke x), maka lead Anda (PO atau apa pun yang Anda punya) perlu menghajar mereka untuk mengambil keputusan. .
Tidak apa-apa jika langkah pertama berakhir tidak memenuhi kebutuhan mereka (intinya adalah memberi mereka sesuatu untuk dilihat), tetapi jika mereka duduk di sana dan berayun bolak-balik pada iterasi berikutnya Anda tidak akan pernah selesai.
sumber
Masalahnya di sini sepertinya bukan "Aku akan tahu kapan aku melihatnya". Wireframes dapat membantu (sampai titik tertentu) dengan masalah khusus itu.
Masalahnya di sini adalah, menurut saya, dua faksi yang bersaing dalam klien Anda. Idealnya, kamp A dan B akan datang dengan beberapa visi bersama yang dinegosiasikan yang dapat mereka berikan kepada Anda.
Mungkin mereka mungkin dipaksa ke meja dengan Anda menjelaskan berapa biaya dalam pertempuran saat Anda kembali mengulangi apa yang diminta A untuk B (atau sebaliknya).
Menyimpan catatan terperinci tentang pengeluaran waktu Anda akan membantu di sini. (Pekerjaan saya menulis aplikasi pengaturan waktu yang ringan: mudah digunakan, dan mudah untuk melaporkan, dan melaporkan waktu dalam potongan 15 menit. Mudah untuk mengatakan "Saya menghabiskan n jam di fitur X.")
Ini berarti Anda berisiko sedikit mengecewakan klien atau terlihat buruk apa pun yang Anda lakukan, karena apa yang Anda lakukan untuk B mungkin mengecewakan A (atau, sekali lagi, sebaliknya).
Semoga Anda dapat menemukan seorang juara di klien yang dapat mengurus pertikaian untuk Anda.
sumber
Seperti yang saya lihat, masalahnya hanya dapat diselesaikan secara efektif di satu tempat, di tempat pelanggan, yang akan menjadi sulit.
Anda menyebutkan bahwa Anda berjuang untuk gesit, jadi saya akan mengambilnya dari perspektif scrum, yang merupakan proses tangkas yang saya tahu paling baik.
Menurut scrum, Anda memiliki peran spesifik, pemilik produk, yang bertanggung jawab untuk memprioritaskan cerita pengguna / bug / rilis, dll. Ini idealnya hanya satu orang. Jika ada banyak pihak yang berkepentingan dengan pandangan berbeda tentang perangkat lunak yang sama, merupakan tanggung jawab pemilik produk bahwa produk tersebut memuaskan semua pihak yang berkepentingan.
Kedengarannya bagi saya bahwa manajer proyek Anda memiliki peran ini. Tetapi karena dia disebut manajer proyek, dan bukan pemilik produk, saya dituntun untuk percaya bahwa dia dibebani dengan tugas-tugas lain juga (tradisional, tidak tangkas, tugas manajemen?), Dan tidak punya cukup waktu untuk mengejar peran pemilik produk.
Jadi saya percaya bahwa Anda memerlukan satu orang dengan tanggung jawab mengoordinasikan kebutuhan antara tim yang berbeda di pelanggan, memastikan bahwa persyaratan / kisah pengguna yang disampaikan kepada pengembang telah diverifikasi oleh kedua tim di pelanggan. Mengejar peran ini dapat dengan mudah menjadi pekerjaan penuh waktu, terutama dengan pelanggan yang Anda miliki.
Apa yang benar-benar ideal adalah memindahkan tanggung jawab ini kepada pelanggan, agar salah satu karyawan pelanggan Anda memiliki peran sebagai pemilik produk. Selama pelanggan tidak memiliki peran ini, pelanggan tidak berkomitmen untuk menyelesaikan pertikaian internal mereka sendiri, dan mereka menyerahkan kepada Anda untuk menyelesaikannya, yang kemungkinan besar tidak akan mampu Anda lakukan. Dan itulah sebabnya saya percaya bahwa satu-satunya solusi yang efektif adalah memberi pelanggan tanggung jawab ini.
Tetapi mengingat fakta bahwa Anda sudah memulai kolaborasi, saya yakin Anda akan kesulitan mengimplementasikan perubahan itu.
sumber
Agar perangkat lunak Anda diterima oleh pelanggan Anda harus memenuhi persyaratan yang ditetapkan oleh pelanggan sesuai dengan kriteria penerimaan.
Anda memang memiliki seperangkat persyaratan pengguna dalam bentuk cerita dan kriteria penerimaan, tetapi bagian dari organisasi pelanggan memiliki interpretasi yang berbeda dari cerita pengguna, yang mengarah pada ambiguitas.
Anda dapat keluar dari situasi ini dengan menjelaskan desain fungsional dan aturan bisnis yang diterapkan dan membuatnya ditandatangani oleh pelanggan. Ini akan menjadi apa yang diuji terhadap selama penerimaan. Ini harus disetujui sebelumnya oleh pelanggan untuk mencegah diskusi tentang arti semua dokumentasi sesudahnya.
Selama grup Anda tidak dapat menggambarkan perangkat lunak yang Anda buat sedemikian rupa sehingga kedua kelompok menyetujuinya, Anda masih dalam tahap analisis persyaratan proyek.
Manajer proyek Anda dapat / harus menawarkan konsultasi berbayar sebagai bagian dari proyek untuk menyelesaikan ambiguitas dalam persyaratan fungsional.
sumber
Saya pikir kita semua telah melihat kasus di mana kita mendapatkan persyaratan terperinci dari pengguna, mengimplementasikannya, lalu mendengar dari pengguna "Tunggu, itu tidak akan bekerja untuk saya" setelah diterapkan.
Satu hal yang akan membantu adalah melakukan bentuk QA pada persyaratan dengan memberikan contoh rinci kepada pengguna dengan perilaku sistem yang diharapkan. Misalnya, Anda mungkin berkata: "Ini contoh kasus. Jika kita menerapkan X, maka Y akan menjadi hasilnya, dan Z salah satu konsekuensinya." Dengan begitu, Anda bisa masuk ke "Tunggu, itu tidak akan berhasil" sebelum Anda menulis kode alih-alih setelahnya.
sumber