Thursday, December 13, 2012

Extreme Programming untuk Hasil yang Lebih Baik pada Proyek Pengembangan Perangkat lunak

APA ITU EXTREME PROGRAMMING

* Extreme Programming (XP) adalah suatu pendekatan cerdas(Agile) terstruktur untuk rekayasa perangkat lunak dalam praktek sehari-hari.
* Pendekatan XP menekankan pentingnya komunikasi dengan pelanggan, komunikasi antara anggota tim, dan pengembangan pengujian otomatis yang lebih terencana daripada dokumentasi formal.
* XP didasarkan pada prinsip-prinsip feedback/umpan balik yang cepat, lebih mengutamakan kesederhanaan (dan meniadakan rencana jangka panjang, skalabilitas dan reusabilitas terdahulu), perubahan yang bertahap dan menerima perubahan sesuai permintaan.

MENGAPA HARUS PEDULI EXTREME PROGRAMMING?

* Penelitian yang dilakukan oleh banyak perusahaan mencerminkan peningkatan kinerja, kualitas kode yang lebih baik (mengurangi jumlah galat/error), kepuasan pelanggan yang lebih baik dan semangat tim ketika XP diterapkan.
 

BAGAIMANA CARA KERJA DAN PRAKTEK XP?

ExtremeProgramming.Org mengusulkan definisi Aturan dan Praktek XP yang disederhanakan dan membandingkannya dengan 4 bidang Software Development Life Cycle:

a.Perencanaan

•Menulis cerita para penggguna/User (User meminta pengembangan fitur dan drive)
•Membuat jadwal pengembangan rilis (perkiraan waktu yang diperlukan programmer untuk mengembangkan masing-masing cerita para pengguna/User dan User memilih cerita yang paling penting bagi mereka)
•Sering membuat rilis-rilis kecil (rilis harus datang setiap 1-3 minggu)
•Mengukur kecepatan proyek (kecepatan proyek adalah jumlah perkiraan untuk tugas cerita yang diselesaikan selama durasi proyek)
•Proyek ini dibagi menjadi iterasi (membagi proyek Anda ke dalam selusin iterasi pendek; menjaga panjang iterasi yang konstan; memperhatikan tenggat waktu iterasi dengan serius)
•Perencanaan iterasi dimulai di setiap iterasi(setiap iterasi harus berawal dengan memilih cerita-cerita pengguna supaya lengkap selama iterasi tersebut, hal tersebut melanggar peraturan untuk perencanaan ke depan)
•Memindahkan orang melingkar[untuk menghindari hilangnya ilmu pengetahuan yang serius dan kemacetan coding/pengkodean]
•pertemuan stand-up dimulai setiap hari (semua orang berdiri pada lingkaran untuk menghindari diskusi panjang)
•memperbaiki xp jika rusak (ikuti aturan xp dimulai dari awal, tapi jangan ragu untuk mengubah apa yang tidak bekerja)

b.Perancangan

  • Kesederhanaan (selalu melakukan hal-hal sederhana yang mungkin bisa bekerja)
  • Memilih metafora sistem (Pilih metafora sistem untuk menjaga tim pada halaman yang sama dengan penamaan kelas dan metode yang konsisten)
  • Gunakan kartu CRC untuk sesi desain(Kartu CRC individu digunakan untuk mewakili objek tersebut. Kelas objek dapat ditulis di bagian atas kartu, tanggung jawab dicantumkan di sisi kiri, kelas berkolaborasi dicantumkan di sebelah kanan masing-masing tanggung jawab)
  • Buat solusi acuan untuk mengurangi risiko (mencari tahu jawaban atas masalah teknis atau desain masalah dengan cepat)
  • Fungsi yang tidak ada ditambahkan secara dini (Membuat system tetap rapi dengan hal-hal ekstra yang Anda harapkan bisa digunakan kemudian. Hanya 10% dari hal-hal ekstra akan pernah digunakan, sehingga Anda membuang-buang 90% dari Anda waktu)
  • Refactor kapanpun dan dimanapun memungkinkan (Jaga kode Anda bersih dan ringkas sehingga lebih mudah untuk memahami, memodifikasi, dan memperluas. Memastikan semuanya diungkapkan sekali dan hanya sekali)

c.Pengujian

  • Semua kode harus memiliki tes unit(sebuah kesalahan dari pemeriksaan memberikan pengaruh terhadap pengembang untuk menulis kode, tak ada kode yang dapat ditulis kecuali tes disediakan)
  • Semua kode harus melewati semua tes unit sebelum kode tersebut dirilis(yang memungkinkan kepemilikan code kolektif dan memastikan fungsi baru tidak merusak kode yang lama)
  • Ketika bug/celah cacat ditemukan, lalu tes dibuat.
  • Tes akseptasi ini dijalankan beberapa kali dan angkanya dipublikasikan(Tes akseptasi adalah kotak hitam pengembangan tes system dari cerita pengguna, masing-masing mewakili beberapa hasil yang diharapkan)

d.Coding

  • Pelanggan selalu tersedia(seorang pelanggan harus tersedia dalam tim pengembang).
  • Kode harus ditulis sesuai dengan standar yang disepakati.
  • Kode tes unit pertama.
  • Semua kode dihasilkan oleh programmer pasangan(semua kode termasuk dalam sebuah rilis produksi dibuat oleh 2 orang yang bekerja sama dalam sebuah komputer).
  • Hanya sepasang programmer menggabungkan kode setiap waktu(untuk selalu menjaga system tetap konsisten kuat, semua informasi kode dirilis ke penyimpanan informasi kode secara bergantian.
  • Sering memadukan(Pengembang harus memadukan dan merilis kode ke penyimpanan kode setiap jam, kapanpun mungkin).
  • Menggunakan kepemilikan kode kolektif(Kepemilikan kode kolektif mendorong semua orang untuk berkontribusi ide baru untuk semua segmen proyek).
  • Biarkan optimisasi hingga akhir(Buatlah kode tersebut bekerja, benar, dan cepat)
  • Tidak lembur(Bekerja lembur dapat mengganggu semangat dan motivasi team).

APAKAH XP CUKUP PRAKTIS DALAM KEMAJUAN DUNIA

Banyak perkembangan perangkat lunak pada tahun 90-an dibentuk oleh dua pengaruh utama:
  • internal, pemograman berorientasi objek pemrograman prosedural sebagai paradigma pemrograman yang disukai oleh beberapa di industri
  • eksternal, munculnya internet dan maraknya dot-com menekankan kecepatan pemasaran dan pertumbuhan perusahaan sebagai faktor bisnis yang kompetitif.
  • XP muncul sebagai respon terhadap kebutuhan pengembangan perangkat lunak era modern dan sebenarnya disesuaikan terhadap perkembangan yang pesat.
  • Prinsip kesederhanaannya, perancangan yang belum berakhir, tidak menghabiskan banyak waktu untuk menulis dokumentasi formal, tetapi menghabiskan waktu untuk berkomunikasi dengan pengguna dan membangun tes/akseptasi), rilis jangka pendek pada dasarnya merupakan kebutuhan Industri IT modern.
 

No comments:

Post a Comment