On 9/18/05, Pakcik <[EMAIL PROTECTED]> wrote: > Jadi udah sekitar 2 bulan developmentnya. Tapi even 1 line code pun belum > ada. Kita bekerja 2 orang. Jadi apa yg kita lakukan selama ini? Kita itu > "gontok2an" dalam arti positif. Diskusi. Write it down on paper. Aku emang > sengaja pilih cara ini. Gak mau coding sebelum semua jelas banget (detail). > Tapi ada yg berpendapat, kalau begini terus kapan Codingnya? Hasilnya > menurutku bagus. Apa hasilnya: > 1. Roadmap. paling susah dapet roadmap ini. Tau versi 1.0 itu feature apa > aja, versi 2.0 itu apa. dan seterusnya. Ini menuntut design scalable. > 2. Functional spec dan technical spec. (Baca joel on software untuk tau > bedanya). > 3. Layering Architecture . (Kita itu udah bisa ngomong kita lagi bicarakan > layer 1 kan?) >
Jadi ingat kata dosen saya dulu : Semakin cepat kamu menyentuh komputer (meninggalkan kertas dan pensil), semakin lama programmu akan selesai. Nilai yang saya dapatkan dari TDD selama ini (mungkin hampir sama dengan yang ditulis om Pakcik) : 1. It helps me defining the contract. Saya penggemar konsep design by contract (yg populer pada jaman keemasan smalltalk). Kadang-kadang menurunkan kontrak dari hasil requirement analysis itu bukan hal yang mudah. 2. It gives me safety net for my code. Maintainability (kemudahan untuk mengubah desain / kode) adalah salah satu hal yang krusial dalam s/w development. Kalo ngubah kode / refaktor dan udah punya seperangkat tes, hidup saya akan lebih mudah. Tinggal jalanin dan liat lampu merah ato ijo yg nyala. 3. It helps me choosing the right granularity for my objects. Dulu saya susah menentukan batas tanggung jawab suatu kelas, hubungannya dengan collaborator (dependencies), dan masa hidupnya. Waktu pakai TDD, nggak tahu kenapa feeling2 semacam "wah, ini kurang kecil" atau "jago banget sih kelas ini, apa2 dikerjain sama dia" jadi muncul. Lama2 intuisi2 semacam ini semakin menajam dan menjadi senjata utama waktu fase desain (walaupun tidak menggunakan TDD sekalipun). > Yang paling penting itu yg aku temukan, bahwa aku bukan "jenius". Butuh > orang lain untuk argue designku. Sering kejadian begini, "Kok gak kepikir > yah, iya juga yah". Padahal peerku itu cuman kuliah IT 1 tahun dan udah 2 > tahun gak pernah ber-IT ria lagi. Sekurang2 pengalamannya peer kita, kalau > diajak gontok2an(diskusi), sangat membantu. Kalo nilai dari pair programming yang saya dapat (saya pernah melakukannya sebentar saja, karena terbentur alasan klasik <- penggunaan SDM kurang optimal) : 1. Feedback / review yang cepet datang. 2. Ada yang melihat kerjaan kita secara higher level, sekaligus bertindak sebagai navigator kalo di reli. 3. Ilmu cepat menyebar. 4. Kalo ada programmer yang cabut, meneruskan pekerjaannya tidak susah. 5. Mengendalikan ego saya. Yak, itulah sekilas cerita dari seorang programmer jalanan. Hehe. -- Demi masa..
