Pakcik wrote:

lanjutan tentang test driven dan bug tracking software:

Pas sebelum punya jam waker, mau bangun jam berapa juga bisa. Jam 4 pagi bisa, jam 3 pagi bisa. Badan juga biasa2 aja.

Trus beli jam waker. Set misalnya jam 4 pagi. Hari pertama bangun. Tapi makin lama makin bermasalah. Ketika jamnya bunyi, setengah sadar kita matikan jamnya. Mulai telat bangun. Badan juga mulai gak enak.

Apa sebenarnya yang terjadi? CONTROL yg sebelumnya kita yg punya, sekarang kita lepaskan dan kasih ke jam waker. Jam waker sekarang yang pegang CONTROL. Badan juga jadi gak enak, karna kita emang belum siap bangun, tapi jam waker maksa bangun.

Kita kehilangan CONTROL dan badan jadi gak enak, jadi jangan beli jam waker. :) sorry buat penjual jam waker. hehe


Apa hubungannya sama test driven development dan bug tracking software?

Pertama tulis testnya, tulis codenya, abis itu refactor. Kalau lewat semua test list, berarti OK. Lanjutkan cycle itu.

Trus di bug tracking software, kumpulkan semua bug2 yang ada. Kalau semua bug solved, berarti OK.

Apa yang terjadi? CONTROL pelan2 di serah terimakan ke tool2 ini. Tool2 ini yang akan menentukan apakah software kita OK apa NGGAK OK. Kalau lewat semua test, berarti OK. Kalau semua bug solved, berarti OK. Mirip jam waker, jam waker yang berkuasa menentukan kita udah boleh bangun apa nggak.

Udah kehilangan CONTROL, penyakit lain muncul. Mulai tulis test seadanya, bug juga yang penting ilang dari list. Nggak perlu ngerti kenapa itu ilang. You just started bug development cycle.

Ini sih bukan masalah pakai tools atau tidak.
Ini masalah karakter dari developer dan penegakan disiplin.
Untuk membangun aplikasi skala besar dari pengalaman
saya sangat dibutuhkan karakter developer yang tekun dan teliti.
Karena pembuatan aplikasi kalau sudah skalanya besar
(lebih dari 6 bulan) maka developernya umumnya akan terkena
penyakit bosan.

Nah karakter dasar dari si developer itu akan
menentukan apakah dia akan bertekun atau dia akan
menyerah pada rasa bosan nya dan menghasilkan karya asal-asalan.

Cara produktif mengatasi rasa bosan ini ada beberapa:
1. Kurangi waktu untuk develop aplikasi dan
luangkan waktu belajar teknologi dan tools baru.
Ini memang tidak bagus dari segi produktivitas
tapi daripada developernya menghasilkan karya buruk
maka lebih baik dia investasi waktu untuk sesuatu
yang besar kemungkinan akan menghasilkan peningkatan produktivitas
di masa yang akan datang.
2. Rotasikan developer ke pekerjaan lain dalam
team: membangun dokumentasi, membuat unit test, dll.


Kalau bug tracking software dipakai untuk nyimpan list bug2 dari code yang ditulis pihak lain, ok. Seperti kasus ListView yg di tulis Ariya. Kalau bug tracking dipakai untuk alat komunikasi, ok. issue tracking, ok. Tapi bukan untuk nyimpan bug2 dari code yang kita tulis sendiri.

Kalau ada sesuatu yang aneh dengan code yang kita tulis, asumsi pertama adalah masalah di API yg ditulis pihak lain, bukan di code kita.

Ini masalah dengan Google, Java, dan tool2 itu. Tapi terkadang ada sesuatu yang gak perlu kita CONTROL. Misalnya nomer telepon. Kita gak perlu harus ingat semua nomer telpon kan? Nomer HP sendiri juga aku gak ingat. :) Buat kasus2 ini menurutku gak apa2 pake tool. Tapi buat "playboy kabel" nomer telpon itu sangat penting. Jadi jangan mengandalkan tool kalau kasusnya begini. hehe :)

Gimana caranya untuk tetap punya CONTROL ini? yang masih kepikir itu adalah gontok2an. Tulis dokument detail. Keep using your own code (reusable). Trus pake kertas dan pensil. Coba nulis program di kertas, jangan pake computer, tanpa reference (GOOGLE), akan kelihatan seberapa besar kita dikendalikan sama computer dan google.

Enaknya pake kertas, kalau lagi mobile, gak perlu sok sibuk bawa2 laptop. Gak perlu cari2 internet. You control it yourself.


Tools tidak bisa memecahkan masalah karakter dan manajemen.
Kendali adalah masalah manajemen dan bukan masalah tools.
Pakai low-tech, pakai high-tech tidak ada gunanya kalau
masalahnya adalah masalah orangnya. Karena itu pembuatan
aplikasi skala besar yang paling berat adalah
masalah orang dan manajemen bukan teknologi dan tools.

Buku menarik yang pernah saya baca mengenai hal ini adalah
"Peopleware" Tom DeMarco & Timothy Lister dan
"Agile Software Development" Alistair Cockburn.

Kirim email ke