1. Miftah
2. Faisal Fahreza
3. Dea Aurelia
Agile
4. Falia Davina
5. Rina
6. Rivaldo
7. Nurhandika
AGILE
Agile Development Methods adalah sekelompok metodologi pengembangan
perangkat lunak yang didasarkan pada prinsip-prinsip yang sama atau
pengembangan sistem jangka pendek yang memerlukan adaptasi cepat dari
pengembang terhadap perubahan dalam bentuk apapun. Agile development
methods merupakan salah satu dari Metodologi pengembangan perangkat lunak
yang digunakan dalam pengembangan perangkat lunak. Agile memiliki pengertian
bersifat cepat, ringan, bebas bergerak, dan waspada.[1] Sehingga saat membuat
perangkat lunak dengan menggunakan agile development methods diperlukan
inovasi dan responsibiliti yang baik antara tim pengembang dan klien agar kualitas
dari perangkat lunak yang dihasilkan bagus dan kelincahan dari tim seimbang.
Dari segi filosofi, perangkat lunak, agile mempunyai pengertian,bahwa
secara aktif dan berkesinambungan, antara
pengembang dengan pelanggan harus senantiasa menjalin kerjasama dan
komunikasi dengan baik.
Menyinggung masalahAgile, terdapat suatu istilah yang disebut
denganAgility.Agilitymerupakan suatu
kemampuan atau "jiwa" yang harus dimiliki oleh tim pengambangan
perangkat lunak. Kemampuan
tersebut antara lain berupa: kemampuan segera menindaklanjuti terjadinya perubahan secara efektif;
kemampuan berkomunikasi antar stakeholders secara efektif; menganggap bahwa pelanggan
merupakan pihak yang berada di dalam tim yang sama ; kemampuan mengorganisasikan
tim
(memberikan motivasi) agar mampu meningkatkan performa kinerja tim; secara tepat
waktu dan
berkesinambungan dapat men-deliverperangkat lunak yang telah dijadwalkan. Agile Process
merupakan sekelompok aktifitas pembangunan perangkat lunak secara iteratif yang
menekankan pada aktifitas konstruksi (desain dan koding ).Agile Processmengeliminasi
sebagian besar
waktu untuk melakukan perencanaan sistem dan berusaha sebisa mungkin mematuhi
jadwaldeliver sistem yang telah dijanjikan. Requirements yang dibutuhkan secara langsung
di-driveoleh pelanggan itu sendiri , dan apabila terjadi perubahan terhadap requirements tersebut,
pengembang
dituntut mampu beradaptasi dengan perubahan yang terjadi
Terdapat banyak model pendekatan yang tergolong dalam Agile Process, namun tidak semua model saya
bahas pada tulisan ini, saya hanya menjelaskan dua model yaitu :Extreme
Programming(XP),
Dan Adaptive Software Development(ASD).
Sejarah
Pada tahun 90-an diperkenalkan dengan metodologi baru yang dikenal dengan nama
agile methods,kata Agile berarti bersifat cepat, ringan, bebas bergerak, waspada.
Metodologi yang dikenal sebagai agile methods ini mengutamakan fleksibilitas terhadap
perubahan-perubahan yang terjadi selama pengembangan. Bahkan perubahan ataupun
penambahan pada saat fase terakhir pun teratasi apabila menggunakan metodologi ini.
Agile Methods dikembangkan karena pada metodologi tradisional terdapat banyak hal
yang membuat proses pengembangan tidak dapat berhasil dengan baik sesuai tuntutan
user. Konsep Agile Software Development dicetuskan oleh Kent Beck dan 16 rekannya
dengan menyatakan bahwa Agile Software Development adalah cara membangun
software dengan melakukannya dan membantu orang lain membangunnya sekaligus.
1.Extreme Programming(XP)
XP merupakan suatu model yang tergolong dalam pendekatan agile yang diusulkan oleh Kent Back .
Menurut penjelasan dia, definisi XP adalah sebagai berikut: "Extreme Programming (XP) is a lightweight, efficient,
low-risk, flexible, predictable, scientific , and fun way to develop software ".Model ini cenderung menggunakan
pendekatan Object - Oriented .Tahapan-tahapan yang harus dilalui antara lain:Planning, Design, Coding ,dan
Testing.
XP Process(Pressman, 2005)
Pada saat perencanaan, dimulai dengan membuat semacam "user strories " yang ditempatkan index card . User
Story( cerita ) merupakan deskripsi fitur-fitur fungsional yang akan disediakan perangkat lunak
yang akan dibuat. Dari cerita - cerita yang telah dibuat, pelanggan memberikan semacam
nilai (misalnya: prioritas). Kemudian tim XP mengkaji semua cerita tadi dan menentukan
rincian biaya serta memperkirakan waktu yang dibutuhkan untuk membangun sistem .
Apabila waktu yang dibutuhkan untuk mengimplementasikan cerita tersebut lebih dari tiga
minggu, maka tim XP meminta pelanggan memecah cerita tersebut menjadi cakupan
yang lebih kecil . Cerita - cerita yang telah dibuat dikelompokkan, sehingga dapat
diperkirakan untuk melakukandeliverable increments. Meskipun telah dikelompokkan dan proses
pembangunan perangkat lunak telah dimulai, pelanggan masih bisa menambah, merubah,
memecah dan menghapus cerita - cerita tersebut, namun tentunya harus sesuai
dengan persetujuan bersama.
Keuntungan dari model XP antara lain adalah:Pertama, dapat merepresentasikan
situasi nyata yang sering terjadi, sehingga sistem yang akan dibuat mendukung
sebagian besar operasional pengguna.Kedua, memudahkan pengguna memahami
dan memberikan masukan terhadap cerita tersebut.Ketiga, dapat merepresentasikan
fitur-fitur fungsional secara bertahap (incremental).Sedangkan kekurangan dari model
XP antara lain adalah:Pertama, cerita - cerita yang menunjukkan requirements
tersebut kemungkinan besar tidak lengkap.Kedua,user strories lebih fokus kepada
kebutuhan fungsional dari pada fokus kepada kebutuhan non fungsional.Ketiga,
hubungan antara arsitektur sistem denganuser strories tidak jelas, sehingga
perancangan arsitektur juga lebih sulit .
2.Adaptive Software Development(ASD)
ASD merupakan suatu model yang tergolong dalam pendekatanagile yang diusulkan
oleh Jim Highsmith . ASD menekankan pada pengorganisasian tim secara mandiri,
kolaborasi antar-perseorangan, dan terus belajar, baik secara individu maupun
secara tim. ASD menggunakantools yang disebut "time-boxing" yaitu berupa aktifitas
yang menentukan jangka waktu tertentu yang dialokasikan untuk menyelesaikan
berbagai macam tugas. Apabila waktu yang ditentukan tersebut selesai , maka
pembangunan sistem akan pindah ke tugas berikutnya, dengan harapan bahwa
sebagian besar dari critical work telah berhasil diselesaikan sebelum waktu keseluruhan tugas
berakhir.. Terdapat tiga tahapan pada model ASD, yaitu :Speculation, Collaboration , dan Learning .
Adaptive Software Development(Pressman,2005)
Pada tahap Speculation, proyek dimulai danadaptive cycle planning diselenggarakan.Pada tahapan ini,
didefinisikan visi dan misi pengguna terhadap sistem yang akan dibuat, selanjutnya
Mendefinisikan project constraints ,misalnya: waktu deliver. dan selanjutnya mendefinisikan
satu set dari requirements yang akan dikerjakan dalam suatu cycle . Pada tahap
Collaboration , pada tahap ini diorganisasikan tim kerja untuk membangun sistem .
Direkomendasikan menggunakan modelJoint Application Development(JAD). Pada tahap
Learning , terdapat tiga aktifitas yaitu : pelanggan atau end-user menyediakan
feedback terhadap hasil incrementaldelivery, tim ASD melakukan review terhadap
komponen perangkat lunak untuk memperbaiki dan meningkatkan kualitas perangkat
lunak yang sedang Dibuat.
Ada beberapa langkah dalam Agile Development Methods, yaitu :
• Perencanaan, pada langkah ini pengembang dan klien membuat rencana tentang kebutuhan dari
perangkat lunak yang akan dibuat.
• Implementasi, bagian dari proses dimana programmer melakukan pengkodean perangkat lunak.
• Tes perangkat lunak, disini perangkat lunak yang telah dibuat di tes oleh bagian kontrol kualitas
agar bug yang ditemukan bisa segera diperbaiki dan kualitas perangkat lunak terjaga.
• Dokumentasi, setelah dilakukan tes perangkat lunak langkah selanjutnya yaitu proses
dokumentasi perangkat lunak untuk mempermudah proses maintenanance kedepannya.
• Deployment, yaitu proses yang dilakukan oleh penjamin kualitas untuk menguji kualitas sistem.
Setelah sistem memenuhi syarat maka perangkat lunak siap dideployment.
• Pemeliharaan, langkah terakhir yaitu pemeliharaan. Tidak ada perangkat lunak yang 100% bebas
dari bug, oleh karena itu sangatlah penting agar perangkat lunak dipelihara secara berkala
Pendekatan Agile
Meski banyak macam penerapa dari metode Agile, beberapa tahapan yang umum ada dalam sebuah metode Agile
dalam pengerjaan software development adalah sebagai berikut:
Penemuan
Sangalatlah penting untuk mengerti visi dari seorang client saat mengerjakan suatu proyek baru. Software
development dengan metode Agile dimulai dengan sebuah riset untuk mencapai pengertian akan tujuan yang ingin
dicapai oleh client, tantangan yang ada, iklim bisnis sekarang, serta customer dan user yang ada. Tahap pertama ini
termasuk memastikan adanya pengertian yang sama diantara client, project manager, designer, developer, dan
product owner.
Backlog Product
Setelah proses penemuan, team akan mulai bekerja bersama untuk membuat sebuah Product Backlog tingkat tinggi
yang berisi daftar fitur yang akan berguna bagi client dan user. Product owner akan bekerja sama dengan client untuk
memprioritaskan fitur dan menentukan urutan dari bagaimana fitur akan dirancang, develop, test, dan diterapkan.
Hal ini akan membantu tim untuk tetap fokus dalam memberikan fitur dengan nilai tinggi sebelum bekerja pada tugas
yang berprioritas rendah.
Pengulangan
Setelah memastikan bahwa team mengerti visi yang dimiliki oleh client dan membuat sebuah backlog yang tepat,
team akan mulai menerapkan fitur-fitur yang telah dibuat dalam sebuah pengulangan yang diukur oleh waktu yang
dinamakan Sprints. Sprint sendiri berlansung dalam durasi 1-4 minggu, tergantung dari besar proyek dan durasi
waktu yang ada, dimana setiap Sprint akan memenuhi objektif yang ada di backlog.
Penerusan Siklus
Sprint tambahan akan dilakukan sesuai dengan yang dibutuhkan untuk menghasilkan fitur tambahan dan
memasukan feedback yang didapat dari review sebelumnya. Setiap Sprint harus menghasilkan perkembangan dari
hasil Sprint sebelumnya dan juga menghasilkan fitur baru ke dalam sistem.
keuntungan dari Agile Development Methods :
• Menambah produktivitas tim
• Menambah kualitas dari perangkat lunak
• Menambah kepuasan dari klien
• Menghemat biaya
• Dalam Agile Software Development 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.
• Pada intinya, Agile Development Methods sangat membantu para pengembang perangkat lunak dalam
melakukan penyerahan produk secara tepat waktu dari suatu tahap operasional perangkat lunak yaitu
pada bagian analisa dan desain.
Beberapa ciri dari metode ini:
• Suatu proyek lebih cepat rilis.
• Perubahan requirement dapat sering dilakukan.
• Interaksi antara client dengan developer dalam menentukan langkah proyek berikutnya
• Proyek dibangun antar tim.
• Tim mengorganisasikan dirinya sendiri.
• Tim bekerja dalam kecepatan yang bisa dipertahankan.
• Tim dapat mereview tingkat keberhasilan dan kegagalan mereka.
• Desain dan implementasi disusun sesederhana mungkin.
Kelebihan metode ini:
• Proses Iterative dan Incremental.
• Requirement dapat berubah sewaktu-waktu.
• Pelacakan requirement dengan melihat Backlog produk.
• Keterlibatan user secara aktif.
• Rilis yang lebih cepat dan berkala, fungsi dirilis setiap akhir iterasi.
• Testing dilakukan setiap saat.
Kekurangan dari metode ini:
• Interaksi dengan client yang kadang terlalu berlebihan.
• Agile sulit diimplementasikan dalam proyek yang berskala besar.
• Waktu perencanaan proyek yang singkat.
• Membutuhkan manajemen tim yang terlatih.
STUDI KASUS
Pelaku industri mulai sadar bahwa untuk menyediakan produk yangmurah, berkualitas
dan cepat, perbaikan di internal perusahaan manufakturadalah tidak cukup.Peran serta
supplier, perusahaan transportasi dan jaringan distributoradalah dibutuhkan.Pada
bagian produksi
Bagian ini bertugas secara fisik melakukan transformasi dari bahanbaku, bahan
setengan jadi atau komponen menjadi produk jadi. Kegiatan produksi dalam konteks
SCM tidak harus dilakukan dalamperusahaan. Banyak perusahaan melakukan
outsourcing yaitu memindahkankegiatan produksi ke pihak subkontraktor, sementara
perusahaankonsentrasi ke kegiatan yang menjadi core competency mereka.Contoh
perusahaan sepatu Nike.
Dalam kegiatan produksi, konsep lean manufakturing yangmementingkan efisiensi dan
agile manufacturing yang menekankanpada fleksibilitas dan ketangkasan merespon
perubahan adalah duahal yang penting.