Programmer yang Baik Seperti Apa ?

Tidaklah mudah kita bisa mengenali seorang programmer yang baik (mampu). Pengalaman yang terdapat dalam CV hanya terbatas, karena seorang programmer yang baik tidak selalu memiliki pengalaman yang secara resmi bisa digunakan untuk menunjukkan bahwa mereka memuaskan. Kenyataanya, banyak dari pengalaman dalam CV bisa salah. Untuk memastikan seorang programmer itu mampu, tidak harus lewat CV.

Saya jadi meragukan diri saya sebagai seorang programmer yang baik. Dalam waktu yang bersamaan, saya menyisakan waktu di bagian bisnis yang lain, memilah CV-CV para tenaga IT yang melamar untuk suatu project, wawancara, dll. Sangat berterima kasih, saya mulai berpikir bahwa saya memiliki sedikit pengalaman dalam mengenali programmer yang baik dan saya ingin membaginya ke dalam artikel ini, dengan harapan bisa membantu para ‘pebisnis lain’ untuk mengenali programmer yang baik. Dan, siapa tahu, mungkin beberapa programmer yang memiliki potensi bagus tapi belum secara nyata mengeksploitasikannya bisa juga membaca artikel ini dan memahami apa yang diperlukan untuk menjadi seorang programmer yang baik.Paul Graham dalam artikelnya, “The 18 mistakes that kill startups” memberikan pendapat:

…what killed most of the startups in the e-commerce business back in the 90s, it was bad programmers. A lot of those companies were started by business guys who thought the way startups worked was that you had some clever idea and then hired programmers to implement it. That’s actually much harder than it sounds—almost impossibly hard in fact—because business guys can’t tell which are the good programmers. They don’t even get a shot at the best ones, because no one really good wants a job implementing the vision of a business guy.
In practice what happens is that the business guys choose people they think are good programmers (it says here on his resume that he’s a Microsoft Certified Developer) but who aren’t. Then they’re mystified to find that their startup lumbers along like a World War II bomber while their competitors scream past like jet fighters. This kind of startup is in the same position as a big company, but without the advantages.

So how do you pick good programmers if you’re not a programmer? I don’t think there’s an answer. I was about to say you’d have to find a good programmer to help you hire people. But if you can’t recognize good programmers, how would you even do that?

Saya kurang setuju dengan Om Graham dalam hal ini. Saya berpikir masih ada indikator yang lebih kuat untuk menentukan seorang programmer yang baik (dan, sebaliknya, indikator yang kuat dari “Seorang programmer yang kurang-baik”) dan juga seorang pebisnis bisa mengenalinya. Saya akan merangkumkan beberapa indikator kunci dan indikator lawannya dalam daftar pada akhir artikel ini.

1. Kemauan besar.
Dalam pengalaman korporasi saya, saya bertemu dengan orang teknik yang belum pernah saya kenal : berkarir sebagai programmer. Orang yang mengerjakan IT, karena mereka berpikir itu merupakan karir yang bagus. Mereka tidak melakukan kegiatan programming dalam waktu luang (Mereka sempat terkejut ketika mereka menemukan bahwa saya memiliki jaringan LAN dan 3 buah komputer di rumah). Mereka hanya melakukan programming saat bekerja. Mereka tidak mempelajari cara-cara baru kecuali dalam kursus (atau dimotivasi oleh keinginan mencari kerja yang memerlukan teknologi itu). Mereka melakukan ‘Programming’ sebagai pekerjaan di siang hari. Mereka benar-benar tidak ingin membicarakan tentang programming di luar jam kerja.

Saya percaya bahwa programmer yang baik selalu tertarik terhadap yang berbau programming. Programmer yang baik selalu melakukan beberapa pemrograman walaupun mereka tidak dibayar untuk itu. Programmer yang baik akan selalu memiliki kecenderungan untuk berbicara tentang beberapa detail teknis tentang apa yang sedang mereka kerjakan. Beberapa orang mungkin memandangnya sebagai ‘kesalahan adaptasi’ dalam skill sosial, tetapi jika Anda ingin mengenali seorang programmer yang baik, dengarkan dia berbicara mengenai teknologi yang sedang dan akan digunakannya, untuk beberapa jam, sampai habis ceritanya, maka anda akan menjadi juara.

2. Belajar sendiri dan menyenangi belajar
Programming merupakan target bergerak yang paling mewah. Tidak ada satu tahun-pun yang berlalu tanpa teknologi yang baru, merubah separuh cara pengembangan di bumi ini. Ini tidak bermaksud bahwa semua programmer yang baik harus mengambil kesempatan ini dan menggapai tangga berbahaya. Bagaimanapun, ada beberapa programmer yang tidak akan pernah mengadopsi teknologi baru kecuali dipaksa, karena mereka tidak menyukai mempelajari sesuatu yang baru. Programmer-programmer ini secara tipikal pernah belajar pemrograman di Perguruan Tinggi.

Jika kalian berpikir menyewa seorang programmer, dan dia pernah mengeluarkan kalimat “Saya tidak dapat bekerja dengan itu, sekolahkan saja saya ke tempat pelatihan selama seminggu. Saya pasti akan bisa.”, jangan menyewanya!. Seorang programmer tidak memerlukan tempat kursus untuk belajar suatu teknologi baru. Dalam kenyataan, seorang programmer yang baik akan berbicara tentang teknologi terbaru yang belum pernah Anda dengar, menjelaskan kepada Anda kenapa teknologi itu harus digunakan, walaupun tidak satupun karyawan Anda yang tahu cara menggunakannya. Walaupun jika itu merupakan suatu teknologi yang belum diketahuinya.

3. Kepintaran
Beberapa pelaku bisnis mengasumsikan berkurangnya aksi sosial dan intelejensi adalah sama. Sebenarnya, intelejensi memiliki beberapa bagian, dan kepintaran sosial/emosi merupakan salah satunya. Programmer yang baik tidaklah bodoh. Tidak pernah. Dalam kenyataan, programmer yang baik sering kali merupakan orang yang cerdas . Kebanyakan dari mereka juga memiliki keahlian sosial yang baik. Saya sering ke tempat pertemuan TI dan saya bisa mengatakan dengan sedikit pengecualian, kebanyakan orang-orang disana cerdas, pandai berbicara, sosialis, memiliki keinginan yang berbeda,dll. Anda mungkin berpikir mereka membicara kesukaan masing-masing, sampai akhirnya Anda mendekat dan menyadari mereka membicarakan tentang cara terbaik untuk membuat suatu aplikasi baru dengan tampilan UI yang mengagumkan.

Ini tidak berarti mereka semua akan merasa nyaman dalam setiap konteks sosial. Tetapi ini berarti bahwa jika dengan pembicaraan mereka, mereka merasa nyaman, maka Anda akan bisa berkomunikasi dengan mereka seacara baik (lebih baik, semenjak para programmer yang saya tahu, mereka membicarakan seputar topik yang berguna, lebih baik dari hanya sekedar Chit-Chat biasa).

4. Pengalaman yang tersembunyi
Berhubungan dengan kemauan besar, tetapi ini juga merupakan indikator kuat yang ingin saya share.

Saya mulai belajar pemrograman ketika masih duduk di bangku SMP, menggunakan Pascal. Kemudian saya bermigrasi ke Visual Basic. Ketika SMA saya mencoba membuat program yang lebih rumit. Ketika saya selesai, saya telah memperoleh kepercayaan diri. Saya tahu, saya bisa membuat code yang lebih cantik jika saya berkonsentrasi.

Apakah pengalaman tersebut ada dalam CV saya? Tidak.

Saya percaya bahwa kebanyakan programmer yang baik memiliki pengalaman-pengalaman yang tidak terdapat dalam CV atau profil mereka (atau sengaja tidak dipublikasikan). Kadang mereka berpikir itu tidaklah relevan, dikarenakan itu bukan merupakan ‘pengalaman yang sesuai’. Pertanyaan bagus yang bisa ditanyakan pada seorang programmer yang baik mungkin ‘Bisakah anda beritahu tentang proyek pribadi anda? Yang dikerjakan di waktu luang, dan tidak terdapat dalam CV anda?’ Jika mereka tidak bisa (kecuali CV-nya memiliki 20 halaman lebih), mereka mungkin bukanlah programmer yang baik. Programmer yang memiliki CV yang lengkap sekalipun pasti memiliki project-project signifikan yang tidak terdapat dalam CV.

5. Variasi Teknologi
Mempelajari teknologi yang baru merupakan salah satu hal yang menyenangkan bagi seorang programmer. Jadi mereka melakukannya setiap waktu. Mereka tidaklah mungkin pakar dari semua teknologi, tetapi programmer yang baik, akan dengan mudah terbiasa dengan teknologi baru yang begitu banyak.

Setiap programmer java akan bisa memulai teknologi seperti ‘Java, J2EE, Ant, XML, SQL, Hibernate, Spring, Struts, EJB, Shell scripting, dll’. Tetapi itu merupakan bagian dari teknologi yang sama, semuanya secara langsung saling berhubungan.

6. Kualifikasi Resmi
Kebanyakan programmer yang baik memiliki status sarjana dalam Ilmu Komputer / IT. Yang lain tidak. Sertifikat seperti, MCSE atau SCJP atau semacamnya, tidaklah ada maksudnya. Itu dibuat agar bisa di diperoleh dan tersedia bagi semua orang. Salah satu yang diindikasikan adalah suatu level pengetahuan dari teknologi. Mereka merupakan ‘perusahaan perlindungan’ yang memberikan informasi kepada perusahaan besar agar mengetahui ‘Ya, orang ini tahu java, dia punya sertifikasi yang bisa membuktikan.’ Tanpa perlu wawancara.

Jika Anda menyewa programmer untuk bisnis yang kecil, atau Anda benar-benar menginginkan developer yang cerdar untuk suatu team Cracking yang akan mengimplementasikan pengembangan ‘agile’ dalam project Anda, Anda sebaiknya melakukan pengecualian terhadap kualifikasi yang resmi sebagai sumber.

Kualifikasi tersebut tidak dapat memberitahu banyak tentang kepintaran seorang programmer. Sama seperti usia. Beberapa programmer mulai pintar saat usia 18thn. Yang lain di usia 40thn. Anda tidak bisa mendasarkan keputusan Anda tentang kualitas programmer pada usia. (Diskriminasi usia sangat illegal di beberapa negara).

Finally, dalam pengalaman saya kebanyakan programmer yang biasa (pengetahuan rata-rata) memulai programming pada universitas, untuk jurusan TI tentunya. Kebanyakan programmer yang pintar (pengetahuan di atas rata-rata) memulai programming jauh sebelum kuliah, dan kuliah hanyalah sebagai pelengkap hobby. Jika programmer potensial Anda tidak mengerjakan programming sebelum masuk universitas, dan semua pengalamannya diperoleh saat bekerja, mungkin dia bukan programmer yang baik.

Sumber :

http://www.idfreelance.net

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s