[teknologia] Re: Jam waker, Test Driven Development, dan Bug Tracking Software

2005-09-25 Terurut Topik Ikhlasul Amal

On 9/25/05, Pakcik [EMAIL PROTECTED] 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.


Apa iya memang selalu begitu?
Weker atau alarm sering saya aktifkan untuk keperluan sedia payung
sebelum hujan, persiapan sebelum musibah telat bangun datang. Pada
banyak peristiwa saya malah terbangun sebelum jam weker berbunyi, yang
barangkali mengindikasikan rencana bangun tersebut masih tersimpan di
penjadwal bioritmik tubuh.

Kita masih memerlukan alarm, alat pengendali, untuk sebuah manajemen
yang lebih rapi. Sama seperti weker raksasa yang dipasang di barak
tentara tentu tidak dimaksudkan bahwa para serdadu kehilangan kontrol
atas diri mereka, melainkan karena ada sebuah pekerjaan manajemen
(mengelola ribuan serdadu). Jika si serdadu seorang diri atau
sekelompok kecil dilepas bergerilya di hutan, tentu dia/mereka tidak
boleh mengandalkan weker raksasa itu. Dia/mereka harus menyadari
hakekat disiplin, setidaknya atas waktu tersebut.

Pemrogram yang bekerja semata-mata projek agar beres, mungkin juga
menghasilkan program bagus dengan bantuan alat-alat yang kian cerdas.
Pemrogram sejati? Tentu tidak puas dan dia berusaha mencari alasannya.
Kedua kelompok tersebut adalah keniscayaan; masing-masing menjalankan
preferensinya.

--
amal


[teknologia] Re: Jam waker, Test Driven Development, dan Bug Tracking Software

2005-09-25 Terurut Topik Pakcik
On 9/25/05, Ikhlasul Amal [EMAIL PROTECTED] wrote:
Apa iya memang selalu begitu?Weker atau alarm sering saya aktifkan untuk keperluan sedia payung
sebelum hujan, persiapan sebelum musibah telat bangun datang. Padabanyak peristiwa saya malah terbangun sebelum jam weker berbunyi, yangbarangkali mengindikasikan rencana bangun tersebut masih tersimpan di
penjadwal bioritmik tubuh.
Gak selalulah. Dan ini juga subyektif kok, gak ada fakta. Mungkin ada
juga tipe orang yang gak bisa bangun tepat waktu tanpa jam weker dari
awalnya, gak tau.

Teman satu kamarku biasanya pake jam weker. Guess what? Siapa yang
bangun? Aku yang biasanya bangun karna jam weker dia bunyi. Jadi
bisa aja mungkin pake tools, tapi pura2 gak tau kita pake tools, hehe
.. tapi ini susah, karna ini unconscious. 

Ini ada buku bagus untuk belajar tentang conscious dan unconscious.
http://www.amazon.com/exec/obidos/ASIN/0201379376/ref=sib_rdr_dp/103-9115917-0469448?%5Fencoding=UTF8no=283155me=ATVPDKIKX0DERst=books


Trus sejak ada address book di handphone, skrg bisa ingat nomer telpon
gak? kalau aku nomer telpon sendiri juga gak ingat, tapi mungkin ini
gak terlalu penting untuk di control.

Kalau mau fakta, bisa ke polisi lalu lintas. Di Jepang itu kalau ke
polisi lalu lintas ada datanya. Semakin lalu lintas di control dengan
rambu2 yang strict, tingkat kecelakaan semakin meningkat. Tapi kalau
dibandingkan dgn Indonesia, di rata2kan, tingkat kecelakaan di
Indonesia jauh lebih tinggi. Jadi secara rata2, tetap aja yang
managed well lebih bagus.

Tapi untuk kasus programmer, siapa yg butuh rata2? Kalau ada yg
prefer rata2, tool2 yang take control itu mungkin perlu dipakai.
-- Pakcik



[teknologia] Re: Jam waker, Test Driven Development, dan Bug Tracking Software

2005-09-25 Terurut Topik Patriawan, Carlos

 Pemrogram yang bekerja semata-mata projek agar beres, mungkin juga
 menghasilkan program bagus dengan bantuan alat-alat yang kian cerdas.
 Pemrogram sejati? Tentu tidak puas dan dia berusaha mencari alasannya.
 Kedua kelompok tersebut adalah keniscayaan; masing-masing menjalankan
 preferensinya.

pramuka sejati, eeh programer sejati/world-class selalu:
-menuliskan comment di tiap blok codenya maksud dari code tersebut apa
-mengikuti style guide
-membuat API yang bagus
-memikirkan code security dari awal
-memikiran Optimization  dari awal.
-di tiap bug report verification,selalu menulis dengan sangat detail
alasan kenapa bugs bisa sampai terjadi
-punya sw design docs yg detail.
-minimum spaghetti code
-menggunakan segala macam tools karena sadar kemampuan manusia limited.
-seperti kata quote diatas gak pernah cepat puas dan selalu mikirin
enhancement.

Anyway sedikit comments,inovasi sering muncul dari programer atau
group of programer
yang gak pernah puas dan punya habit untuk invent sesuatu.

Di valley, programer2 seperti ini yang biasanya kemudian grouping dan
kemudian start startup company untuk bikin produk yang challenge
produk dari persh yang sudah exist sebelumnya(biasanya malah
ex-pershnya sendiri).

Kalau dianalisa,di tiap2 sektor IT selalu ada produk A vs B,padahal 5
atau 10 tahun yang lalu cuman ada si A saja. Sekarang B muncul sebagai
kompetisi karena dulunya dimulai dari programer2 sejati yg ndak pernah
puas ...

Carlos


[teknologia] Re: Jam waker, Test Driven Development, dan Bug Tracking Software

2005-09-25 Terurut Topik Samuel Franklyn


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.