Subversion untuk menulis lagu? Juli 2, 2007
Posted by huzz in Manajemen IT, Open Source, Teknologi Informasi.trackback
Sedikit kilas balik, saya membutuhkan alat bantu software versioning yang open source untuk mengatur kolaborasi antar programmer dan berbagi kode sumber. Menurut riwayat, ada 3 teknik software versioning yang telah dikembangkan para programmer di dunia :
1. File Sharing
Ini teknik paling sederhana. Cara kerja : siapkan satu repository (pusat penyimpanan file) dan beri hak akses ke semua programmer. Dah kebayang bahaya teknik ini? Yep, kemungkinan untuk saling menimpa kerjaan orang lain SANGAT BESAR. Males banget kan, dah cape2 coding trus ketimpa… Seperti ini nih ilustrasinya :
2. Lock-Modify-Unlock
Di teknik ini, kelemahan teknik File Sharing dapat diatasi. Prinsipnya, hanya ada satu orang di suatu waktu yang dapat mengubah file tertentu dari repository. Caranya dengan menyediakan “kunci” bagi setiap file. Jika Anda hendak mengubah file tertentu, Anda harus “menguncinya” dahulu sehingga orang lain tidak mungkin dapat mengubah file yang sama. Setelah selesai, Anda harus “melepas kunci” file tersebut sehingga orang lain dapat mengubah file itu. Kelihatannya OK, tapi coba bayangkan beberapa skenario berikut :
- bagaimana jika seorang programmer mengubah satu file (“mengunci” file), tapi lupa (cuti atau keburu pindah kerja) mengembalikan file yang di-ubah ke repository. Tidak ada satu orang pun yang bisa akses file itu. Jelas tidak produktif
- bagaimana jika programmer A hanya butuh mengedit kode sumber di bagian awal file, sedangkan programmer B ingin mengedit kode sumber di bagian akhir.Jika dikerjakan berbarengan, dijamin tidak akan overlap, which is good productivity. Di teknik ini, programmer B harus menunggu A sampei selesai. Jelas buang2 waktu.
3. Copy-Modify-Merge
Teknik ini umum dipakai di kalangan open source (Subversion, CVS). Teknik ini membutuhkan repository dan local copy. Repository ini bisa berbentuk folder biasa atau menggunakan database. Programmer bekerja di komputer-nya masing-masing (local copy). Nah, hasil kerjaannya harus di-upload untuk kemudian di-sinkronisasi-kan sedemikian rupa di dalam repository itu. Perhatikan ilustrasi berikut :
Di teknik ini, setiap perubahan pada file dicatat dan diberi kode tertentu. Manfaatnya : Anda dapat melihat kondisi software tiap saat, contoh :
- tolong tampilkan kondisi file ini seminggu yang lalu!
- tolong tampilkan kondisi file sebelum di ubah oleh si Anu!
- tolong tampilkan apa aja yang telah dikerjakan si Anu dari 3 hari yang lalu?
- tolong tampilkan siapa saja yang sedang mengerjakan file ini?
- tolong tampilkan perubahan apa saja dari software Anda dari versi 1 ke versi 2?
Mirip mesin waktu! Anda dapat kembali ke “situasi” masa lalu sesuka Anda. Setelah googling kesana-kemari tentang CVS, akhirnya diputuskan untuk TIDAK menggunakan CVS, saya sekarang menggunakan Subversion. Alasannya : terasa lebih praktis. Jika Anda menggunakan sourceforge untuk menyimpan proyek opensource, jangan khawatir, baik CVS maupun Subversion tersedia.
Walaupun telah mengunakan software versioning Anda tetap harus melakukan : (1) menjalin komunikasi yang baik antar programmer, terutama ketika ada pekerjaaan yang saling overlap (2) melakukan perencanaan / project management untuk mengalokasikan siapa mengerjakan apa dan harus selesai kapan.
Yang menarik : ternyata teknik software versioning juga bisa digunakan untuk pekerjaan kreatif selain membuat software, terutama yang berbasis teks. Bayangkan penggunaan software versioning untuk :
- membuat naskah film/iklan
- membuat novel
- membuat puisi (secara kolaboratif? aneh…)
- mengarang lagu
- bikin proposal penawaran
- membuat UU / Perda
- ngerjain tugas kuliah (Illegal!!)
- …. (ada ide lain? tulis comment aja..hehe)
Mau belajar Subversion? Download buku Tutorial Subversion disini : svn-book.pdf



Software versioning ternyata ampuh untuk segala gaya kreasi, luar biasa baru tahu saya, makasih ya