Extreme Programming, Scrum & Crystal


Extreme Programming
Extreme Programming adalah sebuah pendekatan atau model pengembangan perangkat lunak yang mencoba menyederhanakan berbagai tahapan dalam proses pengembangan tersebut sehingga menjadi lebih adaptif dan fleksibel. XP bukan hanya berfokus pada coding tetapi meliputi seluruh area pengembangan perangkat lunak. XP mengambil pendekatan ‘ekstrim’ dalam iterative development.
·         Tujuan
XP mencoba untuk mengurangi biaya perubahan persyaratan dengan memiliki beberapa siklus pengembangan pendek, bukan yang panjang.Dalam doktrin ini, perubahan adalah aspek alami dari proyek pengembangan perangkat lunak, yang tak terhindarkan dan diinginkan, dan harus direncanakan, alih-alih mencoba menentukan seperangkat persyaratan yang stabil.
Program ekstrem juga memperkenalkan sejumlah nilai dasar, prinsip dan praktik di atas kerangka pemrograman tangkas.
·         Umpan Balik
Pemrograman ekstrem melihat umpan balik sebagai hal yang paling berguna jika dilakukan sesering mungkin dan segera. Ini menekankan bahwa penundaan minimal antara tindakan dan umpan baliknya sangat penting untuk dipelajari dan dilakukan perubahan. Tidak seperti metode pengembangan sistem tradisional, kontak dengan pelanggan terjadi pada iterasi yang lebih sering. Pelanggan memiliki wawasan yang jelas tentang sistem yang sedang dikembangkan, dan dapat memberi umpan balik dan mengarahkan perkembangan sesuai kebutuhan. Dengan umpan balik yang sering dari pelanggan, keputusan desain yang keliru yang dibuat oleh pengembang akan diperhatikan dan diperbaiki dengan cepat, sebelum pengembang menghabiskan banyak waktu untuk menerapkannya.
Tes unit berkontribusi pada prinsip umpan balik yang cepat. Saat menulis kode, menjalankan tes unit memberikan umpan balik langsung mengenai bagaimana sistem bereaksi terhadap perubahan yang dilakukan. Ini termasuk tidak hanya menjalankan unit test yang menguji kode pengembang, namun juga menjalankan semua tes unit terhadap semua perangkat lunak, dengan menggunakan proses otomatis yang dapat diprakarsai oleh satu perintah. Dengan begitu, jika perubahan pengembang menyebabkan kegagalan pada bagian lain dari sistem yang diketahui pengembang atau yang tidak sama sekali, suite uji coba semua unit otomatis akan segera mengungkapkan kegagalan tersebut, memperingatkan pengembang tentang ketidakcocokan perubahannya dengan bagian lain dari sistem, dan keharusan untuk menghapus atau memodifikasi perubahannya. Di bawah praktik pengembangan tradisional, tidak adanya paket uji coba unit otomatis yang komprehensif berarti bahwa perubahan kode semacam itu, yang dianggap tidak berbahaya oleh pengembang, akan ditinggalkan, hanya muncul selama pengujian integrasi - atau lebih buruk lagi, hanya dalam produksi; dan menentukan perubahan kode mana yang menyebabkan masalah, di antara semua perubahan yang dilakukan oleh semua pengembang selama minggu-minggu atau bahkan beberapa bulan sebelumnya untuk pengujian integrasi, merupakan tugas yang berat.
Beberapa aspek XP telah berubah sejak publikasi Extreme Programming Refactored ; Secara khusus, XP sekarang mengakomodasi modifikasi terhadap praktik selama tujuan yang dibutuhkan masih terpenuhi. XP juga menggunakan istilah yang semakin umum untuk proses. Beberapa berpendapat bahwa perubahan ini menyalahgunakan kritik sebelumnya;yang lain mengklaim bahwa ini hanya menyiram prosesnya.
Scrum
Scrum adalah salah satu metode rekayasa perangkat lunak dengan menggunakan prinsip-prinsip pendekatan AGILE, yang bertumpu pada kekuatan kolaborasi tim, incremental product dan proses iterasi untuk mewujudkan hasil akhir.
Scrum sendiri bukan satu-satunya metode yang menggunakan pendekatan AGILE. Mungkin kita juga pernah mendengar metode Extreme Programming (XP) yang juga menggunakan pendekatan AGILE dalam rekayasa perangkat lunak. Masing-masing metode memiliki fokus atau penekanan yang berbeda yang tentu saja dapat dikombinasika untuk menghasilkan proses yang optimal.
Teknik SCRUM dapat dilakukan di sebuah kepanitiaan ataupun project lain diluar bisnis teknologi informasi. Dalam teknik SCRUM terbagi dalam tiga roles, yang pertama adalah Product Owner, Scrum Master dan Develophment/Scurm Team. Product owner bertugas mengatur urusan dengan Stakeholder sedangkan Scrum Master mengurusi bagian internal, di bagian Development Team mengatur urusan teknik pengerjaan project dan pembahasan yag lebih rinci.
Banyak perusahaan multinasional menginternalisasi atau mengadopsi teknik ini sebagai standar bekerja mereka, karena secara umum teknik crum berhasil membuat beberapa perusahaan menaikan omset karena system yang telah teruji ini. Teknik scrum membuat pekerjaan anda menjadi lebih tertata dan lebih detail. Namun segala sesuatu memiliki nilai plun dan minus, begitu juga dengan teknik scrum ini, scrum menjadikan pekerjaan lebih rapi namun teknik ini tidak cocok diterapkan pada perusahaan jasa yang butuh deadline cepat. Scrum membuat pekerjaan menjadi lebih lama dalam estimasi waktu. Namun segala sesuatunya pasti dapat di selesaikan apabila sudah memiliki persiapan yang matang dari awalnya. Teknik srum dimulai dari pembahasan project antara Product Owner dengan Stakeholder terkait, lalu dibentuklah Srum Master dan Team Development. Lahkah pertama yang dilakukan oleh Scrum master adalah dengan membuat semua list pekerjaan yang sebut juga dengan User Story, User Stori tersebut dibuat di media yang dinamakan Backlog yang di tempel di TaskBoard. Setiap Backlog yang dibuat diberi setimasi dan standar atau tingkat kesulitan, anda bisa memakai angka 1, 2, 3 dan seterusnya untuk menjelaskan tingkat kesulitan maupun huruf seperti A, B, C dan lain sebagainya, dan yang paling penting dari kode ini adalah semua team development harus mengerti maksud kode tersebut. Setelah dibuat kode maka tugas selanjutnya membuat sprint, sprint adalah batasan waktu pengerjaan dan jika telah ditetapkan maka teknik scrum tidak diberkenankan mengubah konspe ditengah jalan

Crystal
Crystal diperkenalkan oleh Cockburn dan Highsmith, Development yang tidak pada jalur kritis, dapat menghabiskan waktu lebih, mereka yang memperbaiki produk atau membantu orang 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.

Comments