Bagaimana Anda merespons: "Sejak pembaruan ..." pertanyaan dari klien? [Tutup]

19

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"?

Peter Turner
sumber
1
Itu selalu terjadi pada saya setiap kali kami melakukan sprint ke PROD
Gopi
1
Memiliki profil ringan yang selalu aktif dapat membantu (sebagai bagian dari strategi yang lebih besar). "Itu lucu; data menunjukkan halaman tersebut dihasilkan 5% lebih cepat sekarang. Bagian mana yang terasa lambat? Mungkin kita bisa melakukan sesuatu tentang hal itu ..."
1
Pertanyaannya adalah apakah X, Y dan Z benar-benar lebih buruk daripada sebelumnya, atau jika ada beberapa faktor lain di luar kendali Anda di tempat kerja.
Gerry
"Anda harus menjadi programmer yang buruk karena Anda membuat perangkat lunak Anda lebih buruk"? ... po9ssibly ... di beberapa daerah ... karena kesalahan .. dalam proses membuatnya jauh lebih baik di daerah berikut ...
Mawg mengatakan mengembalikan Monica

Jawaban:

16

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.

  1. Apakah Anda mengembangkan terhadap database yang ukurannya sama (kira-kira) dengan produksi? Jika tidak, maka Anda akan selalu memiliki masalah ini karena pertanyaan yang bagus dengan kumpulan data kecil seringkali anjing dengan yang besar.
  2. Apakah Anda memuat tes dalam QA? Apa yang berfungsi baik dengan pengujian satu pengguna sangat berbeda dari bagaimana hal-hal akan merespons dengan 1000 pengguna yang mencoba melakukan hal-hal pada saat yang sama.
  3. Apakah Anda menganggap persepsi pengguna salah dan memperlakukan mereka seolah-olah mereka bodoh karena mengeluh? Jika demikian, maka sikap Anda menyebabkan lebih banyak keluhan tidak mengurangi mereka.
  4. Apakah Anda melakukan pekerjaan pengujian dengan baik? Apakah Anda fitur uji regresi tidak berubah untuk melihat apakah mereka dipengaruhi oleh perubahan? Apakah Anda peduli berapa lama sampai barang itu mengenai prod?
  5. Apakah Anda memperhatikan kapan waktu yang tepat bagi pengguna ketika Anda menggunakan atau apakah Anda dengan gembira menyebarkan perubahan ke sistem akuntansi saat penggajian hari dijalankan dan bertanya-tanya mengapa pengguna marah pada perlambatan?
  6. Apakah Anda memiliki perbedaan lingkungan antara dev dan prod. Kadang-kadang perbedaan sial dalam sistem operasi atau versi database akan menyebabkan masalah seperti ini juga. Sering kali ide yang baik untuk memiliki enviromnet pementasan yang persis seperti prod, beberapa peralatan sistem operasi yang sama, database yang sama dengan dat yang sedekat mungkin dengan data prod. Ini digunakan untuk menguji penyebaran Anda. Jalankan terlebih dahulu di server ini dan mintalah beberapa pengguna atau penguji pergi ke sana dan menjalankan beberapa tes.
  7. Seberapa baik proses penyebaran Anda, apakah Anda sering ketinggalan langkah? Apakah bisa dijalankan oleh orang lain selain dari pengembang karena jelas kode apa yang ada di cabang yang Anda gunakan? Kami mendapat jauh lebih baik dalam menyebarkan kode ketika kami punya tim manajemen konfigurasi dan tidak ada yang punya hak untuk duduk dengan prod dan menjaga itu membuat perubahan "oopsi". Mengotomasi bangunan Anda dapat sangat membantu. Tidak ada yang bisa menebak apa yang harus pergi ke prod karena harus pergi ke QA dan melakukan pementasan terlebih dahulu dan masalah deplyment berhasil. Perubahan basis data skrip juga penting. Mereka harus dalam skrip dan kontrol sumber, sehingga proses pembangunan dapat mengambilnya tanpa seseorang harus ingat, oh yeah, kita perlu mengubah panjangnya pada Kolom B menjadi 241 dari 50.
HLGEM
sumber
Poin bagus: 1. Ya, 2. Kadang-kadang, 3. Lulus, 4. N / A, 5. Tidak jika kami bisa membantu. Saya punya pertanyaan untuk Anda, tetapi saya mungkin memikirkannya dan mengirimkannya nanti.
Peter Turner
6. Kadang-kadang, tetapi itu adalah bug yang sah yang biasanya disebabkan oleh sesuatu di pembaruan lama yang belum dijalankan.
Peter Turner
7. Ya, itu masalah besar - tidak ada yang menggunakan makefile yang saya tulis kecuali itu benar-benar diperlukan dan ini adalah penyebab 60% dari kesengsaraan kita. (PS Saya akan menandai ini sebagai benar jika Anda memformatnya lebih baik)
Peter Turner
Ini adalah jawaban yang bagus untuk "Apa yang harus saya lihat untuk mencegah rilis dari melanggar UX?" tapi saya tidak yakin mengapa @PeterTurner diterima karena ini tidak menjawab pertanyaan yang sebenarnya.
Lilienthal
13

Bagaimana kritik lapangan Anda dibingkai dalam "Anda harus menjadi programmer yang buruk karena Anda membuat perangkat lunak Anda lebih buruk"?

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.

Joonas Pulakka
sumber
9

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.

Mason Wheeler
sumber
1
Ya, mereka kagum. Saya bekerja dengan banyak perawat yang masuk ke forum PHPBB kami dan menggunakan emoticon 'Bang's head to the wall', lalu akhirnya berpikir kami adalah barang yang cukup panas setelah kami mentransfer DLL atau menjalankan kueri SQL dan sistem mereka bekerja lagi dan mereka bahkan tidak perlu keluar.
Peter Turner
6

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:

Terima kasih telah melaporkan saya bug itu. Mungkin sudah diperkenalkan bersama semua fitur baru yang kita tambahkan. Kami akan memperbaikinya secepatnya.

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:

  • belajar darinya, dengan mengumpulkan potensi perbaikan yang dapat Anda lakukan pada produk.
  • mengubah pelanggan yang tidak bahagia menjadi pelanggan yang bahagia, sangat senang bahwa dia akan berbicara tentang Anda sekitar (termasuk bos Anda)
  • bangga dengan apa yang Anda lakukan

sumber
1
"mengkonversi dari pelanggan yang tidak bahagia menjadi pelanggan yang tidak bahagia"? Saya tidak ingin melakukan itu.
Lie Ryan
4

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.

Bill Leeper
sumber
3

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.

Kate Gregory
sumber
0

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.

Joshua
sumber
1
Aspek yang sebenarnya, kecuali saya pikir mereka tidak berbohong. Mereka baru saja menyadarinya setelah pembaruan (untuk alasan psikologis apa pun), dan kemudian beralih ke kesimpulan - pengguna benar-benar ahli dalam hal ini :-)
Martin Ba