Pengalaman adalah guru terbak. Setidaknya konsep
seperti itu lah yang dapat diajdikan peduan dalam pengembangan software.
Semakin berpengalaman suatu tim maka akan semakin presisi dalam melakukan
estimasi biaya, waktu, dan sumber daya yang dibutuhkan. Hal tersebut
berimplikasi pada sebuah software itu sendiri. Sebagai contoh, Perbandingan
Windows7 dengan Windows versi sebelumnya, dan perbandingan
Ubuntu 10.10 dengan Ubuntu versi sebelumnya. Maka sebuah makna yang jelas dari
sebuah software adalah ‘Software yang berkembang adalah software yang
berevolusi untuk menjadi lebih baik.
Sebuah analogi dari perkembangan software yang paling mudah dipahami adalah
membuat sebuah rumah. Dalam membangun sebuah rumah perlu dikembangkan sedikit
demi sedikit. Dimulai dari akusisi tanah, pembuatan denah, pengembangan pondasi
dll. Ketika sebuah rumah sudah selesai dibangun, rumah tersebut masih bisa
untuk dimodifikasi(diperbaiki, diperluas, dikurangi beberapa bagiannya untuk
menjadi halaman) sesuai kebutuhan. Begitu pula dengan software, Evolusi adalah hal yang mutlak. Pertanyaan tersulit
untuk dijawab adalah “Kapan software yang anda kembangkan akan selesai dan
tanpa bug?”. Software yang memenuhi kepuasan user tanpa bug harus
memenuhi berbagai macam standar t pengujian yang mencukupi. Pengujian yang
matanf dan nilai kepuasan adalah suatu hal yang bersifat relatif dan kualitatif.
Pengalaman pengembang software pada umumnya berimplikasi pada kemampuan tim,
tim yang berpengalaman akan:
- Memiliki suatu pandangan yang luas tentang pemilihan teknologi, proses, dan perangkat bantu yang dibutuhkan.
- Produktifitas tim akan tinggi karena tim sudah memahami apa yang harus dilakukan sehingga software tersebut masuk ketahap rilis.
- Presisi dalam melakukan estimasi sumber daya, biaya, waktu, yang dibutuhkan.
- Mampu mengidentifikasi aspek resiko secara lebih baik termasuk mampu menghindari kesalahan secara teknis maupun non teknis.
Secara sederhana jawaban atas pertanyaan “Kapan software yang anda
kembangkan akan selesai dan tanpa bug?” ialah:
- Software adalah suatu yang bersifat continuous improvement
(kaizen) titik selesainya suatu pengembangan software dapat dikatakan
infinite. Hal yang mungkin dilakukan untuk memenuhi suatu software
yang menyepakati suatu milestone atau suatu titik yang disepakati bersama
dengan client adalah kesepakatan tersebut harus menjamin bahwa software yang
diserahkan untuk selanjutnya digunakan oleh user sudah teruji dan memenuhi
kebutuhan yang disepakati dalam tahap tersebut-
Ref: Global Extreme
Programming;Dr.Ridi Ferdiana,MCTS,MCPD,MCITP,MCT