Dalam sebuah artikel dari HN , saya menemukan saran berikut:
Selalu beri tahu pelanggan / pengguna Anda "ya", bahkan jika Anda tidak yakin. 90% dari waktu, Anda akan menemukan cara untuk melakukannya. 10% dari waktu, Anda akan kembali dan meminta maaf. Harga kecil untuk membayar pertumbuhan pribadi utama
Tapi saya selalu berpikir bahwa seseorang harus melakukan analisis kelayakan sebelum membuat segala jenis janji kepada pelanggan / pengguna, sehingga mereka tidak disesatkan pada titik apa pun. Pada keadaan apa, maka, apakah nasihat di atas berlaku?
Jawaban:
Ini adalah pertanyaan kedua berturut-turut yang dipicu oleh artikel itu.
Pemrogram yang baik: Saya mengoptimalkan kode. Programmer yang lebih baik: Saya menyusun data. Programmer terbaik: Apa bedanya?
Ada nama lain untuk ini: optimasi prematur.
Jangan pernah gunakan pintu keluar awal.
Itulah aturan "titik masuk tunggal / titik keluar tunggal". Ini adalah tambalan atas masalah nyata, yaitu bahwa keluar lebih awal mungkin meninggalkan kekacauan. Aturan yang tepat adalah "bersihkan kekacauan Anda". Aturan yang lebih baik lagi adalah dengan menggunakan konstruksi data yang membersihkan diri mereka sendiri sehingga programmer tidak perlu khawatir tentang membersihkan kekacauan mereka.
Dan sekarang, Selalu beri tahu pelanggan / pengguna Anda "ya", bahkan jika Anda tidak yakin. 90% dari waktu, Anda akan menemukan cara untuk melakukannya.
Ini juga saran yang sangat buruk.
Terkadang pelanggan Anda perlu diberi tahu tidak, atau "di milenium mana Anda menginginkan ini?" Jangan menjanjikan sesuatu yang akan menghancurkan arsitektur Anda, yang akan menelan biaya jauh lebih banyak daripada yang ingin dibelanjakan pelanggan, atau bahwa Anda tidak memiliki petunjuk tentang bagaimana mencapainya. Anda tahu teknologinya, bukan pelanggan. Jika Anda tidak tahu cara melakukannya, jangan katakan Anda bisa melakukannya. Jika Anda tidak yakin, katakan Anda perlu waktu untuk meneliti apakah itu mungkin. Lebih baik jujur, dan itu akan membuat Anda keluar dari masalah.
Pelanggan dengan cepat menjadi mantan pelanggan jika Anda tidak dapat memenuhi janji Anda. Tingkat kegagalan 10% mungkin terdengar kecil, tetapi 10% pelanggan Anda akan fokus. Terkadang mereka menuntut ketika Anda gagal memenuhi apa yang Anda janjikan. Anda benar-benar tidak menginginkan itu. Di lain waktu, memastikan Anda melakukan yang baik dengan janji dapat membuat Anda bangkrut, menjadi gila, atau kehilangan pasangan Anda karena Anda bekerja 18 jam sehari. Anda juga tidak menginginkan itu.
Pikirkan seperti ini: Menurut Anda apa yang akan terjadi pada industri penerbangan jika 90% dari semua pendaratan pesawat berhasil? Apakah Anda pikir akan kembali dan meminta maaf atas 10% yang macet akan memperbaiki apa pun?
sumber
Akan lebih baik untuk mengatakan "Saya pikir itu bisa dilakukan". atau "Aku akan memeriksa dan kembali padamu". Saya pernah mengalami saat saya mengatakan tidak atau menentang sesuatu. Jika pelanggan menginginkan "aplikasi berbasis browser yang berfungsi tanpa pernah terhubung ke internet dan menggunakan umpan balik taktil", itu mungkin. Tetapi itu mahal dan akan lebih bermanfaat untuk mendiskusikan apa kebutuhan sebenarnya.
Pelanggan akan menghormati Anda jika Anda jujur. Dalam saran dalam pertanyaan, orang itu salah 10% dari waktu. Jika saya bekerja dengan seseorang yang secara rutin salah satu dari setiap sepuluh kali, saya tidak akan mempercayainya sama sekali. Itu adalah rekam jejak yang mengerikan.
sumber
Menjanjikan bulan dan mengirimkan batu adalah semacam pendekatan sales-man yang tidak bisa ditoleransi. Jika Anda tidak tahu apakah itu mungkin, lakukan penelitian. Atau, beri mereka penawaran tentang jumlah waktu yang harus Anda ambil untuk melihatnya. Dengan cara ini Anda tidak menjanjikan apa pun yang tidak dapat Anda hasilkan, namun Anda dibayar untuk waktu yang dibutuhkan untuk melihatnya.
sumber
Pertanyaan ini telah dipelajari secara formal dan ditangani oleh IEEE Computer Society / ACM Code of Ethics yang diproduksi bersama .
2.01. Memberikan layanan dalam bidang kompetensi mereka, jujur dan terus terang tentang segala keterbatasan pengalaman dan pendidikan mereka.
3.04. Pastikan bahwa mereka memenuhi syarat untuk proyek apa pun di mana mereka bekerja atau mengusulkan untuk bekerja dengan kombinasi pendidikan dan pelatihan yang sesuai, dan pengalaman.
3.09. Pastikan estimasi kuantitatif realistis mengenai biaya, penjadwalan, personel, kualitas, dan hasil pada setiap proyek tempat mereka bekerja atau melamar pekerjaan dan memberikan penilaian ketidakpastian estimasi ini.
5.0. Pastikan estimasi kuantitatif realistis mengenai biaya, penjadwalan, personel, kualitas dan hasil pada setiap proyek tempat mereka bekerja atau melamar, dan memberikan penilaian ketidakpastian estimasi ini.
Tentu saja ada implikasi bisnis dan hukum tentang menjanjikan sesuatu yang tidak dapat Anda berikan. Biasanya ini datang dari pelanggan yang pergi ke tempat lain, menolak untuk membayar, atau menuntut perusahaan Anda. Jika Anda bermitra dengan orang lain, mereka dapat menuntut ganti rugi jika bagian Anda tidak dikirimkan. Gugatan bahkan dapat datang dari pesaing.
Ada sebuah kisah dari masa-masa awal superkomputer di mana Seymour Cray dan sebuah tim di Control Data Corporation hampir meluncurkan produk, dan perusahaan komputer besar lainnya memberi tahu para pelanggannya bahwa mereka juga akan segera diluncurkan. Kebohongan itu menghabiskan banyak urusan dengan CDC dan berubah menjadi gugatan di mana perusahaan besar itu tidak dapat menunjukkan bukti yang kredibel atas klaim mereka. Hasilnya adalah apa yang pada saat itu penyelesaian besar senilai $ 80 juta dolar tahun 1970 (sekitar $ 223 juta pada tahun 2012, disesuaikan dengan inflasi). Anda dapat membacanya di sini:
http://en.wikipedia.org/wiki/Control_Data_Corporation#CDC_6600:_defining_supercomputing
sumber
Dengan waktu yang cukup, sumber daya dan fleksibilitas di sekitar definisi kesuksesan apa pun mungkin terjadi. Contoh x-mass putih mudah jika Anda hanya menginginkan akurasi lebih dari 50% dan Anda memiliki lokasi geografis pengguna dan sedikit data statistik.
Pertanyaan pertama yang sebenarnya dalam sebagian besar proyek bukanlah apakah sesuatu itu mungkin, tetapi apakah itu wajar mengingat serangkaian keadaan tertentu.
Apakah fitur menambah nilai yang cukup untuk menjamin biaya upaya?
Sekalipun idenya akan sangat luar biasa, jika itu memerlukan periode pengembangan yang panjang atau akuisisi beberapa perangkat keras yang lebih eksotis, akan lebih baik bagi klien untuk mengetahui hal itu terlebih dahulu dan kemudian mengarahkan percakapan kembali ke tujuan yang lebih masuk akal dalam banyak kasus.
Jika seseorang cukup gila untuk memberi Anda cek kosong dan tidak ada tenggat waktu maka dengan segala cara memberi tahu mereka bahwa semuanya mungkin, beri tahu mereka bahwa Anda harus menemukan & mendistribusikan beberapa teknologi yang terlibat dalam mencapai tujuan di sepanjang jalan.
Di sisi lain, ketika berhadapan dengan klien yang masuk akal dengan sumber daya yang masuk akal kadang-kadang tidak ada yang lebih buruk daripada memberi tahu klien beberapa fitur harus dipotong setelah Anda menyetujuinya karena mereka mungkin sudah melarikan diri dan menghabiskan waktu / uang / sumber daya mempromosikan atau mendokumentasikannya dan bahwa 10% mungkin adalah hal yang membuat proyek mendapatkan penerangan sejak awal. Masuk ke dalam situasi itu dan Anda baru saja kehilangan pelanggan, dan kemungkinan besar mendapatkan referensi yang sangat buruk secara verbal di seluruh pasar.
sumber
Bermain sebagai penasihat iblis
Menjadi pola pikir analitis, orang-orang teknis dapat cenderung menganggap bahwa kinerja mereka terutama akan dinilai berdasarkan scorecard dari permintaan yang sudah selesai vs yang dilakukan, tetapi dalam praktiknya, itu tidak memotong dan mengering.
Bahkan sebelum pengembangan dimulai, pelanggan mulai membentuk opini tentang kinerja tim berdasarkan tingkat kepercayaan dan kemauan untuk berkomitmen.
Sebagian alasan untuk ini adalah bahwa pelanggan dapat mengalami kesulitan menilai apakah keraguan kontraktor untuk berkomitmen disebabkan oleh sulitnya permintaan atau kurangnya kemampuan kontraktor.
Karena tidak ada kriteria absolut untuk mengukur kesulitan permintaan, seringkali yang lebih penting bagi pelanggan adalah kepercayaan bahwa kontraktor memberikan upaya 100%, daripada apakah 90% atau 100% dari permintaan dipenuhi.
Misalkan pelanggan harus memilih antara dua skenario:
Kontraktor A :
Kontraktor B :
Dalam kedua skenario, jumlah permintaan yang sama dikirimkan; namun, pelanggan merasa bahwa Kontraktor A yang "terlalu berkomitmen" memberikan upaya 100% dan menggunakannya untuk memvalidasi bahwa permintaan yang tersisa benar-benar sulit, untuk kredit Kontraktor A.
Di sisi lain, pelanggan merasa bahwa Kontraktor B tidak memberikan upaya 100% dan ketidakmampuannya untuk menyelesaikan semua permintaan itu karena kurangnya upaya atau kemampuan Kontraktor B.
Penafian: Saya tidak menganjurkan komitmen berlebihan sebagai strategi; ini hanya sebuah pengamatan dari kemungkinan situasi dunia nyata di mana komitmen berlebihan mungkin memiliki hasil positif.
sumber
Anda harus memberi tahu mereka untuk memberi Anda waktu untuk membuat "solusi spike" .
Solusi spike adalah program kecil yang, dalam mengkodekannya, memungkinkan Anda untuk mengetahui bagaimana melakukannya, atau bahkan apakah itu mungkin, sesuatu yang menciptakan ketidakpastian dalam suatu proyek.
Misalnya, Anda tidak pernah mengirim SMS secara terprogram, tetapi entah bagaimana Anda tahu itu mungkin. Solusi spike adalah membuat program kecil yang mengirim SMS. Dengan begitu, ini bukan lagi ketidakpastian dan Anda dapat membuat estimasi lebih lanjut tentang kelayakan.
Inilah yang dikatakan dokumentasi Pemrograman eXtreme di atasnya:
sumber
Menurut pengalaman saya, ketika pengguna meminta sesuatu, Anda harus meminta mereka untuk spesifikasi rinci tentang apa yang benar-benar diinginkan atau dibutuhkan pengguna. Lebih sering daripada tidak, Anda tidak akan pernah mendengar tentang permintaan itu lagi.
sumber