Jadi, kita semua pernah mendengar tentang Programmer Bill of Rights dan XP memiliki konsep serupa.
Ini adalah keluhan umum hari ini bahwa kami mendengar banyak tentang hak-hak orang tetapi tidak begitu banyak tentang tanggung jawab mereka, jadi apa yang seharusnya ada pada tagihan tanggung jawab programmer. Itu adalah hal-hal yang harus mereka lakukan, yang mereka anggap tidak menyenangkan, tetapi yang memisahkan pemrogram bertindak secara profesional dan bertanggung jawab, dari mereka yang tidak.
Saya terutama tertarik pada yang tidak enak dan yang cenderung tidak terjadi. Itu adalah hal-hal yang cenderung diabaikan oleh programmer dan dihindari, daripada yang dilakukan oleh 90% programmer (seperti selalu refactor dan menggunakan kontrol sumber).
Jadi, apa yang seharusnya ada pada Programer Bill of Responsibility?
sumber
Jawaban:
Seorang programmer memiliki tanggung jawab untuk mendorong kembali persyaratan yang buruk alih-alih menerapkannya secara membabi buta. Ini termasuk memberi tahu klien bahwa yang mereka inginkan lebih mahal daripada opsi lain atau memiliki serangkaian risiko tertentu. Ini juga termasuk mengkomunikasikan berita buruk secara profesional - tidak berteriak, menyebut orang bodoh, menyiratkan mereka bodoh atau perilaku kekanak-kanakan lainnya. Jika dia mendorong kembali, dia harus memiliki serangkaian alasan (lebih dari, "Saya tidak suka SQL Server dan tidak akan menggunakannya") dan rencana alternatif untuk disajikan.
Namun, programmer juga memiliki tanggung jawab untuk menerima keputusan dan menggunakan alat atau desain yang mungkin tidak mereka sukai jika pushback mereka tidak diterima. Jika laporan diminta dalam SSRS, mengirimkannya dalam Crystal Reports (yang mungkin tidak dimiliki klien) tidak dapat diterima. Jika solusi .net diperlukan, mengirimkannya dalam Haskell tidak dapat diterima. Jika tidak ada orang lain di tim yang menggunakan alat atau bahasa yang ingin Anda gunakan, itu tidak profesional untuk menggunakannya jika manajemen tidak setuju bahwa itu adalah alat terbaik untuk pekerjaan tertentu.
Seorang programmer memiliki tanggung jawab untuk menguji pekerjaannya. (Ini seharusnya bukan satu-satunya tes, tetapi tidak ada programmer profesional yang harus mengirimkan kode yang belum dia uji.) Ini termasuk menguji bahkan cabang-cabang kode yang tidak Anda harapkan akan sering muncul. Jika Anda memiliki satu set IF bersarang, uji semua rute yang mungkin.
Seorang programmer memiliki tanggung jawab untuk menangani kesalahan dan pengecualian dengan anggun dan untuk menulis pesan kesalahan yang akan dilihat pengguna yang profesional dan netral, tidak bercanda atau menghina.
Seorang programmer memiliki tanggung jawab untuk melindungi data pribadi, melindungi kode hak milik yang ia tulis untuk perusahaan dan untuk melindungi pengguna dari bencana (bahkan bencana yang diakibatkan oleh diri sendiri) dari penggunaan aplikasi oleh mereka.
Seorang programmer memiliki tanggung jawab untuk memastikan kodenya dapat dipertahankan dan berada dalam kendali sumber.
Seorang programmer memiliki tanggung jawab untuk berkoordinasi dengan orang lain untuk memastikan perubahannya tidak mempengaruhi apa yang mereka lakukan.
Seorang programmer memiliki tanggung jawab untuk merekomendasikan pilihan terbaik untuk klien alat atau bahasa pada fase desain bukan alat / bahasa yang ingin ia mainkan dan pelajari.
Seorang programmer memiliki tanggung jawab untuk bekerja dengan semua personel yang sesuai untuk suatu proyek termasuk yang tidak dia sukai. Bukan tugas Anda untuk menyukai orang, itu tugas Anda untuk bekerja bersama mereka dan bersikap sopan.
Seorang programmer memiliki tanggung jawab untuk menghasilkan produk yang melakukan apa yang ditentukan dalam kerangka waktu yang masuk akal. Jika kerangka waktu tidak akan terpenuhi, ia memiliki tanggung jawab untuk memberi tahu manajemen tentang hal itu segera setelah diketahui.
Seorang programmer memiliki tanggung jawab untuk memberi tahu manajemen proyek tentang hambatan untuk menyelesaikan pekerjaan. Mereka tidak dapat memperbaiki apa yang tidak mereka ketahui.
Seorang programmer memiliki tanggung jawab untuk melakukan seluruh tugas bukan hanya bagian yang menyenangkan dan menarik. Setiap pekerjaan memiliki beberapa bagian yang membosankan, mereka masih perlu dilakukan. Ini termasuk hal-hal seperti timesheets dan menambahkan item diskusi ke perangkat lunak manajemen proyek. Ini termasuk hal-hal seperti dokumentasi, tinjauan kode, dll.
Seorang programmer memiliki tanggung jawab untuk mempelajari domain bisnis yang didukungnya bukan hanya konsep pemrograman.
Seorang programmer memiliki tanggung jawab untuk menjaga keterampilannya tetap mutakhir.
Ketika seorang programmer kacau, dia memiliki tanggung jawab untuk melakukan semua yang dia bisa untuk memperbaiki masalah secepat mungkin secara manusiawi. Ini mungkin termasuk membawa berita buruk kepada manajemen daripada berusaha menyembunyikan bahwa Anda baru saja menghapus tabel penting dalam database produksi.
Seorang programmer memiliki tanggung jawab yang sama dari pekerja lain - untuk muncul tepat waktu, untuk bekerja di jam yang dikontrak, untuk meminta waktu liburan di muka, untuk menjawab pesan telepon dan email (heck untuk membaca email mereka), untuk mengisi formulir yang diperlukan untuk SDM, dll.
sumber
Setiap programmer harus membuat kode mereka dapat dibaca oleh orang lain.
sumber
Programmer bertanggung jawab atas privasi dan keamanan semua data yang disediakan pengguna. Terutama kata sandi, nomor kartu kredit, alamat email, dan lokasi fisik.
sumber
Jangan membuat pengguna kehilangan pekerjaan mereka.
Ini lebih sulit daripada kedengarannya ... bekerja lebih dari sekadar "data dalam file" ... itu setiap saat pengguna menghabiskan waktu dengan perangkat lunak Anda.
Misalnya, jika pengguna mengisi formulir 30-bidang Anda dengan 29 item yang valid dan 1 yang tidak valid, jangan hapus semua data validnya untuk mengeluh tentang 1 yang tidak valid (heck, bahkan tidak menghapus yang tidak valid .. mungkin panjang dan hanya perlu koreksi kecil, atau pengguna tidak akan ingat apa itu sebelumnya jika Anda menghapusnya)
Contoh yang tidak jelas tetapi penting adalah apa yang Windows dan hampir semua perangkat lunak "manajer file" lainnya salah .... jika saya menghabiskan setengah jam dengan hati-hati Ctrl-Click'ing untuk memilih satu set file dan saya tidak sengaja melakukan Klik alih-alih Ctrl-Click, seharusnya tidak menghapus semua file yang saya pilih sebelumnya, membuat saya memulai kembali.
Satu lagi yang mereka salah ... jika saya tidak sengaja menekan Ctrl-A (bukan Ctrl-S di sebelah), seharusnya tidak kehilangan tempat saya di file dan meletakkan kursor di awal .... Saya sebut menemukan tempat yang tepat di file "work" yang telah "hilang" oleh program.
Yang lain: Dialog "komit" TortoiseSVN memiliki daftar panjang file. Sebelum menekan "Commit", Anda dapat melihat daftar file, mengklik dua kali masing-masing untuk melihat perubahannya dalam dialog ke-2. Untuk melakukan ini dengan cepat saya kadang-kadang menggunakan keyboard saja, menekan
<Esc>
untuk menutup dialog ke-2 dan kembali ke tanggal 1. Jika saya secara tidak sengaja menekan<Esc>
dua kali, itu juga menutup dialog 1, yang mengakibatkan saya lupa file mana yang saya pilih.sumber
Seorang programmer memiliki tanggung jawab untuk menghormati sistem yang akan dijalankan oleh programnya. Setelah pengembangan dan pengujian selesai, program akan digunakan untuk digunakan untuk tujuan yang dimaksudkan, dan itu biasanya melibatkan orang lain yang menjalankannya di komputer mereka. Pemrogram perlu mengingat hal ini: programnya berjalan di atas properti orang lain , bukan milik mereka sendiri, dan perlu berperilaku sebagai tamu di rumah mereka alih-alih menerobos masuk seolah-olah ia memiliki tempat itu.
Misalnya, programnya tidak boleh:
sumber
Dari Manifesto untuk Pengrajin Perangkat Lunak :
sumber
Lihatlah di cermin dan mungkin mengenali kualitas terburuk dari seorang programmer dalam dirinya sendiri. Kemudian bekerja untuk menghilangkannya setiap hari.
sumber
Beberapa dari itu berlaku untuk Tanggung Jawab " Perusahaan Pemrograman ".
sumber
Khususnya ketika programmer berasal dari platform / bahasa lain. Sungguh mengerikan menemukan programmer berjuang untuk sesuatu perpustakaan inti menyediakan atau menyalahgunakan keuntungan platform karena ketidaktahuan.
Sangat penting untuk memiliki kode yang didokumentasikan untuk digunakan orang lain, tetapi ketika datang ke pemeliharaan, kode mendokumentasikan diri secara harfiah dapat menghemat berjam-jam frustrasi.
Sebagai contoh, bandingkan:
untuk
sumber
Pemrograman adalah profesi, bukan keterampilan. Ini berarti bahwa seorang programmer memiliki tanggung jawab untuk tetap terkini di bidangnya pada alat, teknik, dan teknologi terbaru.
Ini mungkin berarti mendorong kembali ke manajer untuk memberikan waktu agar pembelajaran dan pelatihan terus menerus, atau melakukannya sendiri.
sumber
1) Jelaskan dengan jelas bahwa solusi untuk masalah apa pun akan memiliki trade off antara kinerja, biaya, waktu, dan kualitas.
2) Lengkapi dokumentasi yang relevan, baik itu merilis catatan atau rencana pengujian. (dokumentasi akan bervariasi sesuai dengan jenis dan ukuran perusahaan)
3) Minta alat yang benar untuk pekerjaan mereka (begitu banyak yang hanya mengeluh tentang hal itu tetapi tidak pernah mendekati bos mereka dengan alasan yang masuk akal untuk mendapatkan apa yang mereka butuhkan)
... Yang lain tidak ragu untuk mengikuti.
sumber
Pertanyaan apa pun - Seorang programmer harus memiliki tanggung jawab untuk menanyakan apa pun yang mungkin perlu dilakukan atau ditangani oleh suatu sistem. Ini dapat mencakup menanyakan apa yang pengguna anggap sebagai pertanyaan konyol karena ada berbagai situs yang ditujukan untuk menunjukkan apa yang dapat dilakukan pengguna. Harian WTF dan SharkTank menjadi beberapa contoh meskipun saya yakin ada yang lain.
sumber
Itu sebabnya manajer harus memastikan bahwa mereka memiliki segalanya untuk tujuan mereka.
sumber
Ini proposal saya.
(Untuk "programmer" maksud saya "programmer", bukan "hacker akhir pekan", jadi semua hal standar yang harus dilakukan oleh seorang programer tersirat.)
sumber
5 aturan guild programmer
1.) periksa kodenya setiap minggu dan pada hari libur.
2.) menyediakan untuk kebutuhan komunitas pemrograman.
3.) membaca setidaknya satu buku pemrograman per tahun.
4.) pergi ke setidaknya satu konferensi pemrograman per tahun.
5.) mengakui kesalahan Anda.
sumber
Saya akan menambahkan "selalu mendokumentasikan asumsi yang dibuat" ke daftar. :-)
sumber
Seorang programmer tidak boleh melakukan atau mengimplementasikan sesuatu yang tidak etis atau ilegal, seperti menulis virus atau meretas sistem orang lain (kecuali jika ia menemukan celah keamanan dan kemudian memberi tahu korban tentang hal itu dan apa yang dapat ia lakukan untuk menghindari hal ini agar tidak menjadi dieksploitasi oleh peretas jahat).
sumber