Thursday, March 01, 2007

Menjadi Manusia Setengah Dewa

Menjadi seorang programmer pada intinya adalah menjadi manusia setengah dewa. Awalnya ketika kita belum belajar programming, kita hanya bisa melihat dan membandingkan mana software yang secara fungsional bagus, secara visual bagus, secara user experience bagus ataupun bagus di semua bidang.

Biasanya software yang benar-benar user friendly adalah
software yang bagus secara keseluruhan. Biasanya begitu kita mencoba menggunakan sebuah software, secara tidak sadar, kita akan segera membandingkan semua aspek tersebut dan memberi penilaian apakah software tersebut enak digunakan dan berfungsi dengan baik.

Pada awal-awal kita belajar programming, biasanya kita diajarkan bagaimana menterjemahkan logika-logika sehari-hari ke dalam logika matematika untuk kemudian di buat sebuah workflow nya dalam sebuah flowchart. Flowchart ini sebenarnya merupakan faktor yang fatal bagi seorang programmer, kenapa? Karena inilah yang menentukan apakah
software yang kita bikin sudah mengikuti alur yang benar atau belum, mengingat komputer adalah sebuah alat yang bekerja secara sequential from top to the bottom. Dengan flowchart juga kita bisa dengan mudah menelusuri letak error dan dengan mudah memperbaikinya.

Pertama kali menggunakan bahasa pemrograman biasanya adalah Basic, VB atau Pascal, jarang yang langsung belajar ke Java ataupun C, mengingat kedua bahasa ini sangat membutuhkan pemahaman logic yang kuat yang biasanya diperoleh dari pengalaman programming. Dengan Basic atau pascal kita mulai memahami bagaimana membuat software yang secara fungsional benar, tetapi secara visual mengecewakan karena hanya hitam dan putih, walaupun bisa berwarna, umumnya hanya warna 16 bit dan sulit sekali membuat GUI nya. Meskipun begitu, dengan sedikit kerja keras, kita masih bisa membuat user experience yang bagus.

Lebih enak dengan VB, karena kita langsung dihadapkan oleh GUI yang indah. Disinilah biasanya kita pertama kali belajar tentang User Interface dan lebih mendalam ke User Experience. Umumnya user experience yang sangat fatal adalah indexing setiap kontrol yang ada di form. Salah indexing sedikit saja sudah bikin user berkoar-koar. Mendesain GUI juga ternyata tidak bisa sembarangan, terlalu banyak kontrol yang musti diatur bikin user kesulitan, dan terlalu sedikit kontrol juga bikin user merasa softwarenya tidak fleksibel.

Dari sini saja kita sudah bisa tahu kalau menjadi programmer itu selain harus membuat logic yang benar, juga harus benar-benar memperhatikan user. Pada saat yang sama kita harus bisa berada di 2 sisi, sebagai developer dan sebagai user.

Semakin lama kita bikin software, semakin kita terjebak kedalam lingkaran dewa. Form yang tadinya indah pun akhirnya menjadi tampak membosankan bagi user dan akhirnya membuat kita semakin terjepit dengan demand interface yang indah. Disisi lain permintaan akan fleksibilitas, skalabilitas dan kecepatan softwarenya pun semakin tinggi.

Akhirnya kita tahu bahwa manajemen software tidak hanya flowchart, tetapi juga ada ERD, DFD, Wartefall, Prototyping, OOP dan banyak lagi. Celakanya kita harus melakukannya sendiri, menganalis request, menterjemahkannya ke dalam bentuk software manajemen dan menterjemahkannya lagi menjadi kode-kode program.

Bahasa-bahasa pemrograman yang kita miliki tidak lagi mencukupi kebutuhan kita, akhirnya kita harus bisa berbagai macam bahasa pemrograman, dari VB ke C, dari ASP ke Perl, dari Desktop programming ke Web programming, dari standalone software ke collaboration software.

Untuk GUI dan user experience akhirnya kita harus melengkapi keahlian kita dengan desain grafis, animasi (gif, flash), dan multimedia (video and sound).

Selamat, sedikit lagi anda menjadi setengah dewa.

Akhirnya semua sudah dikuasai, tapi eits . . . Software dari luar lebih cantik dan menarik minat si user, dan akhirnya menjadikannya sebagai bahan perbandingan. Damn!

Sialnya biasanya baik si user atau bos kita tidak tahu dan tidak mau tahu kalau software yang bagus itu tidak dikerjakan sendiri, tetapi perlu ada spesialisasi dan fasilitas yang memadai. Tidak mungkin membuat software besar seorang diri dan hanya menggunakan komputer seadanya.

Jadi, sekarang apa syarat menjadi seorang programmer?
  1. Pure Programmer
  2. Matematikawan, sedikit Fisikawan, Statistician, dan dokter
  3. Pembalap, karena harus bisa bikin software dengan cepat dan softwarenya juga harus cepat tapi tidak boleh sampai nabrak dinding error.
  4. Analis
  5. Fotografer
  6. Desain Grafis
  7. Animator
  8. Video Editor
  9. Project Manager
  10. Penyendiri
  11. Suka melamun
  12. Sedikit Gila
  13. Kadang harus gaul
  14. Menjadi manusia setengah Dewa yang bisa melakukan segalanya dengan cepat.

No comments: