Anda di halaman 1dari 24

AGILE SOFTWARE

DEVELOPMENT
• Agile menggambarkan sebuah prinsip untuk pengembangan perangkat lunak di mana,
• Persyaratan dan solusi berkembang melalui upaya kolaboratif mengatur diri sendiri +
tim lintas fungsi

• Agile Menyokong :
• Perencanaan adaptif

• Perkembangan bertahap

• penyampaian lebih awal

• Perbaikan terus-menerus

• Mendorong respons yang cepat dan fleksibel terhadap perubahan

PRINSIP-PRINSIP INI MENDUKUNG DEFINISI DAN MELANJUTKAN


PERUBAHAN PADA BANYAK METODE PEMBANGUNAN
PERANGKAT LUNAK
• Model Agile percaya bahwa, Apa itu Agile?
• Setiap proyek perlu ditangani secara berbeda

• Metode yang ada perlu dirancang agar sesuai


dengan persyaratan proyek
• Tugas akan dibagi menjadi kotak waktu ( kerangka waktu
kecil) untuk memberikan fitur spesifik untuk perilisan

• Itterative approach diambil &


Bekerja pada perangkat lunak yang berfungsi dan di
tempatkan setelah beberapa iterasi.
• Setiap build bersifat inkremental dalam
beberapa fitur
• Final build menampung semua fitur-fitur yang
dibutuhkan oleh pelanggan
Mengapa Agile?
• memberikan peluang untuk menilai arah suatu proyek sepanjang tahap pengembangan

• dicapai melalui irama kerja reguler, yang dikenal sebagai sprint atau iterasi
• di akhir sprint, tim harus mempresentasikan apa sja yang berpotensi dalam meningkatan produk yang dapat di pesankan.

• dengan fokus pada pengulangan siklus kerja yang dihilangkan serta produk fungsional
yang dihasilkannya, metodologi agile digambarkan sebagai
“iterative” and “incremental”
• Dimana,
• tim pengembang hanya memiliki satu kesempatan untuk mendapatkan setiap aspek proyek dengan benar

• Dalam paradigma agile,


• setiap aspek pengembangan - persyaratan, desain, dll. - akan terus ditinjau kembali sepanjang siklus hidup .
Ketika sebuah tim berhenti dan mengevaluasi kembali arah proyek setiap dua minggu, selalu ada waktu untuk
mengarahkannya ke arah lain
• Hasil dari pendekatan “iterative” and “incremental” ini

• mengurangi biaya dan waktu pengembangan ke pasar

• Karena tim dapat mengembangkan perangkat lunak pada saat yang sama disaat mereka mengumpulkan

persyaratan, fenomena ini dikenal sebagai "Analisis Paralisis" yang cenderung menghambat tim dari
membuat kemajuan

• Metodologi pengembangan AGile membantu perusahaan membangun produk yang tepat

Bukan memasarkan perangkat lunak yang bahkan belum di rancang

• agile memberdayakan tim untuk terus merencanakan ulang perilisan mereka karena untuk
mengoptimalkan nilainya sepanjang pengembangan , memungkinkan mereka untuk menjadi kompetitif
di pasar
Tujuan Pengembangan Perangkat Lunak Agile
• Individu dan interaksi
• dalam pengembangan agile, pengorganisasian diri sendir dan motivasi adalah hal penting, seperti juga interaksi
seperti co-location dan pair programming.

• Perangkat lunak yang dipakai


• Perangkat lunak kerja versi demo dianggap sebagai alat komunikasi terbaik dengan pelanggan
untuk memahami kebutuhan mereka, dari pada hanya bergantung pada
dokumentasi.
• Kolaborasi dengan pelanggan
• Karena persyaratan tidak dapat dikumpulkan sepenuhnya pada awal proyek karena berbagai faktor, interaksi
pelanggan yang berkelanjutan sangat penting untuk mendapatkan persyaratan produk yang tepat.

• Menanggapi perubahan

• pengembangan agile difokuskan pada respon yg cepat terhadap perubahan dan pengembangan yg berkelanjutan .
Prinsip agile
• Tujuan Agile didasarkan pada dua belas prinsip

1) Kepuasan pelanggan oleh penyampaian awal dan berkelanjutan menghasilkan perangkat lunak yang baik

2) Terbuka untuk perubahan Kebutuhan , bahkan dalam pengembangan akhir

3) Perangkat lunak yang berfungsi akan sering dikirim (setiap minggu bukannya perbulan)

4) Erat, kerja sama setiap hari antara pelaku bisnis dan pengembang

5) Proyek dibangun oleh individu yang mengerti dan paham , yang pastinya bisa dipercaya

6) Percakapan tatap muka ialah bentuk komunikasi terbaik (co-location)


7) Perangkat lunak yang dapat bekerja adalah tolak ukur utama dari proses kemajuan

8) Pembangunan berkelanjutan , mampu mempertahankan kecepatan kinerja yg konstan

9) Perhatian yang terus menerus untuk keunggulan teknis dan desain yang terbaik

10) Kesederhanaan — memaksimalkan jumlah pekerjaan yang belum selesai akan lebih penting

11) Arsitektur, persyaratan, dan desain terbaik muncul dari tim yang bisa mengatur diri sendiri

12) Secara teratur, tim memikirkan bagaimana menjadi lebih efektif, dan lebih menyesuaikan
Agile Model Pro dan Kontra
terkenal secara luas di dunia perangkat lunak, namun metode ini mungkin tidak selalu cocok untuk semua produk.

Pro Cons

• Merupakan pendekatan yang sangat realistis untuk pengembangan perangkat lunak • Tidak cocok untuk menangani dependensi yang kompleks.

• Mempromosikan kerja tim dan cross training. • Lebih banyak risiko dalam jangka panjang, pemeliharaan, dan ekstensibilitas.

• Fungsionalitas dapat dikembangkan dengan cepat dan ditunjukan. • Dalam rencana keseluruhan,praktik pemimpin projek agile dan PM agile
• Persyaratan sumber daya minimum. berifat wajib jika tidak maka projek tidak akan berhasil.
• Cocok untuk persyaratan tetap atau berubah • Ruang Lingkup yang ketat mempengaruhi Manajemen penyampaian,

• Memberikan lebih awal solusi kerja Menyeluruh. fungsionalitas yang akan disampaikan, dan penyesuaian untuk memenuhi deadline.

• Model yang bagus untuk ruang lingkup yang terus berubah.


• Sangat bergantung pada interaksi pelanggan, jadi jika pelanggan tidak jelas,
• Aturan yang sedikit, dokumentasi yg mudah untuk digunakan.
tim dapat didorong ke arah yang salah.
• Memungkinkan pengembangan dan pennyelesaian dilakukan bersamaan dalam
• Ada ketergantungan individu yang sangat tinggi, karena ada sedikit
konteks keseluruhan yang telah direncanakan.
dokumentasi yang dihasilkan.
• Perencanaan yang sedikit bahkan tanpa perncanaan • pemindahan kepada anggota tim baru mungkin cukup sulit
• Mudah dikelola dikarenaka kurangnya dokumentasi.

• Memberikan fleksibilitas kepada pengembang


Metodologi Pengujian Agile
Ada berbagai metodologi yang secara kolektif dikenal sebagai agile, karena mereka mempromosikan
nilai-nilai tujuan dari agile dan mereka konsisten dengan prinsip-prinsip yg ada di atas. Dibawah ini
ialah metode yg paling dikenal :
• Scrum , merupakan metode pengembangan agile yg
• berkonsentrasi terutama pada bagaimana untuk mengelola tugas-tugas dalam lingkungan pengembangan berbasis tim.

• metode agile paling populer dan banyak diterapkan

• XP (Pemrograman Ekstrim) adalah metodologi agile yang lebih radikal/extreme


• lebih fokus pada proses rekayasa perangkat lunak dan mengatasi fase analisis, pengembangan dan pengujian dengan pendekatan baru yang
membuat perbedaan besar pada kualitas akhir produk

• DSDM ,mungkin metode ini ialah pengembangan agile yg orisinil karena,


• sudah ada sebelum istilah 'agile' diciptakan, tetapi benar-benar didasarkan pada semua prinsip yang kita kenal sebagai agile

DSDM MUNGKIN METODOLOGI AGILE YG PALING LENGKAP, DI MANA SCRUM DAN XP LEBIH MUDAH UNTUK
DITERAPKAN DAN DI IMPLEMENTASI KARENA MEREKA MENANGANI ASPEK YANG BERBEDA DARI PROYEK
PENGEMBANGAN PERANGKAT LUNAK DAN DUA DUANYA MEMILIKI KONSEP YANG MIRIP.
Scrum
• berkonsentrasi khusus pada bagaimana KITA mengelola tugas dalam lingkungan pengembangan
berbasis tim

• percaya dalam memberdayakan tim dan mampu bekerja didalam tim kecil.

• Scrum terdiri dari tiga roles dan tanggung jawab mereka dijelaskan sebagai berikut

• Master Scrum
bertanggung jawab untuk mengatur tim, pertemuan dan menghilangkan
suatu hambatan pada setiap proses
• Pemilik produk
membuat Produk backlog, memprioritaskan backlog
dan bertanggung jawab untuk penyampaian fungsionalitas
pada setiap iterasi
• Scrum Team
mengelola pekerjaannya sendiri dan mengatur pekerjaan untuk
menyelesaikan setiap proses atau siklus
Product Backlog
• di mana persyaratan dilacak dengan detail pada setiap persyaratan yang harus diselesaikan untuk setiap perilisan 
dipelihara dan diprioritaskan oleh master scrum, dan harus didistribusikan ke tim scrum  Tim juga dapat meminta
penambahan atau modifikasi atau penghapusan persyaratan baru

• Praktek Scrum
Alur proses Metodologi Scrum
• Alur proses pengujian scrum adalah sebagai berikut
• Setiap iterasi scrum dikenal sebagai Sprint
• Product backlog adalah daftar di mana semua detail dimasukkan yg bertujuan untuk mendapatkan tahap akhir produk

• Selama setiap proses Sprint, item utama dari Product backlog dipilih dan diubah menjadi Sprint
backlog
• Tim bekerja pada tumpukan sprint yang ditentukan

• Tim memeriksa pekerjaannya sehari-hari

• Di akhir sprint, tim memberikan fungsionalitas produk


Extreme Programming (XP)
• Teknik Extreme Programming sangat membantu
• ketika ada tuntutan atau persyaratan yang terus berubah dari pelanggan
• ketika mereka(Pelanggan) tidak yakin tentang fungsionalitas sistem

• Xp menganjurkan perilsan produk dalam siklus pengembangan yg singkat


• secara inheren meningkatkan produktivitas sistem dan juga memperkenalkan pemeriksaan awal di mana persyaratan pelanggan dapat dengan
mudah diimplementasikan

• XP mampu mengembangkan perangkat lunak dengan menjaga target pelanggan


• Persyaratan bisnis dikumpulkan dalam bentuk riwayat  riwayat disimpan di tempat yang disebut
Parking lot.
• Dalam metodologi jenis ini
• Perilisan didasarkan pada siklus pendek yang disebut Iterasi dengan rentang waktu 14 hari

• Setiap iterasi mencakup fase seperti pengkdingan, pengujian unit, dan pengujian sistem di mana pada setiap
fase, beberapa fungsi minor atau utama akan dibangun dalam aplikasi.
Tahapan Extreme Programming
1) Perencanaan

• Pengidentifikasian Stakeholder dan sponsor

• Perencanaan Infrastruktur
• Informasi dan pengumpulan yg berkaitan keamanan

• SLA dan kondisinya


2) Analisis
• Menangkap Riwayat di Parkig lot

• Memprioritaskan Riwayat di PARKING LOT

• Memproses Riwayat untuk estimasi


• Tentukan Iterasi SPAN (Waktu)

• Perencanaan sumber daya untuk tim Pengembangan dan


Quality anssurance team
3) Perancangan
5) Membungkus
• Merincikan setiap tugas
• Small Releases
• mempersiapkan Skenario Tes untuk setiap
tugas • Pengujian Regresi
• Membuat Kerangka Kerja regression • Demo dan review
automation
• mengembangkan riwayat baru berdasarkan
4) Pelaksanaan/Eksekusi kebutuhan
• Coding
• Perbaikan Proses berdasarkan pada akhir
• Pengujian Unit komentar review iterasi
• Eksekusi skenario pengujian secara Manual 6) Penutupan

• Pembuatan defect report • Peluncuran

• mengkonversi kasus uji regresi Manual ke • Pelatihan


Otomasi
• Peluncuran Produksi
• Review tahap iterasi • Jaminan Jaminan SLA
pertengahan dan akhir
• Tinjau strategi SOA
• Dukungan produksi
Metodologi
Metodologi Kristal didasarkan pada tiga konsep
1) Chartering
Kristal
Kegiatan kegiatan yang terlibat dalam fase ini adalah menciptakan tim pengembangan, melakukan analisis kelayakan awal,
mengembangkan rencana awal dan menyempurnakan metodologi pengembangan

2) Cyclic delivery: Fase pengembangan utama terdiri dari dua atau lebih
Cyclic delivery, selama
1) Tim pembaruan dan penyempurnaan rencana perrilisan

2) mengimplentasikan bagian dari persyaratan melalui satu atau lebih tes program yg mengintegrasikan iterasi
3) Terintegrasi dari produk yang dikirimkan ke pengguna aslinya

4) review rencana proyek dan menerapkan metodologi pengembangan

3) Wrap Up
Aktivitas yang dilakukan dalam fase ini adalah menyebarkan ke lingkungan user, review pasca penempatan dan dilakukannya
perenungan
Metode Pengembangan Perangkat Lunak Dinamis (DSDM)
• DSDM adalah pendekatan dari Pengembangan Aplikasi yang Cepat (RAD) dan menyediakan kerangka kerja penyampaian proyek agile

• Aspek penting dari DSDM adalah bahwa pengguna diminta untuk terlibat secara aktif, dan tim diberi wewenang
untuk membuat keputusan
• penyampaian produk yang sering menjadi fokus aktif di DSDM.
• Teknik yang digunakan dalam DSDM adalah
• Time boxing (berpacu pada waktu)
• Aturan MoSCoW
• Prototyping
• Proyek DSDM terdiri dari 7 fase
1) Pra-proyek
2) Studi kelayakan
3) Studi Bisnis
4) Iterasi Model Fungsional
5) Desain dan pembangunan Iterasi
6) Penerapan
7) Pasca proyek
Feature Driven Development (FDD)
• Berfokus di sekitar "mendesain & membangun" fitur.
• FDD menjelaskan fase kerja secara spesifik dan pendek yang harus diselesaikan secara terpisah per
fiturnya

• Hal ini termasuk penelusuran domain, inspeksi desain, promosi untuk


membangun, inspeksi dan desain kode
• Produk yang dikembangkan FDD tetap mengikuti hal-hal yg di target kan seperti:
• Pemodelan objek domain • Inspeksi
• Pengembangan berdasarkan fitur • Manajemen konfigurasi
• Kepemilikan Komponen / Kelas • Pembangunan reguler
• Tim Fitur • Visibilitas dari kemajuan dan
hasil
Pengembangan Perangkat Lunak Lean
• berdasarkan prinsip dari “Produksi tepat waktu”
• Hal Ini bertujuan meningkatkan kecepatan pengembangan perangkat lunak dan mengurangi
biaya

• Pengembangan lean dapat diringkas dalam tujuh langkah:

1) Mengeliminasi pemborosan

2) Memperkuat tahap pembelajaran

3) menunda komitmen (memutuskan selambat mungkin)


4) Penyampaian awal

5) Memberdayakan tim

6) Membangun Integritas

7) mengoptimalkan keseluruhan
agile.
Tamat
JADI APA PERBEDAAN DARI AGILE DAN RAD?

Kesimpulannya, meskipun RAD dan AGILE berbagi nilai yang sama, Berhubungan dengan
fleksibilitas, waktu pengiriman yang lebih pendek, dan interaksi dan kepuasan pelanggan yang
tinggi, RAD berfokus pada prototipe sementara AGILE sebagian besar berfokus kepada
penguraian proyek menjadi fitur fitur yang kemudian disampaikan dalam berbagai sprint
selama siklus pengembangan. Berdasarkan pada keuntungan dan kerugian yang masing masing
dimiliki dari RAD dan AGILE, RAD sebagian besar cocok untuk proyek yg mempunyai enam atau
lebih sedikit anggota pengembang yang sangat terampil, di mana perilisan prototipe
diperbolehkan dalam tenggat waktu yang sangat ketat/sedikit. Di sisi lain, metodologi agile
umumnya cocok untuk proyek-proyek dengan rekomendasi kurang lebih dari dua puluh anggota
pengembang, di mana pengiriman fitur tambahan adalah fokus utamanya. Namun, RAD adalah
metode preskriptif untuk membuat perangkat lunak, menggunakan prototipe berturut-turut
untuk memperoleh persyaratan dan menyempurnakan aplikasi. sedangkan Agile, seperti dalam
bentuk sebelumnya diperkenalkan, adalah posisi filosofis yang menggambarkan perbedaan
antara pendekatan tradisional dan nilai-nilai yang difokuskan oleh praktisi agile.
LINK VIDEO PRESENTASI : https://youtu.be/9mcjl35_6Eg

OKE SELESAI SUDAH

Anda mungkin juga menyukai