fullpaper15_widodo

4
e-Indonesia Initiative 2008 (eII2008) Konferensi dan Temu Nasional Teknologi Informasi dan Komunikasi untuk Indonesia 21-23 Mei 2008, Jakarta 1 Extreme Programming : Pengembangan Perangkat Lunak Semi Formal Widodo Jurusan Teknik Elektro – Fakultas Teknik Universitas Negeri Jakarta [email protected] Abstraksi Pengembangan perangkat lunak merupakan salah satu bagian yang sangat penting dari pengembangan Teknologi Informasi secara keseluruhan. Teknologi Informasi yang semakin kokoh menancapkan fungsi-fungsinya dalam berbagai aspek saat ini sangat bervariasi dalam pengimplementasian perangkat lunaknya. Untuk mendukung hal tersebut, paradigma atau metodologi pengembangan perangkat lunak pun menjadi semakin pesat perkembangannya. Perkembangan metodologi tersebut berjalan sesuai dengan perkembangan tingkat kebutuhan akan perangkat lunak sebagai unsur yang penting dalam teknologi informasi. Metodologi pengembangan perangkat lunak berawal dengan model waterfall yang sangat linear dan sekuensial, hingga unified process yang merupakan metodologi pengembangan untuk sistem berorientasi objek. Semua metodologi tersebut masih memiliki kelemahan mendasar yaitu masih kurang bisa mengatasi perubahan requirements yang begitu cepat dari pihak user. Hal ini kemudian mendorong berkembangnya metodologi yang terkenal dengan sebutan Agile Methods. Salah satu agile methods yang sangat populer ialah extreme programming (XP). XP bahkan bisa digolongkan ke dalam metodologi pengembangan perangkat lunak yang semi formal karena berbagai practice-nya yang sangat fleksibel. Makalah ini akan mencoba memaparkan bagaimana berbagai practice XP tersebut diterapkan dalam pengembangan perangkat lunak sehingga fleksibilitasnya bisa menjadikan XP sebagai metodologi yang semi formal. Kata Kunci : eXtreme Programming, Agile Methods, metodologi semi formal 1. PENDAHULUAN Perkembangan teknologi informasi yang pesat membawa pengaruh yang sangat berarti pada kehidupan manusia dewasa ini. Teknologi informasi memiliki berbagai unsur yang membangunnya menjadi kesatuan yang kokoh. Salah satu unsur teknologi informasi adalah perangkat lunak. Perangkat lunak merupakan kumpulan objek yang membentuk konfigurasi yang dapat berupa program, dokumen, atau data. Perangkat lunak adalah sesuatu yang dikembangkan, bukan dibuat secara pabrikan seperti perangkat keras. Pengembangan perangkat lunak memerlukan langkah-langkah yang tepat, efektif dan efisien untuk menjamin terpenuhinya kebutuhan user. Untuk itulah berkembang berbagai metodologi pengembangan perangkat lunak. Sebelum era 2000-an kita mengenal metodologi waterfall, spiral model, Rapid Application Development, dan masih banyak beberapa lainnya. Semua metodologi tersebut merupakan metodologi yang formal, dalam arti seluruhnya berjalan mengikuti aturan-aturan baku yang telah ditetapkan. Pada era 2000-an mulai berkembang metodologi baru yang sangat fleksibel, yaitu Agile Methods. Agile Methods dikembangkan karena pada metodologi tradisional terdapat banyak hal yang membuat proses pengembangan tidak dapat berhasil dengan baik sesuai tuntutan user. Saat ini metodologi ini sudah cukup banyak berkembang, di antaranya adalah : eXtreme Programming (XP) Scrum Methodology Crystal Family Dynamic Systems Development Method (DSDM) Adaptive Software Development (ASD) Feature Driven Development (FDD) Pada makalah ini hanya eXtreme Programming yang akan dibahas, karena metodologi ini sangat populer. Disamping itu jika dilihat dari tingkat keformalannya, yang akan dibahas pada bagian berikutnya, XP merupakan metodologi yang paling kecil tingkat keformalannya. 2. PEMBAHASAN 2.1 Sekilas eXtreme Programming eXtreme Programming (XP) merupakan agile methods yang paling populer saat ini. XP digunakan untuk mengatasi masalah requirements yang tidak jelas dan sering berubah-ubah (vague and volatile requirements). XP berjalan berdasarkan 4 values. Keempat values tersebut adalah communication, simplicity, feedback, dan courage. XP menjadi begitu populer sejak diperkenalkan oleh Kent Beck menjadi sebuah metodologi untuk

Transcript of fullpaper15_widodo

Page 1: fullpaper15_widodo

e-Indonesia Initiative 2008 (eII2008) Konferensi dan Temu Nasional Teknologi Informasi dan Komunikasi untuk Indonesia 21-23 Mei 2008, Jakarta

1

Extreme Programming : Pengembangan Perangkat Lunak Semi Formal

Widodo

Jurusan Teknik Elektro – Fakultas Teknik Universitas Negeri Jakarta

[email protected]

Abstraksi

Pengembangan perangkat lunak merupakan salah satu bagian yang sangat penting dari pengembangan Teknologi Informasi secara keseluruhan. Teknologi Informasi yang semakin kokoh menancapkan fungsi-fungsinya dalam berbagai aspek saat ini sangat bervariasi dalam pengimplementasian perangkat lunaknya. Untuk mendukung hal tersebut, paradigma atau metodologi pengembangan perangkat lunak pun menjadi semakin pesat perkembangannya. Perkembangan metodologi tersebut berjalan sesuai dengan perkembangan tingkat kebutuhan akan perangkat lunak sebagai unsur yang penting dalam teknologi informasi. Metodologi pengembangan perangkat lunak berawal dengan model waterfall yang sangat linear dan sekuensial, hingga unified process yang merupakan metodologi pengembangan untuk sistem berorientasi objek. Semua metodologi tersebut masih memiliki kelemahan mendasar yaitu masih kurang bisa mengatasi perubahan requirements yang begitu cepat dari pihak user. Hal ini kemudian mendorong berkembangnya metodologi yang terkenal dengan sebutan Agile Methods. Salah satu agile methods yang sangat populer ialah extreme programming (XP). XP bahkan bisa digolongkan ke dalam metodologi pengembangan perangkat lunak yang semi formal karena berbagai practice-nya yang sangat fleksibel. Makalah ini akan mencoba memaparkan bagaimana berbagai practice XP tersebut diterapkan dalam pengembangan perangkat lunak sehingga fleksibilitasnya bisa menjadikan XP sebagai metodologi yang semi formal.

Kata Kunci : eXtreme Programming, Agile Methods, metodologi semi formal 1. PENDAHULUAN Perkembangan teknologi informasi yang pesat membawa pengaruh yang sangat berarti pada kehidupan manusia dewasa ini. Teknologi informasi memiliki berbagai unsur yang membangunnya menjadi kesatuan yang kokoh. Salah satu unsur teknologi informasi adalah perangkat lunak. Perangkat lunak merupakan kumpulan objek yang membentuk konfigurasi yang dapat berupa program, dokumen, atau data. Perangkat lunak adalah sesuatu yang dikembangkan, bukan dibuat secara pabrikan seperti perangkat keras. Pengembangan perangkat lunak memerlukan langkah-langkah yang tepat, efektif dan efisien untuk menjamin terpenuhinya kebutuhan user. Untuk itulah berkembang berbagai metodologi pengembangan perangkat lunak. Sebelum era 2000-an kita mengenal metodologi waterfall, spiral model, Rapid Application Development, dan masih banyak beberapa lainnya. Semua metodologi tersebut merupakan metodologi yang formal, dalam arti seluruhnya berjalan mengikuti aturan-aturan baku yang telah ditetapkan.

Pada era 2000-an mulai berkembang metodologi baru yang sangat fleksibel, yaitu Agile Methods. Agile Methods dikembangkan karena pada metodologi tradisional terdapat banyak hal yang membuat proses pengembangan tidak dapat berhasil dengan baik sesuai

tuntutan user. Saat ini metodologi ini sudah cukup banyak berkembang, di antaranya adalah :

eXtreme Programming (XP) Scrum Methodology Crystal Family Dynamic Systems Development Method (DSDM) Adaptive Software Development (ASD) Feature Driven Development (FDD)

Pada makalah ini hanya eXtreme Programming yang akan dibahas, karena metodologi ini sangat populer. Disamping itu jika dilihat dari tingkat keformalannya, yang akan dibahas pada bagian berikutnya, XP merupakan metodologi yang paling kecil tingkat keformalannya. 2. PEMBAHASAN 2.1 Sekilas eXtreme Programming eXtreme Programming (XP) merupakan agile methods yang paling populer saat ini. XP digunakan untuk mengatasi masalah requirements yang tidak jelas dan sering berubah-ubah (vague and volatile requirements). XP berjalan berdasarkan 4 values. Keempat values tersebut adalah communication, simplicity, feedback, dan courage. XP menjadi begitu populer sejak diperkenalkan oleh Kent Beck menjadi sebuah metodologi untuk

Page 2: fullpaper15_widodo

e-Indonesia Initiative 2008 (eII2008) Konferensi dan Temu Nasional Teknologi Informasi dan Komunikasi untuk Indonesia 21-23 Mei 2008, Jakarta

2

pengembangan perangkat lunak. XP dimunculkan untuk menangani perubahan-perubahan yang biasanya sering terjadi pada saat pengembangan berlangsung bahkan pada saat proses pengembangan sudah hampir berakhir. Selain itu XP juga dimunculkan untuk mengatasi berbagai requirements yang tidak jelasdari user.

Sebagai sebuah metodologi untuk mengembangkan peragkat lunak XP tentu memiliki siklus hidup. Siklus hidup pada XP ini terdapat lima fase yaitu [1] : 1. Exploration Phase 2. Planning Phase 3. Iteration to Release Phase 4. Productionizing Phase 5. Maintenance Phase 6. Death Phase

Gambar 1. Siklus hidup eXtreme Programming

Selain itu XP memiliki 12 practice yang sangat mencirikan ke-ekstremannya. Meskipun para developer mungkin memiliki practices yang berbeda namun secara mendasar XP memiliki 12 practices utama yaitu: 1 Planning Game 7 Pair Programming 2 Small Releases 8 Collective Ownership 3 Metaphor 9 Continuous Integration 4 Simple Design 10 40-hour week 5 Testing 11 On-site Customer 6 Refactoring 12 Coding Standard Planning game merupakan practice yang digunakan untuk melakukan perencanaan dan melakukan prioritas terhadap fitur-fitur yang dituliskan pada index card oleh customer. Small releases, rilis yang dihasilkan untuk setiap iterasi sangat pendek dan dengan umpan balik terhadap perubahan dari customer juga sangat cepat. Metaphor adalah semacam simple guidance bagi proses pengembangan dari fase paling awal hingga terakhir. Simple design merupakan rancangan yang sederhana untuk di-deliver pada setiap iterasi. Testing yang dilakukan adalah setiap saat bahkan terdapat testing diawal. Refactoring adalah proses untuk memperbaiki code selain untuk menghindari berbagai redundansi yang mungkin terjadi. Pair programming menjadi practice yang tidak terdapat pada agie methods yang lain. Pair programming adalah proses pengembangan dengan memprogram di satu mesin komputer yang dilakukan oleh dua orang programmer. Collective ownership adalah

keadaan di mana semua anggota tim harus dapat menanggulangi semua hal yang berkaitan dengan proses pengembangan. Continuous integration bahwa proses pengembangan setiap hari bahkan setiap saat terdapat perubahan harus segera diintegrasikan. 40-hour week adalah jumlah jam kerja selama satu minggu. Hal ini sebenarnya tidak mutlak 40 jam, namun intinya adalah bahwa proses pengembangan tidak mengenal lembur, semua harus diselesaikan pada saat jam kerja. Semua masalah dan pekerjaan harus dioptimalkan pada waktu jam kerja tersebut. On-site customer, merupakan salah satu keunggulan bagi metodologi ini karena XP memerlukan satu orang dari pihak bisnis yang akan dibawa dalam proses pengembangan dari awal sampai berakhir. Hal ini akan cepat dalam mengatasi berbagai requirements yang mungkin akan berubah atau bertambah, namun akan mengurangi produktivitas pada pihak bisnis. Coding Standard adalah men-standarkan proses coding bagi programmer terutama karena hal ini berkaitan dengan practice pair programming. 2.2 Dokumentasi Salah satu perbedaan XP dengan metodologi lainnya adalah XP tidak memiliki dokumentasi formal yang dibuat selama pengembangan. Satu-satunya dokumentasi adalah dokumentasi awal yang dilakukan oleh user. Dokumentasi tersebut berupa user stories yang ditulis manual pada sebuah index card. User stories ini menggambarkan fitur-fitur yang merupakan requirements dari user yang diharapkan dapat diselesaikan menjadi fungsi-fungsi pada perangkat lunak yang dibangun. Dokumentasi awal yang dinyatakan oleh user pada index card tersebut juga tidak memiliki umur yang lama. Jika satu story yang ditulis oleh user telah berhasil diimplementasikan menjadi fungsi oleh programmer, maka user stories tersebut segera dibuang. Ini adalah konsep dasar dari XP yang sangat minimum dokumentasi. Hal ini dilakukan untuk menjaga ke-agile-an metodologi ini, karena jika terlalu banyak dokumentasi (formal), maka sebuah metodologi pengembangan perangkat lunak tidak lagi dapat diklasifikasikan ke dalam agile methods. Setiap perubahan atau penambahan fungsi maupun fitur-fitur dapat disampaikan langsung oleh onsite customer tanpa harus membuat surat resmi yang menyatakan permintaan penambahan dan perubahan. Pihak pengembang juga dapat merespon seketika tanpa harus membuat pernyataan resmi, saat itu juga sesuai dengan practice collective ownership, meskipun programmer mungkin sedang tidak berada di tempat (istirahat), maka perubahan atau penambahan terhadap fungsi dalam code program dapat dilakukan oleh siapapun yang siap. Sebenarnya dokumentasi XP tersebut merupakan kelemahan bagi metodologi ini. Penulis pernah mengusulkan dalam [6] untuk memperbaiki model pengembangan dengan menambahkan satu fase yang

Exploration

Planning

Iteration to Release

Productionizing

Maintenance

Death

Page 3: fullpaper15_widodo

e-Indonesia Initiative 2008 (eII2008) Konferensi dan Temu Nasional Teknologi Informasi dan Komunikasi untuk Indonesia 21-23 Mei 2008, Jakarta

3

disebut requirements management phase. Fase ini tidak akan mengeluarkan metodologi ini dari agile methods karena hanya menambahkan sedikit dokumentasi yang tidak berat. Atau alternatif lain dari penulis adalah mengkombinasikan dengan Unified Process menjadi Enhanced XP [7]. Terlepas dari semua hal tersebut, XP menjadi sebuah metodologi yang semi formal karena semua dilakukan dengan practice yang sederhana. Semua ini karena XP mengacu pada proses pengembangan agile methods yang memiliki prinsip-prinsip kesederhanaan. 2.3 Prinsip Agility pada XP yang mengacu

pada Agile Methods

Agile Alliance mendefinisikan 12 prinsip untuk mencapai proses yang termasuk dalam agility: 1. Prioritas tertinggi adalah memuaskan pelanggan

melalui penyerahan awal dan berkelanjutan perangkat lunak yang bernilai.

2. Menerima perubahan requirements meskipun perubahan tersebut diminta pada akhir pengembangan.

3. Memberikan perangkat lunak yang sedang dikerjakan dengan sering, beberapa minggu atau beberapa bulan, dengan pilihan waktu yang paling singkat.

4. Pihak bisnis dan pengembang harus bekerja sama setiap hari selama pengembangan berjalan.

5. Bangun proyek dengan individu-individu yang bermotivasi tinggi dengan memberikan lingkungan dan dukungan yang diperlukan, dan mempercayai mereka sepenuhnya untuk menyelesaikan pekerjaannya.

6. Metode yang paling efektif dan efisien dalam menyampaikan informasi kepada tim pengembangan adalah dengan komunikasi langsung face-to-face.

7. Perangkat lunak yang dikerjakan merupakan pengukur utama kemajuan.

8. Proses agile memberikan proses pengembangan yang bisa ditopang. Sponsor, pengembang, dan user harus bisa menjaga ke-konstanan langkah yang tidak pasti.

9. Perhatian yang terus menerus terhadap rancangan dan teknik yang baik meningkatkan agility.

10. Kesederhanaan – seni untuk meminimalkan jumlah pekerjaan – adalah penting.

11. Arsitektur, requirements, dan rancangan terbaik muncul dari tim yang mengatur sendiri.

12. Pada interval reguler tertentu, tim merefleksikan bagaimana menjadi lebih efektif, kemudian menyesuaikannya.

Selain hal tersebut XP memiliki empat values yang

mencerminkan kesederhanaan dalam proses pengembangannya seperti disebutkan oleh Kent Beck [2].Keempat values tersebut adalah : 1. Komunikasi (Communication) 2. Kesederhanaan (Simplicity)

3. Umpan Balik (Feedback) 4. Keberanian (Courage) 2.4 Metodologi Semi Formal Setelah melihat sekilas beberapa practice XP dan prinsip-prinsip agile methods, maka dapat disempulkan XP merupakan metodologi pengembangan perangkat lunak yang tidak terlalu formal atau bisa dikatakan semi formal. Beberapa hal yang dapat menjadikan XP masuk kategori metodologi semi formal adalah: 1. Komunikasi yang selalu bersifat oral tanpa

dokumentasi formal. 2. Umpan balik yang segera setelah mendapat respon

dari user. 3. Collective ownership yang tidak menggantungkan

pekerjaan pada satu orang saja. 4. Perubahan dan penambahan requirements dapat

direspon meskipun proses pengembangan sudah hampir selesai.

5. Proses pengembangan yang menyertakan satu orang dari pihak user menjadi onsite customer memudahkan komunikasi selama proses pengembangan.

3. PENUTUP Perkembangan ilmu rekayasa perangkat lunak yang semakin pesat dewasa ini telah menyebabkan perkembangan metodologi pengembangannya. Tingkat kepuasan user terhadap proses pengembangan perangkat lunak juga semakin kompleks menyangkut berbagi perubahan dan penambahan requirements. Oleh karena itu XP menjawabnya sebagai sebuah metodologi pengembangan perangkat lunak yang semi formal. Kesemiformalannya tersebut diperlihatkan dalam berbagai values, practice, maupun prinsip-prinsipnya yang mengacu pada agile methods. Konsep yang paling nyata dalam kesemiformalannya tersebut adalah Komunikasi yang selalu bersifat oral. Dengan proses pengembangan yang berkomunikasi secara oral, maka akan lebih terjalin komunikasi yang memudahkan proses pengembangan perangkat lunak tersebut. Dengan metodologi yang tidak terlalu resmi tersebut XP mempermudah jembatan komunikasi antara pihak user dan pihak pengembang. Pihak user dapat langsung memonitor proses pengembangan dengan onsite customer tanpa kekakuan, dan pihak pengembang dapat lebih sering berkomunikasi langsung dengan representasi dari pihak bisnis. 4. Daftar Pustaka [1]. P. Abrahamsson, O. Salo, J. Ronkainen, and J.

Warsta. “Agile Software Development Methods: Review and Analysis”. VTT Publication 478. Finland

Page 4: fullpaper15_widodo

e-Indonesia Initiative 2008 (eII2008) Konferensi dan Temu Nasional Teknologi Informasi dan Komunikasi untuk Indonesia 21-23 Mei 2008, Jakarta

4

[2]. K. Beck, R. Jeffries, and W. Cunningham. “Extreme Programming: Embrace Change”.Addison-Wesley.2000.

[3]. S. Hayes and M. Andrews, “An Introduction to Agile Methods”. http://www. khatovartech.com. Khatovar Technology. 2001

[4]. M.C. Paulk, “Extreme Programming from a CMM Perspective”. http://www.sei.cmu.edu/ cmm/papers/xp-cmm-paper.pdf. 2001

[5]. R. Pressman, “Software Engineering: A Practitioner’s Approach”, 6th edition, McGraw-Hill, 2005.

[6]. Widodo, “Requirements Managements pada eXtreme Programming”, Prosiding Seminar Nasional Ilmu Komputer dan Teknologi Informasi (SNIKTI) Fakultas Ilmu Komputer – Universitas Indonesia, Januari 2007

[7]. Widodo, “Enhanced Extreme Programming: Adopsi Model Unified Process pada Metodologi eXtreme Programming”, Prosiding Seminar Nasional Teknologi Informasi (SNTI) Universitas Tarumanagara, Oktober 2007.