Skip To: Content | Sidebar | Footer
Sitemap   

Mengatur Kompleksitas

Coding sebenarnya hanyalah memanage kompleksitas. No more or less.
Apa yang susah dari itu ? Kita hanya perlu secara konsisten untuk :


  1. Menulis code sesuai standard kesepakatan bersama. Tidak mesti camel atau pascal notation, yang penting semua anggota tim mengerti akan code convention. Bahkan jika hanya ada seorang dalam tim.
    Saya pernah bekerja dengan seorang paranoid yang menyimpan sendiri aturan penamaan variabelnya. Secara serampangan variabel dinamai "a", "567", "a45g" dan nama lain yang tidak mungkin dimengerti yang lain. tidak butuh obfuscator lagi memang, tapi bikin temen timnya males berkolaborasi.
  2. Menulis dokumentasi code. Potongan kode tanpa dokumentasi adalah pretty much useless . Programmer lain yang melihatnya akan cenderung berpikir : "Mending saya rewrite daripada baca code orang".
  3. Ciri reusable code adalah (a) Mengerjakan satu task saja (b) Lousely-coupled, tidak bergantung ke code yang lain© Interface yang mudah dimengerti.
    My rule of thumb : "Desain interface dari object / class sesederhana mungkin". Sangat sederhana sampai seluruh member di team dengan level apapun mampu menjelaskan kegunaannya.
  4. Code repository, alias database tempat menyimpan seluruh code. CVS sudah cukup. Dan yang paling penting adalah selalu menjaga version control karena dengan CVS akan berlaku aturan : jika satu potong code berbeda antara yang di tangan programmer dengan yang di CVS, maka yang valid adalah yang di CVS database.
  5. Untuk no 4, kuasai dengan baik tatacara check-in dan check-out.
  6. Deployment database tidak boleh dengan cara mengcopy database atau mengekstrak dari dump. Semua harus dilakukan dengan eksekusi script yang dihasilkan oleh aplikasi designer. Modifikasi schema tidak boleh langsung ke database, semua harus dicatat dan digenerate ulang oleh aplikasi designer.
  7. Meski begitu, kita tidak harus strict untuk code harus mereverse engineering dari UML Tools. No fuckin way.
    Saya risih melihat komen-komen yang berfungsi sebagai tag-mapping dari code ke UML. Bikin sumpek pengaturan kode.
  8. Overdesign is overkill. Gak perlu lah gambar activity diagram untuk proses Login aplikasi retail ecek-ecek. Tapi kalo login untuk peluncuran nuklir yang butuh persetujuan simultan seorang Presiden dan Menteri Pertahanan, .. well, in that case, activity diagram untuk login mutlak diperlukan.
    "Saya pakai Rose, dan sudah 18 bulan ini saya pake Rose saja. Belum coding!"—> Konyol.
    "Saya langsung coding, ngapain pake Sparx EA? Nggak coding-coding ntar"—> Juga Konyol.
    "Saya design, lalu coding, lalu design, diskusi dengan client, design di kertas tisu, coding…"—> xtreme programming !
  9. Bikin "Daftar Fitur". Daftar ini mencatat apa-apa saja yang harusnya dilakukan oleh program. Setiap satu fitur selesai jangan lupa dicentang listnya. Kalo fitur ybs ternyata bug, juga jangan lupa di un-centang.
    Disiplin update daftar fitur, untuk hari depan yang lebih baik dan tidur malam yang lebih layak.
  10. Jangan bergantung kepada tool. Notepad oke, vi boleh, full fledged VS.NET monggo, SharpDevelop asek-asek aja, netBeans ayo.
    Belajar ilmu pedang, jangan terpaku pada pedangnya. Tapi konsen ke ilmu dan chi-nya. Lambat laun kita akan mengerti bahwa ranting kayu juga pedang. Yoko saja punya 4 pedang kan ?
  11. Selalu catat pekerjaan. Mulai dari mana, dan diakhiri dimana pada hari ini. Dengan ini, kerja lebih fokus.
  12. Catat (lagi) semua resources, referensi buku, favorit dokumentasi. Code repository adalah segalanya.
    Kita gak bisa mengingat dimana semua sumberdaya secara simultan dengan mengingat 26 keywords, 120-an framework dan 9000 base class library di saat bersamaan. Just accept the fact that our brain doesnt machine enough.
  13. Kecap selalu no 1. SCP bilang J2EE, MSCD bilang .NET. Semua jualan, semua zealot. Bahkan yang opensource.
    Just, Never fit solution into problems. Ini bukan masalah last man standing, tapi masalah last man speeding. Untuk speeding, you need all possibilities in hand.
    Kalau yang kita punya cuma palu, maka semua masalah akan terasa seperti paku.
  14. 8 jam sehari coding cukup mengubah kita menjadi C3PO atau R2D2. Jangan lupa asah otak kanan setiap hari. Denger/main musik, bikin puisi, blogging.
  15. Nothing, nggenap-in saja. Tuhan suka yang ganjil-ganjil.


No books, no links. Pure experiences. So it’s likely gonna change, depends.

gravatar on
rofiq said :
1

4. SVN sudah jelas lebih baik, salah satu yg kepake 'move' bikin refactoring dari commandline lebih nyaman
5. Kuasai branching merging dan tagging, ini kunci untuk bikin produk yg manageable
13. really funny =))
Leave a comment

Keep it polite and on topic.
Your email address is required, but won't be displayed.

Remember
Textile Help
_emphasis_
*strong*
-deleted text-
@[email protected]
"link text":http://link.url
!http://image.url!
ABC(Always Be Closing)
  this is not Spam.
preview

:

Feb 15, 04:38 PM