Metode Extreme Programing

Sejarah Extreme Programming
Extrem programming dimunculkan untuk menangani perubahan-perubahan yang biasanya sering terjadi pada saat pengembangan berlangsung bahkan pada saat proses pengembangan sudah hampir berakhir. Selainitu XP juga dimunculkan untuk mengatasi berbagai requirements yang tidak jelasdari user. Sebagai sebuahmetodologi untuk mengembangkan peragkat lunak XP tentu memiliki siklus hidup. Siklus hidup pada XP inierdapat lima fase yaitu : Extreme Programming diciptakan oleh Kent Beck selama bekerja di Chrysler MenyeluruhbSistem Kompensasi (C3) proyek penggajian. Beck C3 menjadi pemimpin proyek Maret 1996 dan mulai untuk memperbaiki metode pengembangan yang digunakan dalam proyek dan menulis sebuah buku tentang   metode (pada Oktober 1999, Extreme Programming Explained diterbitkan). Chrysler membatalkan proyek C3 pada Februari 2000, setelah perusahaan diakuisisi oleh Daimler-Benz. Meskipun Extreme Programming itu sendiri adalah relatif baru, banyak dari praktik sudah ada selama beberapa waktu, metodologi, setelah semua, diperlukan praktek terbaik untuk tingkat ekstrem. Sebagai contoh, tes-praktek pembangunan pertama, perencanaan dan tes tertulis sebelum setiap mikro-increment digunakan sebagai awal NASA Project Mercury, pada awal 1960-an (Larman 2003). Refactoring, modularitas, bottom-up dan desain inkremental digambarkan oleh Leo Brodie dalam bukunya yang diterbitkan pada tahun 1984

Pengertian Extreme Programming (XP) - Extreme Programming (XP) merupakan salah satu metode pengembangan software yang termasuk dalam Agile Software Development. XP menggunakan pendekatan object-oriented.


Dalam XP, terdapat 5 nilai yang menjadi pondasi yaitu communication, simplicity, feedback, courage, dan respect. Komunikasi yang efektif antara pengembang perangkat lunak dan pihak-pihak yang terlibat sangatlah penting. Dalam XP, desain dijadikan kebutuhan intermediate. Desain dibuat sesederhana mungkin agar mudah mengimplementasikan code. Disini dapat terjadi perubahan struktur desain atau perubahan source code tanpa mengubah fungsi utamanya (refactoring). Feedback akan diberikan saat peningkatan dan pengimplementasian perangkat lunak.


Berikut merupakan proses Extreme Programming menurut Pressman (2010):
  1. Planning. Tahap planning dimulai dengan membuat user stories yang menggambarkan output, fitur, dan fungsi-fungsi dari software yang akan dibuat. User stories tersebut kemudian diberikan bobot seperti prioritas dan dikelompokkan untuk selanjutnya dilakukan proses delivery secara incremental. 
  2. Design. Design di Extreme Programming mengikuti prinsip Keep It Simple (KIS). Untuk design yang sulit, Extreme Programming akan menggunaan Spike Solution dimana pembuatan design dibuatlangsung ke tujuannya. Extreme Programming juga mendukung adanya refactoring dimana software system diubah sedemikian rupa dengan cara mengubah stuktur kode dan menyederhanakannya namun hasil dari kode tidak berubah. 
  3. Coding. Proses coding pada XP diawali dengan membangun serangkaian unit test. Setelah itu pengembang akan berfokus untuk mengimplementasikannya. Dalam Extreme Programmingdiperkenalkan istilah Pair Programming dimana proses penulisan program dilakukan secara berpasangan. Dua orang programmer saling bekerjasama di satu komputer untuk menulis program. Dengan melakukan ini akan didapat real-time problem solving dan real-time quality assurance. 
  4. Testing. Tahap ini dilakukan pengujian kode pada unit test. Dalam Extreme Programming,diperkenalkan XP acceptance test atau biasa disebut customer test. Tes ini dilakukan oleh customer yang berfokus kepada fitur dan fungsi sistem secara keseluruhan. Acceptance test ini berasal dari user stories yang telah diimplementasikan.
Pengalaman ini kemudian diformalkan dan diterbitkan pada tahun 1999 oleh Kent Beck yang mende nisikan satu praktik dapat mewujudkan empat nilai-nilai fundamental yaitu komunikasi, umpan balik, keberanian , kesederhanaan. Extreme programming memiliki lima nilai yaitu :



1.Komunikasi: Nilai ini berfokus pada membangun orang-ke - orang,saling pengertian dari lingkungan
masalah melalui minimal resmi dokumentasi dan melalui interaksi tatap muka maksimal . Praktek XP
dirancang untuk mendorong interaksi , pengembang - to- developer dan pengembang - ke-pelanggan .


2.Kesederhanaan: Nilai ini menantang setiap anggota tim untuk terus bertanya, Apa hal paling sederhana yang mungkin bisa bekerja ? XP berpendapat bahwa lebih baik untuk melakukan hal yang sederhana dan membayar sedikit lebih besok untuk perubahan daripada melakukan lebih rumit,hal hari ini yang mungkin tidak akan pernah digunakan .


3.Tanggapan: Dalam extreme programming team mendapatkan umpan balik dengan menguji perangkat lunak mereka,memberikan sistem ke pelanggan sedini mungkin dan mengimplementasikan perubahan dan prioritas seperti yang disarankan oleh umpan balik dari pelanggan .


4.Keberanian: Pengembang sering mengutip tekanan untuk kapal produk buggy. Itu Dibutuhkan keberanian untuk menolak tekanan ini. Beck juga menyatakan bahwa tim harus berani dan bersedia untuk membuat perubahan di akhir proyek atau bahkan membuang kode dan mulai dari awal lagi.




5.Menghormati: Jika anggota tim tidak peduli satu sama lain dan pekerjaan mereka , ada metodologi dapat bekerja . Anda harus menghormati kepada rekan-rekan Anda dan kontribusi mereka , untuk organisasi Anda , untuk orang-orang yang hidupnya tersentuh oleh sistem. Beck mengatakan Praktek adalah bukti dari nilai-nilai Tugas yang dapat dijatuhkan jika kita mendapatkan kendala .Dengan cara ini akan tetap margin keamanan dan memecahkan kasus masalah.


Tambahan: Desain extreme programming menentang menghasilkan desain yang lengkap di depan .Tim pengembangan menghasilkan kode sesegera mungkin dalam rangka untuk mendapatkan umpan balik dan memperbaiki sistem terus menerus. Desain diperlukan untuk mendapatkan kode yang baik Pertanyaannya adalah ketika merancang XP menyarankan untuk melakukannya secara bertahap selama coding . Cara membantu memperoleh ini adalah untuk menghilangkan duplikasi dalam kode. 

Pemrograman Test- Pertama : sebelum memperbarui dan menambahkan kode perlu untuk menulis tes untuk memveri kasi kode. Hal ini memecahkan empat masalah : 
  • Cowboy coding yaitu sangat mudah untuk mendapatkan,dapat dibawa pergi dengan program cepat dan menempatkan semuanya dalam pikiran serta dalam kode. Tes membantu kita fokus pada masalah yang dihadapi dan dapat membuktikan bahwa desain kami adalah benar.
  • Coupling dan kohesi yaitu jika tidak mudah untuk menulis tes , ini berarti bahwa anda memiliki masalah desain , bukan dari pengujian atau coding
  • Kepercayaan yaitu jika Anda menulis kode dokumen dengan tes otomatis , rekan kerja Anda akan mempercayai Anda .
  • Rhythm yaitu mudah untuk tersesat dan mengembara selama berjam-jam ketika kita coding . Jika kita membiasakan diri dengan: tes, kode ,refactor , tes, kode , refactor , itu tidak akan terjadi .



Tujuan Extreme Programming

Tujuan utama dalam extreme programming adalah menurunkan biaya dari adanya perubahan software .Dalam metodologi pengembangan sistem tradisional, kebutuhan sistem ditentukan padatahap awal pengembangan proyek dan bersifat xed. Hal ini berarti biaya terhadap adanya perubahan kebutuhan yang terjadi pada tahap selanjutnya akan menjadi mahal. XP diarahkan untuk menurunkan biaya dari adanya perubahan dengan memperkenalkan nilai-nilai basis dasar, prinsip dan praktis. Dengan menerapkan XP, pengembangan suatu sistem haruslah lebih eksibel terhadap perubahan. Sasaran XP 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. XP dimunculkan untuk menangani perubahan-perubahan yang biasanya sering terjadi pada saat pengembangan berlangsung bahkan pada saat proses pengembangan sudah hampir berakhir.





Kelebihan dan Kelemahan Extreme Programing





Keunggulan:


  • Menjalin komunikasi yang baik dengan klien. (Planning Phase)
  • Menurunkan biaya pengembangan (Implementation Phase)
  • Meningkatkan komunikasi dan sifat saling menghargai antar developer. (Implementation Phase)
  • XP merupkan metodologi yang semi formal. (Planning Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima, atau dengan kata lain eksibel. (Maintenance Phase)


Kelemahan :


  • Tidak bisa membuat kode yang detail di awal (prinsip simplicity dan juga anjuran untuk melakukan
  • apa yang diperlukan hari itu juga). Selain dari keunggulan dan kelemahan XP yang telah disebutkan
  • diatas, XP juga memiliki keunggulan yang sekaligus menjadi kelemahannya, yaitu XP tidak memiliki
  • dokumentasi formal yang dibuat selama pengembangan. Satu-satunya dokumentasi adalah dokumentasi awal yang dilakukan oleh user.
 Sumber : 
http://topieks.blogspot.co.id/2013/12/tugas-softskill-extreme-programing_26.html
http://infodanpengertian.blogspot.co.id/2016/01/pengertian-dan-proses-extreme.html 

Komentar