Anda di halaman 1dari 9

Bahan Ajar Rekayasa Perangkat Lunak

Agile Software Development


Disiapkan oleh Umi Proboyekti Pengantar Kata Agile berarti bersifat cepat, ringan, bebas bergerak, waspada. Kata ini digunakan sebagai kata yang mengambarkan konsep model proses yang berbeda dari konsep model-model proses yang sudah ada. Konsep Agile Software De elopment dicetuskan oleh Kent !eck dan "# rekannya dengan menyatakan bahwa Agile Software De elopment adalah cara membangun software dengan melakukannya dan membantu orang lain membangunnya sekaligus. Dalam Agile Software De elopment interaksi dan personel lebih penting dari pada proses dan alat, software yang berfungsi lebih penting daripada dokumentasi yang lengkap, kolaborasi dengan klien lebih penting dari pada negosiasi kontrak, dan sikap tanggap terhadap perubahan lebih penting daripada mengikuti rencana. $amun demikian, sama seperti model proses yang lain, Agile Software De elopment memiliki kelebihan dan tidak cocok untuk semua %enis proyek, produk, orang dan situasi. Agile Software De elopment memungkinkan model proses yang toleransi terhadap perubahan kebutuhan sehingga perubahan dapat cepat ditanggapi. $amun di sisi lain menyebabkan produktifitas menurun. Prinsip Agile Software Development Salah satu ciri dari Agile Software De elopment adalah tim yang tanggap terhadap perubahan. &engapa' Karena perubahan adalah hal yang utama dalam pembangunan software( perubahan kebutuhan software, perubahan anggota tim, perubahan teknologi dll. Selain itu Agile Software De elopment %uga melihat pentingnya komunikasi antara anggota tim, antara orang-orang teknis dan businessmen, antara de eloper dan managernya. )iri lain adalah klien men%adi bagian dari tim pembangun software. )iri-ciri ini didukung oleh "* prinsip yang ditetapkan oleh Agile Alliance. &enurut Agile Alliance, "* prinsip ini adalah bagi mereka yang ingin berhasil dalam penerapan Agile Software De elopment( ". kepuasan klien adalah prioritas utama dengan menghasilkan produk lebih awal dan terus menerus *. menerima perubahan kebutuhan, sekalipun diakhir pengembangan. +. Penyerahan hasil,software dalam hitungan waktu dua minggu sampai dua bulan. -. !agian bisnis dan pembangun ker%a sama tiap hari selama proyek berlangsung .. &embangun proyek dilingkungan orang-orang yang bermoti asi tinggi yang beker%a dalam

lingkungan yang mendukun dan yang dipercaya untuk dapat menyelesaikan proyek. #. Komunikasi dengan berhadapan langsung adalah komunikasi yang efektif dan efisien /. Software yang berfungsi adalah ukuran utama dari kema%uan proyek 0. dukungan yang stabil dari sponsor, pembangun, dan pengguna diperlukan untuk men%aga perkembangan yang berkesinambungan 1. perhatian kepada kehebatan teknis dan desain yang bagus meningkatkan sifat agile "2. kesederhanaan penting "". arsitektur, kebutuhan dan desain yang bagus muncuk dari tim yang mengatur dirinya sendiri "*. secara periodik tim e aluasi diri dan mencari cara untuk lebih efektif dan segera melakukannya. Kedua belas prinsip tersebut men%adi suatu dasar bagi model-model proses yang punya sifat agile. Dengan prinsip-prinsip tersebur Agile Process &odel berusaha untuk menyiasati + asumsi penting tentang proyek software pada umumnya( ". kebutuhan software sulit diprediksi dari awal dan selalu akan berubah. Selain itu, prioritas klien %uga sering berubah seiring ber%alannya proyek. *. Desain dan pembangunan sering tumpang tindih. Sulit diperkirakan seberapa %auh desain yang diperlukan sebelum pembangunan. +. Analisis, desain, pembangunan dan testing tidak dapat diperkirakan seperti yang diinginkan. Faktor Manusia pada Agile Pro ess Model Kunci faktor manusia pada model ini adalah proses didasari pada kebutuhan orang dan tim bukan sebaliknya, Untuk dapat sukses menerapkan model proses ini, pada faktor manusia ada beberapa kunci penting( ". kompetensi( ketrampilan dalam membangun dan pengetahuan tentang proses membangun *. 3okus( memiliki fokus yang sama sekalipun peran dalam tim berbeda +. Kolaborasi ( ker%a sama dengan klien, anggota tim dan mana%er. -. Kemampuan ambil keputusan ( tim pembangun memiliki otonomi dalam pengambilan keputusan terkait teknis dan proyek .. Kemampuan fu44y problem-sol ing( mampu menyelesaikan memilah masalah yang penting untuk dipecahkan segera atau nanti. #. Saling percaya dan hormat( kekompakan tim yang didukung oleh rasa percaya dan saling menghargai satu sama lain. /. &ana%emen diri( tim mengatur diri untuk selesaikan proyek, mengatur proses untuk disesuaikan dengan lingkungannya, tim men%adwal dirinya untuk menyerahkan hasil.

Agile Pro ess Model !erikut ini adalah model-model proses yang termasuk agile process model ( ". 5P678treme Programming9 a9 dipublikasikan oleh Kent !eck tahun "111 b9 &enggunakan pendekatan berorientasi ob%ek c9 Aktifitas Perencanaan ( pengumpulan user stories dari klien yang klien tetapkan prioritasnya. Setiap story ditetapkan harga dan lama pembangunan, %ika terlalu besar, story dapat dipecah men%adi beberapa story yang lebih kecil. Periksa dan pertimbangkan resiko d9 Aktifitas Desain( berprinsip( sederhana.&emanfaatkan kartu ):) 6)lass-:esponsibility)ollaborator9 untuk identifikasi dan mengatur class-class di konsep ;;. <ika temui kesulitan, prototype dibangun =ini namanya spike solution>. ?akukan refactoring, yaitu mengembangkan desain dari program setelah ditulis e9 Aktifitas Pengkodean( siapkan unit test sebelum pengkodean dipakai sebagai fokus pemrogram untuk membuat program. Pair programming dilakukan untuk real time program sol ing dan real time @uality assurance f9 Aktifitas Pengu%ian( menggunakan unit test yang dipersiapkan sebelum pengkodean.

*. ADAPABC7 S;3ADA:7 D7C7?;P&7$A 6ASD9 a9 Dia%ukan oleh <im Eighsmith sebagai teknik untuk membangun software dan sistem yang

kompleks. b9 3ilosofi yang mendasari adalah kolaborasi manusia dan tim yang mengatur diri sendiri. c9 Aktifitas( Speculation, )ollaboration dan ?earning d9 Aktifitas Speculation ( Adapti e cycle planning yaitu menggunakan informasi awal seperti misi dari klien, batasan proyek dan kebutuhan dasar untuk definisikan rangkaian software increment 6produk software yang secara berkala diserahkan9 e9 Aktifitas )ollaboration ( orang-orang yang bermoti asi tinggi beker%a sama( saling melengkapi, rela membantu, ker%a keras, trampil di bidangnya, dan komunikasikan masalah untuk hasilkan penyelesaian yang efektif. f9 Aktifitas ?earning( tim pembangun sering merasa sudah tahu semua hal tentang proyek, padahal tidak selamanya begitu. Karena itu proses ini membuat mereka bela%ar lebih tentang proyek melalui + cara(

3ocus group( klien dan pengguna memberi masukan terhadap software 3ormal Aechni@ue :e iews( Aim ASD lengkap melakukan re iew Postmortems( Aim ASD lakukan instrospeksi pada kiner%a dan proses.

+. DF$A&B) SFSA7&S D7C7?;P&7$A &7AE;D a9 menya%ikan kerangka ker%a 6framework9 untuk membangun dan memelihara sistem dalam waktu yang terbatas melalui penggunaan prototyping yang incremental dalam lingkungan yang terkondisikan. b9 &embangun software dengan cepat( 02G dari proyek diserahkan dalam *2G dari waktu total untuk menyerahkan proyek secara utuh. c9 Aktifitas( feasibility study ( siapkan re@uirement, dan batasan, lalu u%i apakah sesuai gunakan proses DSD& d9 Aktifitas( !usiness Study( susun kebutuhan fungsional dan informasi, tentukan arsitektur aplikasi dan identifikasi kebutuhan pemeliharaan untuk aplikasi e9 Aktifitas( 3unctional model iteration ( hasilkan incremental prototype yang perlihatkan fungsi software ke klien untuk dapatkan kebutuhan lebih %elas dan konfirmasi f9 Aktifitas( Design and !uild Bteration ( cek ulang prototype yang dibangun untuk pastikan bahwa prototype dibangun dengan cara yang memungkinkan fungsi tersebut benar-benar beker%a g9 Aktifitas( Bmplementation( menempatkan software pada lingkungan sebenar sekalipun belum lengkap, atau masih ada perubahan. h9 DSD& dapat dikombinasikan dengan 5P menghasilkan kombinasi model proses yang mengikuti DSD& dan praktek yang se%alan dengan 5P.

-. S):U& a9 Diperkenalkan oleh <eff Sutherland tahun awal tahun "112an b9 Pengembangan berikutnya dilakukan oleh Schwaber dan !eedle c9 Scrum memiliki prinsip(

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 pengu%ian terus menerus dilakukan setelah software dibangun proses scrum mampu menyatakan bahwa produk selesai kapanpun diperlukan

d9 Aktifitas Scrum ( !acklog, Sprints, Scrum &eetings, Demo

e9 Aktifitas !acklog ( !acklog adalah daftar kebutuhan yang %adi prioritas klien. Daftar dapat bertambah. f9 Aktifitas Sprints( unit peker%aan yang diperlukan untuk memenuhi kebutuhan yang ditetapkan dalam backlog sesuai dengan waktu yang ditetapkan dalam time-bo8 6biasanya +2hari9. Selama proses ini berlangsung backlog tidak ada penambahan.

g9 Aktifitas Scrum &eeting( pertemuan ". menit perhari untuk e aluasi apa yang diker%akan, hambatan yang ada, dan target penyelesaian untuk bahan meeting selan%utnya. h9 Aktifitas Demo(penyerahan software increment ke klien didemonstrasikan dan die aluasi oleh klien. .. AHB?7 &;D7?B$H a9 banyak situasi pembangun software harus membangun sistem bisnis yang besar dan penting. <angkauan dan kompleksitas sistem harus dimodelkan sehingga dapat dimengerti, masalah dapat dibagi men%adi lebih kecil dan kualitas dapat di%aga pada tiap langkah pembangunan software. b9 A& adalah suatu metodologi yang praktis untuk dokumentasi dan pemodelan sistem software. c9 A& adalah kumpulan nilai-nilai, prinsip dan praktek-praktek untuk memodelkan software agar dapat diaplikasian pada software de elopment proyek secara efektif. d9 Prinsip dalam A&I

membuat model dengan tu%uan( tentukan tu%uan sebelum membuat model mengunakan multiple models( tiap model mewakili aspek yang berbeda dari model lain. tra el light( simpan model-model yang bersifat %angka pan%ang sa%a isi lebih penting dari pada penampilan( modeling menya%ikan informasi kepada audiens yang tepat. memahami model dan alat yang yang digunakan untuk membuat software adaptasi secara lokal

Penutup Dari model-model proses di atas dapat diambil beberapa poin penting( ". komunikasi mempunyai peran penting dalam pembanguna software *. kebutuhan software tidak mudah untuk diidentifikasikan secara lengkap +. ker%a sama dalam tim menentukan kelancaran pembangunan software Aktifitas yang ter%adi di dalam Agile &odel Process tetap mengandung aktifitas-aktifitas yang ada pada model proses generasi sebelumnya seperti waterfall, incremental, spiral dan :AD. Selain itu, modelmodel proses di atas tetaplah bukan model proses yang cocok untuk setiap %enis software. :eferensi( Ambler, Scott D. !An Bntroducation to Agile &odeling.J Agile Modeling "ome Page# *22"-*220. Diakses di http(,,www.agilemodeling.com,essays,introductionAoA&.htm. 2/,21,20. Pressman, :oger S. Software $ngineering % A Pra titioner&s Approa h# #th 7d. &cHraw-Eall. $F. *22..

Anda mungkin juga menyukai