Saya bekerja di perusahaan berukuran sedang tetapi dengan kekuatan IT yang sangat kecil.
Tahun lalu (2011), saya menulis sebuah aplikasi yang sangat populer dengan sekelompok besar pengguna akhir. Kami mencapai tenggat waktu pada akhir tahun lalu dan beberapa fungsi (saya akan memanggil funcA mulai sekarang) tidak ditambahkan ke dalam aplikasi yang diinginkan pada akhir. Jadi, aplikasi ini sudah berjalan di live / produksi sejak akhir 2011, saya dapat menambahkan tanpa masalah.
Kemarin, seluruh kelompok pengguna akhir mulai mengeluh bahwa fungsi yang tidak pernah ada dalam aplikasi tidak lagi berfungsi. Prioritas kami di perusahaan ini adalah bahwa jika aplikasi rusak, itu harus diperbaiki terlebih dahulu sebelum proyek diprioritaskan.
Saya telah membandingkan kode dan kueri dan tidak ada perbedaan sejak 2011, yang merupakan proofA. Saya kemudian bisa mendapatkan salah satu pengguna akhir untuk mengakui bahwa itu tidak pernah bekerja proofB, tetapi sejak itu pengguna akhir telah kembali dan mengatakan bahwa itu bekerja sebelumnya ... Saya percaya gerombolan pengguna akhir telah berasimilasi nya. Saya juga telah meninjau catatan saya untuk proyek ini yang memiliki persyaratan dan pembaruan harian mengenai proyek yang secara khusus menyatakan, "fungsi tidak tercapai karena keterbatasan waktu", proofC.
Saya telah berbicara dengan banyak dari mereka dan saya dapat melihat di mana mereka bisa bingung karena mereka sangat jauh dari latar belakang pemrograman, tetapi saya juga tahu mereka cukup pintar untuk bertindak dalam suatu kelompok untuk mem-bypass pesanan prioritas proyek untuk mendapatkan fungsi yang mereka inginkan untuk membuat pekerjaan mereka lebih mudah.
Bagian terburuknya adalah bahwa sekarang grup think sudah siap dan bos saya serta kepala TI mulai mempercayai mereka, meskipun tidak ada perubahan kode atau kueri. Sejauh meninjau keadaan logika itu sangat dipotong dan kering ke titik jika 1 = 1, funcA tidak akan berfungsi.
Jadi, ini adalah akhir dari uraian skenario saya, tetapi saya mencoba untuk tidak mendapatkan sedikit metrik kinerja saya karena ini yang pada dasarnya akan membuat saya pindah untuk memperbaiki masalah produksi yang tidak ada yang mungkin akan mengambil alih 1 bulan.
sumber
Jawaban:
Perselisihan tentang fakta yang mudah diamati sebenarnya cukup mudah diselesaikan: cukup amati fakta. Jika saya mengatakan "ada pohon dengan kayu ungu di luar rumah saya," siapa pun yang bisa datang ke rumah saya dapat memverifikasi kebenaran atau kepalsuan pernyataan saya untuk diri mereka sendiri.
Jika mereka mengeluh bahwa FuncA dulu ada di produk dan digunakan untuk bekerja di versi sebelumnya dan sekarang tidak berfungsi, dan Anda tidak berpikir itu pernah ada dalam produk, minta mereka untuk membuktikannya. (Atau, dengan kata-kata yang lebih lembut, ucapkan sesuatu seperti "kita kesulitan mereproduksi masalah. Bisakah Anda membantu kami di sini?")
Beri mereka salinan versi sebelumnya jika mereka belum memilikinya, dan dapatkan mereka di LiveMeeting, dan minta mereka menunjukkan kepada Anda bagaimana mereka dulu menggunakan FuncA. Jika mereka tidak dapat melakukannya, maka (semoga) mereka menyadari bahwa itu tidak ada di sana setelah semua dan keluar dari kasus Anda tentang hal itu, atau setidaknya mencoba taktik yang berbeda untuk menerapkannya. (Dan pastikan untuk mendapatkan seseorang dari manajemen atau PM di LiveMeeting.)
sumber
Ini bukan masalah yang bisa diatasi dengan fakta - jika Anda mencoba, Anda akan kehilangan kredibilitas.
Pertama, terima bahwa perangkat lunaknya "rusak" - karena tidak melakukan apa yang diinginkan pengguna. Sekarang, terimalah bahwa pengguna memiliki hak untuk membuat perangkat lunak melakukan apa yang mereka inginkan - itulah sebabnya perangkat lunak itu. Jadi yang kita miliki adalah perangkat lunak yang rusak dan seorang insinyur menolak untuk memperbaikinya .....
Akibatnya jika sistem yang Anda jalankan untuk menetapkan prioritas, pengguna ini tidak dapat memperbaiki perangkat lunak mereka dengan melalui saluran normal, sehingga mereka menggunakan saluran samping dan meningkatkan setengah kebenaran di rantai makanan untuk mencoba keluar dari manuver sistem, di waktu yang bersamaan, membuat KPI Anda terlihat buruk (perhatian utama Anda haruslah pelanggan, bukan KPI Anda) - KPI Anda dianggap "kerusakan jaminan" jika mereka menyukai Anda, atau efek samping yang menguntungkan jika mereka tidak. Namun, mereka memiliki kontrol atas berapa banyak yang terjadi - paling mereka suka Anda.
Jadi yang terjadi adalah sistemnya rusak, dan semua orang berusaha memanipulasi sesuatu untuk mendapatkan apa yang mereka inginkan. Mereka menginginkan fitur, dan Anda ingin menjaga KPI bersih Anda.
Kecuali Anda dapat memperbaiki sistem atau belajar bermain politik kantor dengan sangat cepat, permainan berakhir: Anda kalah.
Catatan: Tidak ada satu pun dari diskusi ini yang melibatkan Dead line, bug vs feature feature, siapa yang membayar, dll. Ini Fakta - dan fakta tidak penting (well, mereka memang melakukan, tetapi mereka dapat dimanipulasi dengan banyak cara .... ) dalam politik kantor.
sumber
Secara organisasi, saya merasakan masalah.
Ada hierarki yang mencakup kepala TI dan bos Anda. Jika organisasi Anda tradisional (tidak terdengar seperti Agile), Anda adalah sumber daya dan mereka adalah manajer sumber daya. Anda memiliki pekerjaan penuh waktu yang disebut pengembangan perangkat lunak. Jika pengguna akhir secara langsung meminta fitur, menetapkan prioritas Anda, dan mencoba mengatur waktu Anda, manajer Anda berlebihan. Mereka mungkin bertanggung jawab kepada pengguna akhir, tetapi jika mereka melakukan pekerjaan mereka, Anda bertanggung jawab kepada mereka dan mereka perlu melindungi Anda dari keluar dari mode pengembang fokus ke mode pengembang defensif .
Beberapa poin untuk mengatur konteks jawaban saya:
Anda akan dapat melakukan pekerjaan yang jauh lebih berkualitas dengan motivasi yang lebih baik jika Anda dihargai alih-alih menjadi kambing dalam proses yang harus dimiliki oleh kepala IT. Ini adalah cara yang adil dan cara yang produktif. Saya harap Anda akan dikelola dengan cara itu, dan suatu saat nanti, saya harap Anda akan mengelola orang lain dengan cara itu.
sumber
Dalam kasus kegagalan realitas seperti ini, hal terbaik adalah bergerak maju. Alih-alih berdebat tentang masa lalu, bicaralah tentang membuatnya bekerja dan betapa mudah atau sulitnya itu. Tidak masalah apakah masalah itu memperbaikinya atau mengimplementasikan untuk pertama kalinya. Jika manajemen menginginkan A dilakukan sebelum B membuatnya demikian.
sumber
Apakah Anda satu-satunya pengembang yang mengerjakan proyek ini? Sepertinya Anda menjawab seseorang saat membuat proyek. Di mana orang itu dalam semua ini? Di mana dokumentasi untuk proyek mengatakan apa yang disampaikan?
Harus ada jejak kertas dokumen. Dokumen pelatihan yang menunjukkan cara menggunakan aplikasi. Spesifikasi fungsional yang menguraikan apa yang dikembangkan. Jika fitur tidak dimasukkan, harus ada dokumentasi tentang itu juga. Seseorang harus menandatangani dan mengatakan mereka menerima itu.
Seharusnya kata-kata Anda tidak bertentangan dengan kata-kata mereka, itu semua harus ada dalam dokumentasi.
Jika Anda tidak memiliki dokumentasi ini ... maka saya khawatir Anda harus menggigit yang ini. Anggap itu pelajaran hidup. Pada akhirnya, pengguna Anda adalah pelanggan Anda, dan seperti kata pepatah: pelanggan selalu benar. Buatlah cara untuk menambahkan fitur ini dan berapa lama. Adakan pertemuan dan katakan sesuatu di sepanjang baris 'Catatan kami menunjukkan bahwa fitur ini tidak pernah diterapkan, tetapi kami bisa membuatnya hidup dalam x minggu. Haruskah kita pergi kepala? "
Dan untuk cinta semua yang suci .... dapatkan dokumentasi yang Anda butuhkan untuk menunjukkan itu disetujui.
sumber