Sejak pembaruan, orang-orang terus menelepon dan mengatakan "Sejak pembaruan X, Y dan Z lambat, buruk, dan macet"
Ini telah terjadi sejak awal pembaruan.
Apa yang orang harapkan? Gamma datang setelah versi beta, dan pengujian gamma selalu mengubah pengguna kami menjadi The Incredible Hulks ...
Mungkin Anda belum pernah mendengar ini dari klien, mungkin Anda kuliah atau FLOSS Dev yang dapat menyebarkan kesalahan di lebih dari 5 atau 6 orang, mungkin Anda unit menguji kode Anda, mungkin Anda tidak dalam situasi yang menarik di mana pelanggan benar-benar memanggil Anda meminta waktu yang tepat hari Anda akan merilis patch hari ini (saya ingin melakukannya untuk Microsoft) atau mungkin Anda seorang anak-biskuit menyesal seperti saya yang baru saja mengirimkan yang baru memperbarui dan pulang dan takut akan kembali bekerja besok.
Ngomong-ngomong, kamu akan lebih pintar dariku. Bagaimana kritik lapangan Anda dibingkai dalam "Anda harus menjadi programmer yang buruk karena Anda membuat perangkat lunak Anda lebih buruk"?
sumber
Jawaban:
Jika ini terjadi pada Anda setiap kali Anda menggunakan, mungkin ada kesalahan serius dalam proses pengembangan Anda. Saya akan curiga beberapa hal yang menyebabkan masalah.
sumber
Tetapi kritik semacam itu sebagian besar dibenarkan. Rilis baru seharusnya tidak lebih buruk dari yang sebelumnya, tetapi seperti yang kita tahu, pada kenyataannya sering kali itu, dan itu adalah kesalahan kita karena kita membuatnya.
Membuat kesalahan adalah manusia, dan itu tidak membuat siapa pun menjadi "programmer buruk", jadi jangan menganggap kritik itu pribadi (saya toh tidak akan menganggap kritik profesional dari orang yang bukan kolega dengan serius). Cukup berterima kasih kepada pelanggan karena melaporkan masalah ini, dan perbaiki secepatnya. Ini pekerjaan Anda sebagai programmer yang baik.
sumber
Nah, di tempat kerja kami tidak banyak berinteraksi langsung dengan klien, jadi saya harus menjawab yang ini dari pekerjaan proyek pribadi. Saya sedang menulis mesin gim yang dapat digunakan orang untuk membuat gim mereka sendiri. Itu masih dalam pra-alfa, tapi saya punya beberapa pengguna yang tertarik, dan kadang-kadang saya mendapatkan bug.
Ketika saya mendapatkan laporan seperti ini dari pengguna, saya mencoba menggunakan sentuhan pribadi. Saya tidak bermaksud memperkenalkan bug, dan saya ingin mereka memiliki pengalaman yang baik dengan mesin saya, jadi saya perlu membuat mereka percaya itu. Pertama, dapatkan pegangan IM agar kita bisa bicara. Saya akan bertanya kepada pengguna tentang proyek mereka dan mencoba untuk mendapatkan salinannya. Ini membuat reproduksi jauh lebih mudah. Tanyakan kepada mereka apa yang mereka lakukan ketika kesalahan terjadi. Sementara itu, saya memiliki mesin terbuka di debugger dan saya membahas masalah ini selagi kita berbicara.
Jika itu pengecualian, biasanya cukup sederhana. Reproduksi masalah dan debugger mengambilnya dan membawa Anda langsung ke lokasi kesalahan dengan jejak tumpukan penuh, dan sudah jelas apa yang terjadi. Jika kinerja lambat atau perilaku salah, mungkin butuh sedikit lebih lama. Tetapi dalam kebanyakan kasus saya dapat memiliki perbaikan siap dalam 20 menit pertama, puncak. Saya zip dan mengirimkannya kepada mereka untuk diuji. "Oke, kurasa aku mengerti. Lihat apakah ini berhasil pada akhirnya?"
Responsnya hampir secara universal merupakan campuran dari keheranan dan rasa terima kasih, karena sebagian besar pengembang (baca: perusahaan perangkat lunak) tidak memperbaiki bug dan merilisnya secepat itu. Dan kemudian, jika itu benar-benar diperbaiki, saya telah mengubah seorang kritikus potensial menjadi penggemar. Ini teknik yang sangat bagus; Saya hanya berharap lebih banyak pengembang akan mengadopsinya.
sumber
Saya pribadi menerima masalah secara positif. Saya berinteraksi sepanjang waktu dengan banyak pelanggan, dan saya masih kode juga.
Ketika mereka mengunduh rilis baru dan memberi tahu saya hal seperti itu, saya selalu mengatakan sesuatu seperti ini:
Faktanya, pelanggan adalah bos Anda yang sebenarnya. Jika pengalaman dengan Anda buruk, itu juga buruk bagi Anda.
Sekalipun dia tidak benar, Anda sebagai bagian dari perusahaan, Anda harus mengambil kesempatan ini untuk:
sumber
Detail, Detail, Detail. Saya bertanya apa yang mereka lakukan dan kapan, spesifik. Bisa jadi sesuatu atau mungkin saja video Justin Beaber baru saja dirilis di youtube. File log adalah teman Anda dalam kedua kasus.
Saya juga meminta kencan ketika mereka menyadarinya. Kadang-kadang terutama di toko-toko perusahaan pengguna tidak tahu kapan rilis keluar, mereka hanya tahu bahwa sesuatu membutuhkan waktu lama untuk diselesaikan dan mereka sekarang mengeluh tentang hal itu.
Bayangan Pekerjaan. Tidak bisa cukup menekankan hal ini. Jika Anda cukup beruntung memiliki pengguna di dekat Anda, saksikan saja mereka bekerja dari waktu ke waktu. Saya sering menemukan mereka mengabaikan masalah mencolok dan tidak pernah melaporkannya. Mereka akan sering hanya mengeluh ketika mereka tahu ada sesuatu yang baru atau mereka awalnya melihat ada masalah.
sumber
Langkah 1 adalah Anda harus berasal dari pola pikir bahwa ini (pembaruan merusak hal-hal lain) tidak normal. Pembaruan Anda tidak boleh merusak atau memperlambat bagian lain aplikasi. Itu tidak baik, itu tidak diharapkan, dan itu bukan kesalahan pengguna ketika mereka mengeluh tentang hal itu. Anda harus melakukan pengujian sebanyak mungkin untuk mencegahnya. Ketika itu terjadi, Anda memiliki masalah, dan yang mendesak.
Langkah 2 adalah Anda harus tahu apa yang Anda lakukan. Sistem kontrol sumber Anda mungkin dapat membantu Anda, atau semacam sistem pelacakan kerja, tetapi Anda harus dapat mengatakan begitu Anda mendapatkan salah satu dari keluhan ini "ok, saya menambahkan kolom ke tabel ini, mengubah kisi ini untuk menghitung pajak baru, menambahkan dua laporan baru ... "dan seterusnya.
Langkah 3 adalah Anda harus memiliki pengalaman menemukan masalah perf dan crash dengan cepat, sehingga Anda tahu hal-hal apa yang mungkin menyebabkan mereka, dan dapat segera menyelesaikan masalahnya. Hal ini sudah hidup dan Anda harus menemukan masalah dengan cepat dan mendapatkan tambalan. Mengubah laporan tidak dapat memperlambat bagian dari aplikasi yang tidak menggunakan laporan. Anda berada dalam mode darurat sekarang dan harus mencari tahu di mana kesalahannya dan apa yang harus dilakukan - tanpa melanggar bagian lain dari aplikasi dalam proses.
Langkah 4 adalah untuk masing-masing dari kesengsaraan ini, Anda harus belajar pelajaran yang akan Anda uji untuk waktu berikutnya. Anda akan menjadi "pria itu" yang keberatan dengan konstruksi tertentu karena "itu akan mengerikan ketika ada 10.000 catatan".
Sedikit lagi di bagian depan "ini normal". Saya menjalankan (di antara semua hal lain yang telah kita lakukan) proyek tangkas untuk pelanggan eksternal. Kami telah melakukan rilis kira-kira setiap 6 minggu selama dua atau tiga tahun sekarang. Dan ya, rilis dijadwalkan ke menit. Kami baru melakukan satu jam 8 pagi kemarin. Dan kira-kira setiap rilis ke-4 atau ke-5 (sekali atau dua kali setahun, dengan kata lain) ada sesuatu yang rusak langsung, dan kami segera bertindak dan memperbaikinya secepat mungkin. Meskipun kami menguji dan menguji dan menguji sebelum rilis. Lalu kami memberi tahu mereka apa yang terjadi. "Ada sedikit bug di penyebaran Juni yang membiarkan bidang ini kosong, tapi kami tidak pernah memperhatikan karena kami tidak menggunakan nilai pada waktu itu. Kemudian di penyebaran ini ketika kami mulai menggunakan bidang tersebut, yang kosong disebabkan pesan kesalahan yang Anda lihat. Saya telah memperbaiki bug sehingga mereka tidak bisa kosong, memasukkan nilai dalam catatan buruk, dan mengkonfirmasi bahwa itu tidak meledak lagi. Kami minta maaf. "Atau" Perubahan darurat yang Anda minta, hanya dua hari sebelum rilis, memiliki konsekuensi yang tidak kami pikirkan dan tidak diuji. Ingat mengapa kita menolak perubahan darurat? "Saya mungkin bukan programmer yang buruk karena memperburuk pembaruan, tetapi saya tentu saja melakukan hal buruk. Dan saya harus memperbaikinya. Saya mungkin bukan programmer yang buruk karena memperburuk pembaruan, tetapi saya tentu saja melakukan hal yang buruk. Dan saya harus memperbaikinya. Saya mungkin bukan programmer yang buruk karena memperburuk pembaruan, tetapi saya tentu saja melakukan hal yang buruk. Dan saya harus memperbaikinya.
sumber
Hanya untuk membahas aspek lain:
Kami menyimpan daftar pelanggan yang mengklaim ini ketika ternyata tidak demikian. Meskipun perangkat lunak buggy, seringkali sangat buggy, banyak pelanggan kami akan mengklaim "mulai dengan pembaruan" untuk mendapatkan perhatian segera, tidak menyadari ini akhirnya membuang waktu semua orang karena kami akan berjalan di delta untuk fitur yang ditunjukkan mencari masalah. Jika pelanggan mengatakan yang sebenarnya, ini cenderung membuatnya cepat ditemukan. Jika pelanggan berada di daftar salah terlalu sering kita tidak repot karena kita tidak suka membuang-buang waktu.
Saya tidak bisa membayangkan pola pikir seperti apa yang diperlukan untuk berpikir mengatakan kepada kita bahwa kebohongan akan mempercepat prosesnya. Orang-orang ini adalah atau bekerja dengan dokter dan harus tahu betul apa yang terjadi ketika orang berbohong kepada dokter. Prinsip yang sama berlaku.
sumber