Budi Rahardjo: Teori dan Praktek dalam Pengembangan Software

Teori dan Praktek dalam Pengembangan Software



Jika kita rajin membaca jurnal, buku, dan tentu saja situs web, maka kita akan mendapati banyak artikel yang membahas mengenai teori dan metodologi pengembangan software. Ada banyak tulisan klasik (seperti buku Fred Brooks, “The Mythical Man-Month: Essays on Software Engineering”) ataupun metodologi-metodologi baru (seperti extreem programming dan agile methodology).

Anda dapat mulai memahami extreem programming dari www.extremeprogramming.org dan agile methodology dari agilemanifesto.org. Metodologi-metodologi baru lainnya dapat Anda pelajari dari www.martinfowler.com/articles/newMethodology.html. Menurut Martin Fowler, open source merupakan salah satu metodologi baru.

Namun, jika kita lihat individu, perusahaan, atau organisasi yang mengembangkan software, nampaknya sebagian besar dari mereka tidak menggunakan teori atau metodologi yang dituliskan tersebut. Mengapa demikian? Apakah metodologi tersebut terlalu teoritis sehingga tidak dapat digunakan? Padahal semestinya teori tersebut sangat bermanfaat untuk menghasilkan software yang berkualitas baik dengan tepat waktu. Ataukah para pengembang software ini yang malas dan tidak peduli?

Hasil pengamatan saya yang dilakukan secara informal menunjukkan beberapa hal. Pertama, banyak pengembang software yang tidak tahu ada metodologi untuk pengembangan software. Banyak yang mulai mengembangkan software dari coba-coba dan kemudian terjun ke bisnis. Mereka menganggap bahwa pengembangan software hanya sebatas melakukan pengkodean (coding). Padahal, sesungguhnya banyak hal lain di luar sekedar pengkodean saja dalam pengembangan software.

Kedua, setelah sibuk dengan pekerjaan atau proyek, mereka tidak sempat lagi untuk membaca teori. Waktu mereka sebagian besar dihabiskan untuk “memadamkan api”, yaitu menangani masalah (bugs) dan memberikan hasil pengembangan kepada pemesan software tersebut. Ada juga kisah para programmer yang ingin mencoba menerapkan metodologi tertentu, namun tidak diberi kesempatan oleh manajer yang mengepalai pengembangan software tersebut. Seringkali manager ini juga tidak memiliki latar belakang (teori) pengembangan software. Mereka kebanyakan berasal dari dunia bisnis yang berbeda sehingga kurang menghargai metodologi pengembangan software. Mereka lebih percaya bahwa mengirimkan produk yang cepat – dengan apa pun caranya – lebih baik daripada mengembangkan software dengan cara yang benar. Mereka tidak sadar bahwa cara ini akan menuai masalah di kemudian hari. Memperbaiki masalah pada software yang sudah terpasang jauh lebih mahal daripada memperbaikinya ketika sedang dalam taraf pengembangan.

Masalah lain adalah ketidaktahuan tempat untuk mencari sumber referensi. Sebetulnya banyak sumber referensi yang bagus. Saya sendiri berlangganan majalah “IEEE Software” yang banyak membahas masalah teori dan praktis. Di sisi web, situs milik Joel Spolsky yang benama “Joel On Software” (www.joelonsoftware.com) juga menarik untuk dibaca. Oh ya, situs ini juga memiliki terjemahan dalam Bahasa Indonesia. Mungkin ketidaktahuan sumber referensi ini bisa dipecahkan melalui mailing list atau situs web yang membahas masalah pengembangan software.

Namun di sisi lain, meskipun tidak terlalu banyak, saya juga melihat ada pengembang software yang terlalu banyak berteori dan tidak menghasilkan produk yang dapat digunakan oleh publik. Mereka merasa lebih hebat bak dewa, sehingga tidak merasa perlu untuk turun ke bumi. Kebanyakan hal ini ditemui di lingkungan perguruan tinggi. Ah, saya pun berasal dari perguruan tinggi. Mungkin artikel ini pun terlalu teoritis untuk para praktisi pengembang software?

Masalah teori dan praktek ini tentunya bukan masalah yang khusus terjadi di Indonesia saja. Ini adalah masalah yang terjadi di seluruh dunia. Organisasi pengembang software besar di luar negeri pun mengalami masalah yang sama. Ini bukan berarti sebuah pembenaran, akan tetapi ini merupakan sebuah peluang bagi anda untuk mengalahkan pengembang software besar tersebut. Maukah dan sanggupkah anda?

Membuat keseimbangan antara teori dan praktek merupakan sebuah hal yang tidak mudah. Jika anda dapat melakukannya, kemungkinan besar anda akan sukses di dunia pengembangan software.





Artikel ini datang dari InfoLINUX
http://www.infolinux.web.id/site

URL cerita ini adalah:
http://www.infolinux.web.id/site/sections.php?artid=119