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 berhasil karena menekankan kepuasan pelanggan. Alih-alih memberikan semua yang anda mungkin inginkan pada tanggal beberapa jauh di masa depan proses ini memberikan perangkat lunak yang Anda butuhkan saat Anda membutuhkannya. Extreme Pemrograman memberdayakan pengembang Anda untuk percaya diri menanggapi perubahan kebutuhan pelanggan, bahkan terlambat dalam siklus hidup.
Extreme Pemrograman menekankan kerja sama tim. Pengelola, pelanggan, dan pengembang semua mitra setara dalam sebuah tim kolaboratif. Extreme Pemrograman menerapkan, sederhana namun efektif yang memungkinkan tim lingkungan menjadi sangat produktif. Tim mengorganisir diri mengatasi masalah untuk menyelesaikannya seefisien mungkin.
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.
Aspek yang paling mengejutkan dari Extreme Programming adalah aturan sederhana. Extreme Pemrograman sangat mirip jig gergaji teka-teki. Ada banyak potongan-potongan kecil. Individual potongan
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 :
- Komunikasi (Communication)
- Kesederhanaan (Simplicity)
- Umpan Balik (Feedback)
- Keberanian (Courage)
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].
Dilakukannya refactoring, yaitu mengembangkan desain dari program setelah ditulis. Pada aktifitas Pengkodean adalah penyiapan unit test sebelum pengkodean dipakai sebagai focus pemrogram untuk membuat program. Pair programming dilakukan untuk real time program solving dan real time quality assurance. Proses pengujiannya menggunakan unit test yang dipersiapkan sebelum pengkodean Menggunakan pendekatan berorientasi objek
Gambar 1. Proses Extreme Programming (XP)
Sebagai sebuah metodologi untuk mengembangkan peragkat lunak Extreme Programming tentu memiliki siklus hidup. Siklus hidup pada Extreme Programming ini terdapat lima fase yaitu :
- Exploration Phase
- Planning Phase
- Iteration to Release Phase
- Productionizing Phase
- Maintenance Phase
- Death Phase
Pada bagian ini akan dilakukan penambahan fase pada Extreme Programmning yaitu dengan menyisipkan sebuah fase yang disebut requirements management phase. Fase ini disisipkan tidak sekuensial tapi paralel dengan fase planning. Tujuan penyisipan secara paralel ini adalah mengurangi kemungkinan Extreme Programmning keluar dari lingkup agile. Tiga hal yang dilakukan yaitu:
- Requirements Management
- Pendokumentasian sederhana (simple documenting)
- Mempertahankan index card yang telah diimplementasi dengan baik
- Planning Game
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) |
Sebelum modifikasi, pada exploration phase terdapat tiga kegiatan yaitu write story, estimate story, dan split story. Setelah dilakukan modifikasi satu kegiatan lagi yang dikerjakan oleh pihak development adalah summarize stories into simple document.
Demikian juga pada steering phase yang pada awalnya hanya terdiri atas kegiatan-kegiatan iteration, recovery, new story, dan re-estimate, setelah modifikasi ditambah satu lagi yaitu update simple document. Proses ini sebenarnya sama dengan summarize stories pada exploration phase, perbedaannya pada steering phase adalah untuk mengantisipasi adanya new story yang dikerjakan oleh pihak bisnis.
- Metaphor
- 40-hour week
- On-site Customer
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.
Extreme Programmning adalah suatu bentuk pembangunan perangkat lunak yang berbasis nilai kemudahan, komunikasi, umpan balik, dan keberanian. Bekerja dalam whole team bersama-sama dengan praktek yang mudah. Dalam Extreme Programming terdapat 12 practices utama yaitu :
- Planning Game
- Small, frequent releases
- System metaphors
- Simple design
- Testing (unit testing & TDD)
- Frequent refactoring
- Pair programming
- Collective code ownership
- Continuous integration
- 40-hour weak
- On-site customer
- Coding standards
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).
No comments:
Post a Comment