Kalau seandainya kita ingin membeli sebuah produk manakah yang akan kita pilih, produk biasa atau produk berkualitas
Jika kita mempunyai perusahaan dan membutuhkan sebuah sistem yang bagus, manakah yang akan kita hire, programmer biasa ataukah programmer berkualitas
Jawaban kedua pertanyaan di atas tentu kita ingin yang berkualitas, sebab segala sesuatu yang berkualitas akan memuaskan begitu pun programmer, jika kita menjadi seorang programmer yang berkualitas akan membuat puas para stake holder atau para klien yang memakai jasa kita.
Dan saat kita bisa membuat puas pemimpin perusahaan atau klien saat itu juga kita merasakan kepuasan karena telah memberikan yang terbaik dari kita.
Bagaimana cara menjadi programmer yang berkualitas
saya akan mencoba menguraikan sepahaman saya berdasarkan pengalaman saya selama ini
1. Merencanakan dan mengonsep sebelum bekerja
Ibarat ingin membangun sebuah gedung bertingkat, sang insinyur menggambar terlebih dahulu di atas sebuah kertas, corat coret menuangkan ide dan merincikan ke dalam sebuah gambar.
Begitu pula programmer yang baik, dia akan mengonsep dulu di atas kertas, corat coret , menulis langkah2 nya, dan merincikan apa saja yang akan dibuat dalam sistem. Programmer yang tidak mengonsep akan berhenti di tengah jalan karena tidak tahu apa yang harus dilakukan lagi dan sampai di mana batas finishnya. seperti hal nya orang kerja proyek tanpa gambar dari arsitek akan bingung bagaimana hasil jadi sebenarnya.
Jadi saat ingin membuat suatu program buatlah konsep terlebih dahulu, tentukan langkah-langkahnya, buat estimasi waktu pengerjaan setiap langkah-langkah tersebut. Konsep merupakan dasar. dan rencana ibarat rel yang akan kita lewati. salah rencana salah arah.
Setiap pagi sebelum memulai aktifitas buatlah rencana dalam hari itu, kesannya sepele tapi manfaatnya besar . tidak ada perencanaan maka tidak ada efektifitas.
2. Tidak ada bug atau error
Programmer professional akan teliti dalam membuat program.Tapi masa tidak ada bug ? mustahil…
Memang benar tidak ada yang sempurna di dunia ini. Program yang canggih tidak jarang ditemukan bug atau malah error waktu dijalankan.
Terus point no 2 ini bagaimana ?
Programmer yang berkualitas akan memikirkan jangka panjang dalam pembuatan sistem atau program agar jangan sampai ada bug di kemudian hari. Dia memikirkan berbagai kemungkinan bug yang mungkin terjadi. Teliti hati-hati dan tidak asal dalam membuat program.
Mari bayangkan kita sebagai user awam, kita dihadapkan sebuah sistem baru, kita ditraining dan diberi pelatihan cara menggunakan sistem. tapi saat kita menggunakan eeh…error… input angka desimal eh keluarnya integer …waktu submit keluar pesan error…, bagaimana kesan kita waktu itu ….
Sistem nya bagus tidak
Programmer nya professional tidak berkualitas tidak
Kita sebagai programmer mungkin marah sudah capek-capek buat dikatakan tidak professional gara-gara karena ada bug. sistem kita dikatakan tidak layak pakai gara-gara error…pernah ngga dikatakan seperti itu …yang pernah pasti merasakan sakit hati
Sebenarnya user tidak sepenuhnya salah, mereka orang awam. saat mereka menggunakan sistem yang ada dalam benak mereka , mereka ingin menggunakan sistem ini smooth atau lancar halus tidak ada masalah, dari awal sampai akhir, mereka ingin nyaman, nah saat lagi nyaman2 nya menginput eh error…. sudah input di form banyak lagi hadeuh….jadi deh komplain ke kita
Itu gambaran di lapangan bahwa user menginginkan sistem berjalan lancar tidak ada masalah satu pun dalam sistem
Dan itu adalah amanah buat kita bagaimana kita membuat sistem yang bagus yang membuat user nyaman menggunakan, buatlah mereka nyaman buatlah mereka tidak terganggu dengan bug, buatlah mereka tidak terganggu dengan error atau loading lemot.
semakin mereka nyaman menggunakan sistem semakin berhasil kita dalam membuatnya.
Jangan malas memperbaiki bug, saat development begitu kita tahu ada bug atau kemungkinan bug langsung perbaiki, tidak perlu menunggu nanti, jika ditemukan banyak, buatlah list bug dan perbaikilah satu persatu.
Sehingga saat launching sistem , user akan merasakan kenyamanan saat menggunakan sistem yang kita buat. kita pun bisa tersenyum.
Dan misal ini misal kalau seandainya sudah terlanjur ditemukan bug yang kita miss dan ditemukan oleh user segera perbaiki saat itu juga dan secepatnya beri laporan bahwa bugnya sudah diperbaiki. Ini yang dinamakan fast response cepat tanggap.
Point kedua adalah : Kalau tidak bisa menghilangkan bug sama sekali maka minimalkanlah kemungkinan terjadinya bug
3. Memberikan Service excellent
Di atas sudah disinggung tentang fast response , fast response atau menanggapi dengan cepat termasuk dalam service excellent
Apa itu service Excellent ?
Service Excellent adalah kita memberikan pelayanan yang maksimal sehingga orang yang kita layani merasakan sangat puas.
Jika ditanya langsung jawab , respon nya cepat, jangan tunggu nanti, termasuk disms diemail whatsapp atau ditelpon
Bila saat ditelpon kita sedang tidak bisa mengangkat, segera kita telpon balik orang tersebut, mereka menelpon pasti ada perlunya, nah kita telpon balik tanya ada yang bisa dibantu
Termasuk service Excellent ialah memberikan laporan
berikan laporan progres perkembangan pada pimpinan secara berkala , misal setiap minggu atau setiap dua minggu, meski progres nya tidak signifikan laporkan perkembangannya. Sehingga pimpinan akan tahu, jangan sampai kita tidak memberikan laporan hanya karena pekerjaan belum jadi, tidak apa2 belum jadi sehingga pimpinan tahu, jangan sampai pimpinan menunggu
Begitu pun saat berhubungan dengan klien, meski klien tidak bertanya beri laporan progresnya, agar klien tahu perkembangannya, sehingga klien nyaman kerja dengan kita
Saat memberikan laporan kepada pimpinan, ada baiknya jangan hanya melalui lisan, buat data resume progres nya, mana yang sudah selesai mana yang belum jadi, bila belum jadi tulis penjelasannya baik kendala problem atau berapa persen progres nya. buat pimpinan nyaman dengan kita
Saya sering membuat data di excel perkembangan sistem mana yang selesai dan mana yang belum selesai, dan apa yang terjadi , pimpinan senang akan hal ini , karena pimpinan mendapatkan laporan tanpa meminta terlebih dahulu, kita harus proaktif dalam hal ini. Malah saya malu kalau sampai ditanya, usahakan sebelum ditanya kita lapor terlebih dahulu.
Termasuk Service Excellent ialah saat diminta pimpinan untuk mengerjakan suatu tugas kerjakan sekarang juga, jangan nanti begitu balik dari ruangannya, langsung kerjakan dan begitu selesai langsung laporkan , bila kita bisa menyelesaikan di hari itu juga dengan cepat, kita telah memberikan service excellent kepada pimpinan.
Begitu pun kaitan dengan user, begitu ada komplain langsung kerjakan dan langsung laporkan saat selesai, semakin cepat respon kita semakin cepat menyelesaikan apa yang dikomplain semakin excellent service kita.
4. Mengetahui Etika bisnis
Etika Bisnis ialah Tata krama dalam bisnis bagaimana kita berbicara lisan maupun tulisan dan bertingkah laku dalam urusan bisnis.
Coding boleh jago tapi kalau bahasa email kita berantakan kita bukanlah orang professional, akan menjadi bahan tertawaan orang lain kalau tidak tahu cara membuat email yang baik. ada ilmunya juga lho
Etika bisnis meliputi, bagaimana cara berpakaian, cara bertemu orang berjabat tangan, cara berbicara langsung , bagaimana etika saat meeting, bagaimana menulis email, bagaimana etika menerima telepon, bagaiamana interaksi dengan teman kerja, pimpinan, klien dan lain sebagainya.
Dengan mempelajari etika bisnis kita akan menjadi orang yang beretika, jika kita mempunyai etika orang lain akan senang dengan kita.
Untuk itu mulailah belajar etika bisnis, baca buku atau artikel , setelah belajar praktekkan.
5. Mempunyai dokumentasi yang baik
Programmer yang baik ialah programmer yang mempunyai dokumentasi. Apa itu dokumentasi ? kalau kita mengadakan suatu acara akan ada orang yang ditunjuk sebagai seksi dokumentasi , tugasnya foto2 dan video. agar acara tersebut punya histori.
Kurang lebih seperti itu dokumentasi dalam dunia programming, Kita tulis setiap perubahan yang ada dalam coding agar ada dokumentasinya, sehingga lain waktu jika kita ingin melihat file yang sebelumnya , akan masih ada.
Dokumentasi yang baik bisa berarti juga saat kita membuat satu class, function atau syntax dalam function, kita beri keterangan bahwa class ini , function ini , atau syntax ini untuk apa, jika ada perubahan tulis tanggal perubahan dan oleh siapa. sehingga jika suatu waktu kita ingin memodifikasi function kita akan langsung tahu keterangan function tersebut karena di atasnya ada dokumentasinya berupa komentar
Dokumentasi berarti juga rapi dalam pembuatan versi. setiap ada perubahan buatlah versi2 tersendiri, termasuk juga ditemukan bug kemudian diperbaiki buat versi agar mudah. Contoh yang bagus ialah phpmyadmin , saya selalu update phpmyadmin terbaru , setiap ada update dari situs asli saya download dan saya pakai. jika saya melihat dokumentasi nya akan terlihat tidak semua versi terbaru ada fitur baru, bisa jadi karena perbaikan bug
Dokumentasi berarti juga berisi tutorial cara2 penggunaan untuk user, meliputi cara install , fitur apa saja yang tersedia, sampai bila ada trouble bagaimana cara penangannya, sehingga user bisa tahu dan menggunakan sistem dengan lancar.
6. Mempunyai Logika yang bagus
Logika bagi programmer adalah sesuatu yang wajib yang harus dipunyai. Tidak mungkin bisa menjadi programmer yang berkualitas tanpa bisa logika. Logika ibarat pondasi bagi bagunan gedung bertingkat. tanpa logika yang memadai programmer akan tersesat di tengah jalan karena tidak tahu bagaimana cara menyelesaikan kasus.
Bagaimana cara mengasah logika : Belajarlah Algoritma
Algoritma adalah cara belajar yang efektif untuk kita belajar logika. Algoritma berisi langkah-langkah menyelesaikan permasalahan. Bagaimana cara kita menyelesaikan kasus dengan efektif dan efisien. Banyaknya kode belum tentu bagus algoritmanya, sebab bisa jadi tidak efisien, sedikitnya kode pun belum tentu bagus karena bisa jadi akan susah maintenance nya.
Jika ingin menjadi programmer professional dan berkualitas syarat utama yang harus dikuasai ialah : Logika
Saya pernah mempunyai pengalaman merekrut seorang programmer yang logika nya kurang, hanya bermodalkan tahu php saya menerimanya, apa yang terjadi ? dia kesulitan menyelesaikan kasus2 yang saya berikan, sering dia mentok yang kemudian meminta bantuan saya untuk menyelesaikan. sering pula melenceng jauh dari hasil yang saya harapkan. ganti kasus saja sudah bingung ini terjadi karena logikanya tidak kuat.
setelahnya saya merekrut orang yang punya logika kuat. pengetahuan php sangat minim. apa yang terjadi ? dia cepat mempelajari apa yang saya ajarkan. dia cepat belajar, php sampai framework pun dia bisa, bahkan jauh melampaui programmer sebelumnya. tugas-tugas dikerjakan dengan baik. ini dikarenakan dia mempunyai logika yang bagus.
Kalau logika bagus algoritma juga bagus. Algoritma ibarat strategi perang, salah algoritma sama saja salah strategi. sedangkan syntax php adalah alat. Alat apa yang akan digunakan tergantung pada strategi. percuma alat perang banyak kalau tidak bisa strategi perang. mending alat pas2 an tapi strategi jago. alat bisa googling.
Ada tips untuk mengasah logika : Jangan mudah copy paste coding dari google
Orang yang sedikit2 google, kemudian copy paste (copas) , dipakai dia tidak akan menjadi belajar dari kasusnya, ya sudah kemampuan logikanya segitu2, mandek otaknya. ada kasus lagi , copas lagi
Cobalah kerjakan memakai algoritma sendiri, nanti logika akan terasah
Tapi beneran tidak boleh copy paste ?
Boleh kok kalau dalam kondisi tertentu
7 . Mempunyai imajinasi
Imajinasi adalah hayalan. programmer yang baik adalah programmer yang mempunyai imajinasi saat membuat sistem. dia membayangkan terlebih dahulu akan menjadi seperti apa sistemnya nanti. dia mengambil kertas mencorat coret menuangkan ide hasil imajinasi akan seperti apa karyanya nanti.
Programmer yang mempunyai imajinasi hasil karyanya akan jauh berbeda dengan programmer yang tidak mempunyai imajinasi.
8. Mempunyai Integritas
Bila logika adalah pondasi di sisi skill maka Integritas adalah pondasi dari sisi sikap.
Programmer yang mempunyai integritas yang tinggi akan mempunyai harga diri dan wibawa sendiri , dia dipercaya perkataan maupun perbuatan, banyak orang yang menyukainya karena mempunyai prinsip.
Apa itu Integritas ?
integritas berarti kejujuran, tanggung jawab, Menepati janji, benar dalam berbuat, perkataan dan perbuatan sama.
Bukan integritas namanya orang yang selalu berbohong
Bukan integritas namanya orang yang merasa berat dengan pekerjaan kemudian lari dari tanggung jawab
Bukan Integritas namanya orang yang selalu ingkar janji, janji senin selesai tapi sampai Rabu belum selesai dan tidak memberi kabar
Bukan Integritas namanya orang yang berbuat curang , memanipulasi data , dan berbuat yang berlawanan dengan hati nurani sendiri
Bukan Integritas juga namanya bila apa yang dikatakan tidak dikerjakan, sebab Orang yang mempunyai integritas antara perkataan dan perbuatan selalu sama.
Orang yang berintegritas akan dipercaya banyak orang, karena ia mampu mengemban amanah pekerjaan dengan baik, dia jujur, tidak pernah bohong, selalu menepati janji, pekerjaan selalu selesai tepat waktu, dan perbuatan dan perkataan selalu seirama. Dia tahu ada Tuhan Allah yang selalu mengawasi sehingga dia takut untuk berbuat tidak benar.
Zaman sekarang orang yang mempunyai integritas adalah orang mahal. dia antik dan unik di antara yang lain. dia bagaikan mutiara yang bernilai.
Suatu waktu saya pernah bekerja sama dengan seorang programmer yang handal. dia ahli dan jago coding , kemampuan codingnya cepat, logika nya oke , belajar apapun cepat menyerapnya, tapi sayang ada satu yang kurang yaitu integritas.
suatu waktu karena sudah hampir deadline saya menelpon menanyakan perkembangan progres project yang dikerjakannya. tapi tidak diangkat, telpon lagi tidak diangkat, sms tidak dibalas. Dia membiarkan saya menunggu dengan cemas. Orang yang berintegritas jika dia tidak bisa menerima telpon karena sibuk atau saat itu tidak mendengar dia akan balik menelpon.
Akhirnya jika ada project lagi saya berpikir ulang untuk memberikan padanya.
Jika ada programmer berintegritas dan mempunyai logika yang bagus , percayalah orang itu akan dibutuhkan dimana2.
9. Bisa Bekerja sama dengan orang lain
Programmer yang baik bukanlah superman yang bisa melakukan semua dengan sendiri. programmer yang baik adalah superteam yang bisa bergabung dengan tim sehingga tercipta tim yang solid.
Bila partner nya lebih junior dia tidak akan segan-segan mengajarinya, membimbingnya, dia akan menjadi mentor yang baik bagi junior nya
Bila partner nya sama sederajat ilmunya dia tidak akan mendahulukan egonya agar idenya yang diterima, dia akan berpikir jernih mana ide yang paling bagus yang bisa bermanfaat buat perusahaan meski ide nya dari temannya.
Bila partner nya lebih senior, dia tidak akan malu untuk bertanya, dia akan cepat belajar agar tidak terlalu ketinggalan
Selain bekerja sama dengan sesama programmer, kita juga harus bisa bekerja sama dengan orang divisi lain. saat ini saya sedang membangun sistem invoice maka saya pun harus bisa bekerja sama dengan orang finance diskusi bagaimana menmbangun sistem invoice yang baik yang bisa dipakai oleh user.
10. Pembelajar yang baik
Programmer yang baik sadar benar bahwa saat dia berhenti belajar maka dia akan ketinggalan. dia senantiasa menjadi pembelajar yang baik . dia tidak akan sayang uangnya untuk membeli buku atau kuota internet untuk browsing artikel atau tutorial di internet. Baginya ilmu adalah segalanya.
Belajar baginya adalah suatu kebutuhan bukan karena terpaksa atau tuntutan , melainkan kesenangan. dia senang akan hal-hal baru. kemampuan belajarnya pun bisa cepat.
Dia menyadari untuk meningkatkan karirnya tidak hanya skill coding saja yang dipelajari , melainkan hal-hal lain juga dipelajari seperti bagaimana seni berkomunikasi dengan orang lain, project management yang baik, bagaimana cara memberikan presentasi yang baik dan lain sebagainya.
Demikian cara-cara menjadi programmer yang berkualitas yang dapat saya uraikan , semoga bermanfaat.
Jakarta, 12 Juni 2015
Mahrizal
Artikelnya bagus…
SukaSuka
Terima kasih mas
SukaSuka