Apa Bedanya Computer Scientist, Programmer dan Developer?


Computer Scientist, Programmer, dan Developer mungkin merupakan slot pekerjaan yang sedang marak saat ini. Tetapi kalau kita lihat, banyak sekali yang menyamaratakan pekerjaan tersebut dan hanya dipanggil dengan sebutan “orang IT”. Tentunya terkadang dengan imbalan yang juga disamaratakan menjadi “orang IT”. Nah berikut saya coba paparkan hasil pemikiran saya mengenai hal ini. Mengapa? Karena anda harus menghargai posisi dan kemampuan anda sendiri, sebelum anda mau dihargai oleh orang lain. So apakah anda seorang Computer Scientist, Programmer, atau Developer ? :D

Computer Scientist

Mereka melakukan “coding” (yap sedikit kejutan mungkin). “coding” yang mereka lakukan biasanya bukanlah “code” yang “cantik dan ciamik” bukan juga “code” yang bebas dari bug & error, atau bahkan “code” untuk sebuah produk, tapi lebih ke “coding” tester, coba-coba, dan eksperimental. Computer Scientist itu layaknya ahli matematika yang masuk ke dunia teknologi, mengimplementasikan ilmu mereka di bidang teknologi untuk membantu memberi solusi serta efisiensi dari sebuah produk IT.

Selain itu mereka tidak berurusan dengan hal-hal teknis yang diperlukan dalam membuat sebuah produk itu berjalan “sempurna”, mereka hanya perlu “membuktikan” bahwa “produk tersebut” BISA digunakan dan LAYAK digunakan. Biasanya pekerjaan utama mereka tidak jauh dari seputar “Riset”, dimana mereka dapat memberikan masukan untuk developer setelah memastikan sesuatu yang mereka teliti dapat berguna atau dapat menjadi fitur baru di sebuah produk.

Programmer

Programmer membuat “code” yang ciamik. Membuat code yang “bersih”, “rapih”, “mudah dipahami” dan yang paling penting adalah memastikan semuanya bebas dari error. TAPI bukan memastikan produk yang mereka buat dapat digunakan dan dapat dimplementasikan dengan modul lainnya. Programmer adalah spesialis di bidang “pembuatan” bukan hasil akhir ataupun perencanaan.

Mereka pastinya memiliki skill matematis layaknya Computer Scientist, tapi bukan menjadi fokus utama. Mereka memiliki skill menulis bahasa pemprograman, itulah yang menjadi fokus utama. Programmer dengan keahlian komunikasi dengan anggota tim merupakan nilai lebih, tapi seharusnya tidak ditekankan. Mengontrol kerja tim dan juga life cycle dari software process juga merupakan nilai tambah, tapi bukan sesuatu yang wajib dimiliki. Programmer haruslah menstimulasikan diri mereka masing-masing untuk terus mengasah kemampuan mereka. Misalnya dengan projek pribadi di tengah waktu reses mereka. Dan yap… waktu reses itu penting untuk programmer, supaya tidak menjadi “tumpul”.

Developer

Yap… developer itu juga melakukan “coding”, memastikan “code” yang di buat layak saji untuk sebuah produk, dan bebas dari error. Tetapi yang lebih penting adalah mereka bekerja untuk menyatukan dan mengatur “code” yang ada supaya dapat memenuhi requirement. Developer menganalisa requirement dan selanjutnya mengkonveriskannya menjadi design software, dan membagi tugas tersebut ke masing-masing programmer. Mereka juga menyediakan solusi teknis untuk sebuah fitur yang pastinya harus memenuhi requirement dari client.

Skill komunikasi dan team work sangat dibutuhkan untuk posisi ini. Skill perencanaan dan juga pengaturan waktu juga harus menjadi fokus utama bagi developer. Seorang developer tidak harus langsung terjun melakukan “coding” tapi harus pandai mengatur tim agar semua bisa melakukan “coding” secara terencana, efisien dan juga memenuhi requirement serta tenggat waktu yang ada. Developer harus bisa mencari solusi dari permasalahan yang dihadapai tim dalam menghadapi kemauan client. Bidang manajemen “code” juga menjadi fokus utama dari seorang developer, mereka harus memastikan “code” gabungan dari beberapa programmer dapat bekerja sama di satu produk. Developer dapat mengasah kemampuannya dengan cara mencoba berpikir “bagaimana membuat produk yang bisa dibilang “the next Facebook/Twitter?” “. Kira kira seperti itu :)

A programmer job is to code as per given design. A developer developes the software/module from understanding the requirement then design the solution code it and then test the same.

~

Pastinya peandangan saya ini tidaklah secara keseluruhan benar dan tepat menurut pembaca. Karena sebenarnya posisi di IT itu sangatlah luas. Bukan hanya tiga posisi ini saja. Tapi paling tidak posisi posisi ini merupakan posisi utama yang harus ada dan dipisahkan pekerjaannya. Kenapa? Supaya produk anda bisa lebih efisien dari segi perencanaan dan juga hasil akhir produk.

Nah jika anda punya pendapat lain ditunggu ya komentarnya :)