1. Extreme
Programmning (XP)
Proyek Pemrograman Extreme pertama dimulai 6
Maret 1996. Extreme Programming adalah salah satu dari beberapa Proses Agile
populer. Sudah terbukti sangat sukses di banyak perusahaan dari berbagai ukuran
dan industri di seluruh dunia.
Extreme Pemrograman meningkatkan proyek
perangkat lunak dalam lima cara penting; komunikasi, kesederhanaan, umpan
balik, rasa hormat, dan keberanian. Extreme Programmer selalu berkomunikasi dengan
pelanggan mereka dan programer sesama. Mereka terus desain mereka yang
sederhana dan bersih. Mereka mendapatkan umpan balik dengan menguji perangkat lunak mereka dimulai pada hari pertama. Mereka memberikan sistem ke pelanggan sebagai perubahan sedini mungkin dan melaksanakan seperti yang disarankan. Setiap keberhasilan kecil memperdalam rasa hormat mereka atas kontribusi yang unik dari masing-masing dan setiap anggota tim. Dengan dasar Extreme pemrogram dapat berani merespon perubahan kebutuhan dan teknologi.
sederhana dan bersih. Mereka mendapatkan umpan balik dengan menguji perangkat lunak mereka dimulai pada hari pertama. Mereka memberikan sistem ke pelanggan sebagai perubahan sedini mungkin dan melaksanakan seperti yang disarankan. Setiap keberhasilan kecil memperdalam rasa hormat mereka atas kontribusi yang unik dari masing-masing dan setiap anggota tim. Dengan dasar Extreme pemrogram dapat berani merespon perubahan kebutuhan dan teknologi.
Extreme Programming adalah metode
pengembangan perangkat lunak yang ringan dan termasuk salah satu agile methods
yang dipelopori oleh Kent Beck, Ron Jeffries, dan Ward Cunningham. Extreme
Programming merupakan agile methods yang paling banyak digunakan dan menjadi
sebuah pendekatan yang sangat terkenal. Sasaran Extreme Programming adalah tim
yang dibentuk berukuran antara kecil sampai medium saja, tidak perlu
menggunakan sebuah tim yang besar. Hal ini dimaksudkan untuk menghadapi
requirements yang tidak jelas maupun terjadinya perubahan-perubahan
requirements yang sangat cepat.
Extreme Programming sebagai sebuah metode
yang dinamis diperlihatkan dalam empat values yang dimilikinya dan keempatnya
merupakan dasar-dasar yang diperlukan dalam Extreme Programming. Kent Beck
menyatakan bahwa tujuan jangka pendek individu sering berbenturan dengan tujuan
sosial jangka panjang. Karena itu dibuatlah values yang menjadi aturan,
hukuman, dan juga penghargaan. Keempat values tersebut adalah :
1.
Komunikasi (Communication)
Tugas utama developer dalam membangun suatu
sistem perangkat lunak adalah mengkomunikasikan kebutuhan sistem kepada
pengembang perangkat lunak. Komunikasi dalam Extreme Programmning dibangun
dengan melakukan pemrograman berpasangan (pair programming). Developer
didampingi oleh pihak klien dalam melakukan coding dan unit testing sehingga
klien bisa terlibat langsung dalam pemrograman sambil berkomunikasi dengan
developer. Tujuannya untuk memberikan pandangan pengembang sesuai dengan
pandangan pengguna sistem.
2.
Kesederhanaan (Simplicity)
XP mencoba untuk mencari solusi paling
sederhana dan praktis. Perbedaan metode ini dengan metodologi pengembangan
sistem konvensional lainnya terletak pada proses desain dan coding yang
terfokus pada kebutuhan saat ini daripada kebutuhan besok, seminggu lagi atau
sebulan lagi. Lebih baik melakukan hal yang sederhana dan mengembangkannya
besok jika diperlukan.
3.
Umpan Balik (Feedback)
Hal ini diperlukan untuk mengetahui kemajuan
dari proses dan kualitas dari aplikasi yang dibangun. Informasi ini harus
dikumpulkan setiap interval waktu yang singkat secara konsisten. Ini
dimaksudkan agar hal-hal yang menjadi masalah dalam proses pengembangan dapat
diketahui sedini mungkin. Setiap feed back ditanggapi dengan melakukan tes, unit
test atau system integration dan jangan menunda karena biaya akan membengkak
(uang, tenaga, waktu).
4.
Keberanian (Courage)
Berani mencoba ide baru.
Berani mengerjakan kembali dan setiap kali kesalahan ditemukan, langsung
diperbaiki. Contoh dari courage adalah komitmen untuk selalu melakukan design
dan coding untuk saat ini dan bukan untuk esok. Ketika ada kode yang terlalu
rumit, sulit dibaca dan dipahami, tidak sesuai dengan kemauan pelanggan, dll
maka seharusnya kode program seperti itu di refactor (kalau perlu dibangun
ulang). Hal ini menjadikan pengembang merasa nyaman dengan refactoring program
ketika diperlukan.
Extreme Programming menggunakan pendekatan
berorientasi objek. Pada aktifitas Perencanaan terjadi pengumpulan user stories
dari klien yang klien tetapkan prioritasnya. Setiap story ditetapkan harga dan
lama pembangunan, jika terlalu besar, story dapat dipecah menjadi beberapa
story yang lebih kecil. Terjadi pemeriksaan dan pertimbangkan resiko dan
aktifitas Desain kegiatannya sederhana yaitu memanfaatkan kartu CRC
(Class-Responsibility-Collaborator) untuk identifikasi dan mengatur class-class
di konsep OO. Jika temuikan kesulitan, prototype dibangun [ini namanya spike
solution].
Sebagai sebuah metodologi
untuk mengembangkan peragkat lunak Extreme Programming tentu memiliki siklus
hidup. Siklus hidup pada Extreme Programming ini terdapat lima fase yaitu :
1. Exploration Phase
2. Planning Phase
3. Iteration to Release Phase
4. Productionizing Phase
5. Maintenance Phase
6. Death Phase
Setelah dilakukan modifikasi terdapat
beberapa pengaruh pada practice-nya. Dari dua belas practice yang terdapat pada
Extreme Programmning, ada empat buah practice yang mempunyai singgungan kuat
dengan requirements management yaitu planning game, metaphor, 40-hour week,
On-site customer. Dari keempatnya planning game-lah yang paling besar
keterkaitannya dengan requirements. Pada bagian ini akan dipaparkan yang
terjadi pada keempat practice tersebut setelah dilakukan modifikasi pada
Extreme Programmning tersebut.
1.
Planning Game
Berikut ini adalah tabel setelah dilakukan
perubahan pada siklus:
NO
|
PHASE
|
BUSINESS
|
DEVELOPMENT
|
I
|
Exploration phase
|
Write story
|
–
|
–
|
Estimate story
|
||
Split story
|
–
|
||
–
|
Summarize stories (simple
documenting)
|
||
II
|
Commitment phase
|
Sort by value
|
–
|
–
|
Sort by risk
|
||
–
|
Sort by velocity
|
||
Choose scope
|
–
|
||
III
|
Steering phase
|
Iteration
|
–
|
–
|
Recovery
|
||
New story
|
Re-estimate
|
||
–
|
Summarize stories (update
simple document)
|
Tabel 1: Fase pada planning game (setelah
modifikasi)
Penerapan Extreme
Programmning
Beberapa hal yang harus
dipertimbangkan sebelum seseorang masuk dalam dunia Extreme Programmning
adalah sebagai berikut:
1. User harus memahami konteks bisnis yang
akan dikembangkan sistemnya, sehingga developer dapat menangkap sistem secara
aplikatif dan dapat mengusulkan teknologi apa yang dapat dikembangkan dalam
sistem barunya.
2. Akan lebih efektif apabila developer
pernah menangani proyek pengembangan sistem yang sejenis sehingga dapat
memberikan usulan model sistem baru, di samping alasan bahwa developer telah
memiliki template aplikasi sistem tersebut untuk dijadikan prototype sistem
baru. Hal ini akan berimplikasi kepada kemudahan dalam konstruksi sistem karena
dikembangkan berdasarkan template yang sudah ada.
3. Extreme programming menuntut komunikasi
antar developer dan user secara intensif dan komunikasi internal antar
developer secara komprehensif, sehingga akan lebih representatif apabila tahap
pengembangan sistem dilakukan di lokal yang mendukung proses komunikasi
tersebut.
Keuntungan dan Kerugian
Keuntungan Extreme Programmning:
Menjalin komunikasi yang baik dengan client.
Meningkatkan komunikasi dan sifat saling menghargai antar developer.
Kerugian
Extreme Programmning:
Developer harus selalu siap dengan perubahan
karena perubahan akan selalu diterima. Tidak bisa membuat kode yang detail di
awal (prinsip simplicity dan juga anjuran untuk melakukan apa yang diperlukan
hari itu juga).
2. Scrum Methodology
Pertama kali diperkenalkan oleh Jeff
Sutherland tahun awal tahun 1990an, dan dikembangkan selanjutnya dilakukan oleh
Schwaber dan Beedle. Pada dasarnya Scrum merupakan salah satu komponen dari
metodologi pengembangan Agile mengenai pertemuan harian untuk membahas kemajuan
dan XP adalah menekankan metodologi yang berbeda sepasang ujian dulu pemrograman
dan pembangunan.
Scrum menguraikan proses untuk
mengidentifikasi dan katalogisasi pekerjaan yang perlu dilakukan,
memprioritaskan yang bekerja dengan berkomunikasi dengan pelanggan atau wakil
pelanggan, dan pelaksanaan yang bekerja menggunakan rilis iterative dan
memiliki tujuan utama untuk mendapatkan perkiraan berapa lama akan pembangunan.
XP lebih lanjut tentang pengembang membantu menyelesaikan pekerjaan secepat dan
maintainably mungkin
Scrum memiliki prinsip
yaitu:
– Ukuran tim yang kecil melancarkan
komunikasi, mengurangi biaya, dan memberdayakan satu sama lain
- Proses dapat beradaptasi terhadap perubahan
teknis dan bisnis
– Proses menghasilkan beberapa software
increment
– Pembangunan dan orang yang membangun
dibagi dalam tim yang kecil
– Dokumentasi dan pengujian terus menerus
dilakukan setelah software dibangun
– Proses scrum mampu menyatakan bahwa produk
selesai kapanpun diperlukan
Scrum memiliki aktifitas
yang meliputi :
1.
Backlog
Backlog adalah daftar kebutuhan yang jadi
prioritas klien, dan daftar yang dibuat dapat bertambah
2.
Sprints
Aktifitas Sprints merupakanunit pekerjaan
yang diperlukan untuk memenuhi kebutuhan yang ditetapkan dalam backlog sesuai
dengan waktu yang ditetapkan dalam time-box (biasanya 30hari). Selama proses
ini berlangsung backlog tidak ada penambahan.
3.
Scrum Meetings
Aktifitas Scrum Meeting merupakan pertemuan
yang rutin dilakukan perhari untuk evaluasi apa yang dikerjakan, hambatan yang
ada, dan target penyelesaian untuk bahan meeting selanjutnya.
4.
Demo
Aktifitas Demo adalah penyerahan software
increment ke klien didemonstrasikan dan dievaluasi oleh klien.
3.Crystal
Crystal diperkenalkan oleh Cockburn dan
Highsmith, Development yang tidak pada jalur kritis, dapat menghabikan waktu
lebih, mereka yang memperbaiki produk atau membantu oaring yang ada di jalur
proyek kritis.
Karakteristik Crystal :
1. Secara aktual sebuah model proses keluarga
yang memungkinkan manuver berdasar karakteristik permasalahan
2. Menyarankan penggunaan workshop refleksi
untuk review kebiasaan kerja tim
3. Selalu murah dan cepat berkomunikasi secara
langsung.
4. Proyek berkembang sesuai ukuran team menjadi
lebih atau luas dan metologi akan menjadi lebih tinggi.
No comments:
Post a Comment