Posted by: Budi Daryatmo | January 25, 2008

Extreme Programming

Satu lagi tipe metodologi pengembangan aplikasi yang dapat diterapkan di dalam merealisasikan proyek pengembangan aplikasi, termasuk aplikasi bergerak, adalah Extreme Programming (XP). XP pada dasarnya merupakan tipe agile software development methodology yang menerapkan iterasi pengembangan aplikasi dan mengantisipasi perubahan persyaratan atau kebutuhan sistem sepanjang siklus hidup proyek. XP memiliki 12 praktik yang dirangkum dari best practice rekayasa perangkat lunak, yang dikelompokkan ke dalam 4 area, yaitu : Fine scale feedback (Pair programming, Planning Game, Test Driven Development, Whole team), Continuous process (Continuous Integration, Design Improvement, Small Releases), Shared understanding (Coding Standards, Collective Code Ownership, Simple Design, System Metaphor), dan Programmer welfare (Sustainable Pace).

  • Pair programming, memerlukan dua orang pembuat kode program untuk berpartisipasi di dalam usaha mengembangkan aplikasi pada sebuah workstation. Setiap orang melakukan aksi yang saling mendukung, di mana orang yang mengetik kode program disebut sebagai driver dan orang yang memberi panduan disebut sebagai navigator. Sangat disarankan kedua orang tersebut saling berganti peran setiap setengah jam atau setelah unit test selesai dibuat, dan disarankan juga untuk mengganti rekan setiap harinya.
  • Planning game, merupakan proses perencanaan utama di dalam XP. Planning game adalah pertemuan yang dilaksanakan setiap iterasi pengembangan aplikasi, umumnya setiap minggu. Planning game dibagi ke dalam dua tahap : Release Planning dan Iteration Planning. Release Planning difokuskan untuk menentukan persyaratan apa yang dapat/perlu disertakan pada release selanjutnya dan kapan release berikutnya dilakukan. Penentuan ini didasarkan pada kesepakatan antara client dan tim pengembang. Iteration Planning difokuskan untuk merencanakan aktivitas dan tugas tim pengembang.
  • Test driven development, merupakan pendekatan untuk membuat unit test sebelum kode program benar-benar ditulis. Unit test merupakan automated test yang menguji fungsionalitas penggalan kode, dapat berupa kode dalam suatu kelas atau metode. Pendekatan ini dimaksudkan untuk menstimulasi para pembuat kode berpikir tentang kondisi di mana kode yang dibuat dapat gagal berfungsi.
  • Whole team, berarti client juga harus terlibat di dalam proses pengembangan aplikasi.
  • Continuous integration, berarti tim pengembang sebaiknya selalu mengerjakan aplikasi versi terakhir. Karena anggota tim yang berbeda dapat memiliki versi yang tersimpan di lokal dengan berbagai perubahan dan perbaikan, maka mereka sebaiknya upload versi terakhir ke code repository setiap beberapa jam atau ketika sesuatu perbaikan yang penting dilakukan. Continuous integration dapat mencegah delay yang sering terjadi akibat permasalahan integrasi.
  • Design improvement, berarti ketika refactoring kode diperlukan, maka proses ini dilakukan dengan mengubah desain arsitektur menjadi lebih sederhana dan lebih umum.
  • Small releases, berarti aplikasi diberikan ke client setiap release yang telah ditentukan di mana setiap release memuat segmen aplikasi yang lebih kecil dari aplikasi keseluruhan, yang dapat berjalan tanpa tergantung pada komponen yang akan dibuat kemudian. Small releases menambah tingkat kepercayaan client terhadap kemajuan proyek pengembangan aplikasi.
  • Coding standard, merupakan sekumpulan peraturan atau standar yang disepakati tim pengembang selama proses pengembangan aplikasi. Standar yang dimaksud menspesifikasikan format dan tipe penulisan kode sumber terhadap bahasa pemrograman yang digunakan. Penggunaan standar dapat mengacu pada konvensi yang dikeluarkan vendor bahasa pemrograman atau dikustomisasi oleh tim pengembang.
  • Collective code ownership, berarti setiap individu bertanggung jawab atas semua kode sumber, yang juga berarti setiap individu diizinkan untuk mengupdate kode.
  • Simple design, berarti pengembang aplikasi perlu menerapkan pendekatan simple is best di dalam melakukan desain aplikasi. Setiap kali penggalan kode baru ditulis, pembuat kode perlu memikirkan apakah masih terdapat cara yang lebih sederhana untuk memberikan fungsionalitas yang sama.
  • System metaphor, merupakan konsep penamaan untuk kelas dan metode yang memudahkan anggota tim dapat memperkirakan fungsionalitas kelas atau metode dari nama yang diberikan.
  • Sustainable pace, berarti tim pengembang sebaiknya tidak bekerja lebih dari 40 jam dalam satu minggu. Jika terdapat tambahan waktu kerja dalam satu minggu, maka pada minggu selanjutnya sebaiknya tidak ada tambahan waktu kerja. Sustainable pace merupakan konsep di mana individu akan melakukan pekerjaan terbaik jika mereka beristirahat yang cukup.

Responses

  1. Postingnya bagus-bagus n menarik..mohon untuk disertakan referensi yang diambil berasal dari mana (daftar pustaka)

  2. Silahkan dibaca di bagian “Reference”


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Categories

%d bloggers like this: