Salah satu prinsip lincah adalah ...
Kolaborasi pelanggan atas negosiasi kontrak
... yang lain adalah ...
Individu dan interaksi atas proses dan alat
Tapi cara saya melihatnya, paling tidak ketika berinteraksi dengan pelanggan, ada masalah mendasar:
Bagaimana menurut pelanggan berbeda dengan cara berpikir insinyur perangkat lunak
Itu mungkin sedikit generalisasi, ya. Diperdebatkan, ada yang domain bisnis di mana hal ini tidak selalu benar --- ini sedikit dan jauh antara sekalipun. Namun di banyak domain, pelanggan tipikal adalah:
- Tertarik dengan masalah operasional harian - taktik jarak pendek ... belum tentu strategi;
- Maklum, hanya mementingkan solusi langsung;
- Pemikir praktis, bukan pemikir abstrak;
- Jauh lebih tertarik untuk "menyelesaikan pekerjaan" daripada mempertimbangkan bagaimana solusi akan mendukung masalah di masa depan.
Di sisi lain, dalam ideal , insinyur perangkat lunak yang berlatih gesit adalah:
- Orang yang berpikir banyak tentang kualitas;
- Individu yang menghargai bagaimana sedikit pekerjaan dimuka dapat menghemat satu ton upaya di telepon;
- Pemikir analitis yang berpengalaman.
Jadi sepertinya ada perbedaan budaya yang cenderung menghambat "kolaborasi pelanggan".
Apa cara terbaik untuk mengatasi ini?
Jawaban:
Dan jujur saja, mereka biasanya punya alasan bagus untuk berpikir seperti ini. Pertama-tama, mereka menjalankan bisnis, yang seharusnya menghasilkan pendapatan hari ini dan besok, bukan di masa depan yang jauh. Kedua, mereka bukan ahli teknis - mereka tidak tahu apa yang mungkin dan apa yang tidak, dan apa konsekuensi dari pilihan arsitektur / desain / implementasi tertentu. Ini yang kita tahu.
Jadi jawabannya adalah - tidak mengejutkan - komunikasi .
Anda perlu banyak berkomunikasi, untuk saling mendidik, untuk membuat satu sama lain memahami sudut pandang pihak lain setidaknya ke tingkat dasar. Anda perlu menjelaskan konsekuensi jangka pendek dan jangka panjang dari alternatif yang mungkin. Dan Anda perlu menggunakan bahasa yang mereka pahami .
OTOH mereka bisa mengajari kita satu atau dua hal tentang perspektif bisnis. Bisnis menginginkan solusi yang dapat digunakan dan cukup baik - hampir tidak sempurna -. Dan mereka tahu mungkin lebih baik daripada siapa pun bahwa "sempurna adalah musuh kebaikan". Jadi, Anda harus ingat bahwa tugas kami adalah memberikan solusi untuk masalah klien kami, daripada menghasilkan perangkat lunak yang sempurna secara teknis. Terkadang keduanya bertemu dengan yang sama, tetapi lebih sering tidak. Ini mungkin dipandang menyedihkan oleh banyak orang, tetapi ini adalah kenyataan bisnis. Bagi saya, jika saya berhasil memecahkan masalah pelanggan saya, dan saya melihat bahwa itu membuat hidup mereka tampak lebih mudah, saya bahagia seperti mereka. OTOH jika saya berhasil menerapkan desain sempurna yang ada dalam pikiran saya, tetapi perusahaan itu bangkrut pada minggu berikutnya, hampir tidak ada kemenangan bagi siapa pun, bukan?
Seorang pemilik bisnis yang masuk akal akan mengerti - jika Anda menjelaskannya menggunakan bahasa mereka sendiri - mengapa penting untuk menjaga perangkat lunak tetap bersih, untuk menulis unit test, untuk refactor dll. Meskipun ini tampaknya tidak secara langsung berkontribusi apa pun dalam jangka pendek, mereka sangat penting untuk pemeliharaan jangka panjang. Dan pelanggan yang masuk akal peduli dengan pemeliharaan jangka panjang dari bisnis mereka, jadi mereka pasti mau berinvestasi ke dalamnya ketika mereka melihat nilai yang dihasilkan dari investasi mereka. Namun, sumber daya dan waktu Anda terbatas, sehingga Anda perlu memprioritaskan dan fokus pada hal-hal yang paling penting. Tapi itu penting hanya jika itu penting bagi Anda berdua .
Anda mungkin ingin memperbarui modul A karena kode di sana hanya buruk, dan Anda memiliki ide yang luar biasa bagaimana membuat ulang kode menjadi ringkas, elegan dan bersih, menggunakan pola desain yang baru saja Anda baca. Namun, jika modul itu belum disentuh selama bertahun-tahun, dan itu berfungsi dengan baik, Anda kemungkinan besar lebih baik berfokus pada modul B, yang akan diperpanjang minggu depan dengan fitur baru yang sangat penting, dan berisi banyak bug sudah.
sumber
Bagaimana pelanggan Anda memandang diri mereka sendiri:
Di sisi lain, mereka melihat grup Anda sebagai:
Masalah utama Anda tampaknya bukan Anda berdua yang memahami apa yang mereka butuhkan dari pihak lain.
sumber
Yah, pertama dan terpenting, Agile bukan solusi untuk semua masalah yang Anda miliki di proyek Anda.
Iya. Terkadang itu benar. Bahkan ada kasus di mana pelanggan tidak tahu apa dan bagaimana yang mereka inginkan (yaitu; persyaratan tidak jelas). Apa pun, Jika Anda gesit, Anda mendapatkan hasilnya setelah setiap sprint (katakanlah 2 minggu) dan Anda mendapatkan kesempatan untuk mendapatkan umpan balik pelanggan dan memastikan semua berada di halaman yang sama. Ini membantu dalam mengidentifikasi dan memperbaiki masalah awal yang secara internal akan membantu membangun kepercayaan.
Ada juga yang mengatakan, pengguna seperti anak-anak gila, jadi ketika mereka meminta pistol dan Anda tahu itu tidak aman, Anda mungkin mempertimbangkan untuk memberikan pistol mainan untuk menenangkan mereka .
Seperti yang telah saya katakan, tidak ada tongkat ajaib yang dapat menyelesaikan semua masalah tesis ini . Anda perlu lebih terlibat dengan pelanggan Anda sehingga ada pemahaman yang baik tentang apa yang masing-masing lakukan. Promosikan kunjungan situs, buka umpan balik dll.
Pastikan pemilik produk Anda dan pemegang pasak menghadiri demo sprint dan memberikan saran yang berharga untuk meningkatkan produk .
sumber
Jika Anda tidak menerima dari pelanggan, Agile bisa menjadi hampir mustahil.
Dengan membeli, maksud saya mendapatkan persentase yang dijamin dari waktu perwakilan pelanggan per minggu atau bulan. Persentase ini akan bervariasi tergantung pada proyek.
Jelas mereka memiliki pekerjaan harian mereka, jadi mereka tidak hanya bergantung pada perwakilan pelanggan, tetapi juga manajemen mereka yang menyediakan waktu untuk mereka.
Jadi mendapatkan persetujuan dari manajemen di sisi pelanggan adalah kunci untuk masalah ini
sumber
Ingatlah bahwa lincah tidak berarti bahwa pelanggan terlibat dalam standup harian atau beberapa aspek lincah sehari-hari lainnya. Agile, dari perspektif pelanggan, adalah tentang komunikasi. Itu tidak berarti mereka berkomunikasi dengan para insinyur tentang detail implementasi.
Pelanggan berkolaborasi dengan pemilik produk untuk mendapatkan dan memberikan umpan balik yang konstan. Topiknya adalah fitur, tetapi bukan bagaimana implementasinya. Apakah Anda memberikan fitur yang tepat? Apakah Anda sesuai jadwal? Apakah mereka memiliki persyaratan yang berubah yang perlu Anda adaptasi?
Agile membantu Anda dan pelanggan Anda menjawab pertanyaan-pertanyaan itu.
sumber