Dokumen tersebut membahas model proses pengembangan perangkat lunak yang cepat (agile) seperti Extreme Programming (XP), Scrum, Crystal, dan Lean Software Development. Model-model tersebut menekankan pada komunikasi yang baik, umpan balik berkelanjutan, dan fleksibilitas untuk menyesuaikan diri dengan perubahan.
1. Pertemuan 2
Chapter 2
The Internet & the World Wide Web
Exploring Cyberspace
Analisis dan Perancangan SI
(APSI – 4 SKS)
Extreme Programming
Heni Su
Fakultas Teknik dan Ilmu Kom
Universitas Teknokrat Ind
2. Objective and Target
Mengapa kecepatan proses pada rekayasa
perangkat lunak modern merupakan kata kunci
yang sangat penting?
Apa yang dimaksud rekayasa perangkat lunak
yang cepat [agility software development] dan
bagai mana proses rekayasa perangkat lunak
yang cepat ini berbeda dengan model proses
tradisional yang lebih dahulu ada?
3. Definition Extreme Programming
Penggabungan suatu falsafah dan serangkaian
tuntunan pengembangan.
Falsafahnya :
Kepuasan pelanggan
Tim-tim proyek yang kecil dan termotivasi
Metode-metode informal
Produk kerja perangkat lunak yang minimal
Dan seluruh kesederhanaan pengembangan
4. Who Work Extreme Programming?
Rekayasawan perangkat lunak (Analyst)
Para stakeholder proyek yang lain [manajer,
pelanggan, dan pengguna] bekerja sama dalam
satu tim cepat.
Suatu tim cepat mendukung komunikasi dan
kolaborasi di antara semua pihak yang terlibat di
dalamnya.
5. Mengapa Peng. Cepat dipandang Perlu?
Lingkungan bisnis modern yang menghasilkan
sistem berbasis komputer
dan produk-produk perangkat lunak selalu
bergerak cepat dan berubah-ubah.
Langkah-langkah:
Istilahnya “software engineering lite”
Dasar aktivitas kerangka kerja → komunikasi,
perencanaan, pemodelan, kontruksi, dan
penyerahan/peyampaian kepada pelanggan tetap
dipertahankan.
6. Faktor Manusia
Pengembangan perangkat lunak secara cepat
berfokus pada bakat dan kemampuan individu,
membentuk proses bagi orang-orang dan tim
tertentu.
Kompetensi: mencangkup bakat bawaan,
keterampilan khusus, dan pengetahuan proses
yang berhubungan dengan perangkat lunak
[keterampilan dan pengetahuan proses harus di
ajarkan]
Fokus Bersama: meskipun anggota tim memiliki
kecerdasan dan keterampilan berbeda-beda,
semua pada dasarnya harus dapat dipusatkan
pada satu tujuan.
7. Faktor Manusia
Kolaborasi: penilaian, analisis, dan penggunaan
informasi yang dikomunikasikan antara anggota
tim [memahami kerja tim]
Kemampuan mengambil keputusan: tim harus
diberikan otonomi secukupnya [otoritas
pengambilan keputusan untuk isu-isu
proyek/masalah-masalah teknis]
Kemampuan pemecahan masalah: perubahan-
perubahan yang harus diadaptasi [aktivitas
memecahkan masalah yang salah].
8. Faktor Manusia
Saling percaya dan menghormati: kepercayaan
dan penghargaan.
Pengorganisasian diri:
Tim cepat mampu mengorganisasi dirinya sendiri
untuk pekerjaan-pekerjaan yang akan
diselesaikan.
Tim cepat mampu mengatur proses perangkat
lunak.
Tim cepat harus mampu mengatur jadwal kerja
untuk mencapai penghantaran perangkat lunak ke
pelanggan dengan tepat waktu.
9. Extreme Programming
Extreme Programming (XP) model
Model proses ini diciptakan dan dikembangkan
oleh Kent Beck.
Model ini adalah model proses yang terbaru
dalam dunia rekayasa perangkat lunak dan
mencoba menjawab kesulitan dalam
pengembangan software yang rumit dan sulit
dalam implementasi.
Suatu model yang menekankan pada
keterlibatan user secara langsung, pengujian,
design
10. Extreme Programming
XP menekankan kolaborasi antara pelanggan
dan pengembang perangkat lunak,
Mengomunikasikan konsep-konsep yang penting
Menekankan pentingnya adaptasi terhadap
umpan balik yang bersifat berkesinambungan
Dan menekankan dokumentasi yang produktif
sebagai suatu media komunikasi.
11. 4 Nilai penting Pemrograman Ekstrem
Communication/Komunikasi:
komunikasi antara developer dan klien sering
menjadi masalah.
Karena itu komunikasi dalam XP dibangun
dengan melakukan pemrograman
berpasangan (pair programming).
Developer didampingi oleh pihak klien dalam
melakukan coding dan unit testing sehingga
klien bisa terlibat langsung dalam
pemrograman sambil berkomunikasi dengan
developer.
Selain itu perkiraan beban tugas juga
diperhitungkan.
12. 4 Nilai penting Pemrograman Ekstrem
Simplicity/sederhana:
Menekankan pada kesederhanaan dalam
pengkodean.
Komunikasi yang lebih banyak mempermudah,
dan rancangan yang sederhana mengurangi
penjelasan.
Feedback/Masukan/Tanggapan:
Setiap feed back ditanggapi dengan
melakukan tes, unit test atau system
integration dan jangan menunda karena biaya
akan membengkak (uang, tenaga, waktu).
13. 4 Nilai penting Pemrograman Ekstrem
Courage/Berani:
Banyak ide baru dan berani mencobanya,
berani mengerjakan kembali dan setiap kali
kesalahan ditemukan, langsung diperbaiki.
14. Proses Pemrograman Ekstrem
Perencanaan
Perancangan
Penulisan
Kode Program
Pengujian
Perangkat lunak yang dapat
dikembangkan lebih lanjut
Peluncuran Perangkat Lunak
Unit pengujian
Uji penerimaan
Story pengguna
Kreteria-kreteria
Pemrograman
Integrasi
Solusi
Prototipe
15. Proses Pemrograman Ekstrem
Prencanaan: mendengarkan-suatu kegiatan bertujuan untuk
mengumpulkan kebutuhan-kebutuhan, memahami proses bisnis,
fitur-fitur utama, dan fungsionalitas.
Perancangan: memberikan panduan implementasi untuk sebuah
perangkat lunak.
Pengkodean: tahapan mengiplementasian rancangan menjadi
kode-kode program dan langsung dapat diintegrasikan dengan
pengkodean sebelumnya.
Pengujian: pembuatan unit pengujian, pengujian integrasi dan
validasi atas sistem/perangkat lunak
Memperbaiki masalah-masalah kecil.
Uji pelanggan, pengujian yang dilakukan oleh pelanggan
berfokus pada fitur-fitur dan fungsionalitas sistem/perangkat
lunak.
16. Perdebatan di seputar Pemrograman
Ekstrem
Isu-isu banyak praktik XP disisi lain bermanfaat
namun disisi lain XP memiliki kelemahan:
Volatilitas Kebutuhan:
karena pelanggan adalah anggota aktif dari tim
XP perubahan kebutuhan dilakukan secara
informal
Akibatnya lingkungan proyek dapat berubah
dan sistem kerja harus diubah untuk
mengakomodasi kebutuhan
17. Perdebatan di seputar Pemrograman
Ekstrem
Kebutuhan pelanggan yang bertentangan:
Banyak proyek memiliki banyak pelanggan, masing-
masing dengan kebutuhannya sendiri-sendiri.
Kebutuhan dinyatakan secara informal:
Para-kritikus berpendapat bahwa suatu model yang
lebih formal lebih diperlukan
Untuk memastikan bahwa kelalaian, inkonsistensi,
dan kekeliruan ditemukan sebelum perangkat lunak
dibangun.
18. Perdebatan di seputar Pemrograman
Ekstrem
Kurangnya perancangan formal:
XP kurang menekankan pada kebutuhan akan
perancangan arsitektur.
Setiap sistem/perangkat lunak yang komplek
harus menunjukan kualitas.
19. Model Proses Cepat Lainnya
Pengembangan perangkat lunak adaptif
[adaptive software development]
Pengembangan oleh banyak orang atau scrum
Metode pengembangan dinamik [dynamic
system development method]
Kristal
Pengembangan drive fitur [feature drive
development method]
Pengembangan perangkat lunak yang ringkas
[lean software development]
Pemodelan cepat [agile modeling]
Proses cepat terpadu [agile unified process]
20. Pengembangan perangkat lunak adaptif
Diperkenalkan oleh “Jim Highsmith”
Fokus pada kolaborasi manusia dan tim yang
mandiri
Spekulasi: proyek dimulai dan perencanaan
siklus adaptif dilakukan [mis. Tanggal
penghantaran atau deskripsi pengguna].
Kolaborasi: komunikasi dan kerjasama tim
perangkat lunak.
Pembelajaran: upaya melengkapi siklus
Falsafah ASD adalah pada dinamika tim mandiri,
kolaborasi interpersonal dan pembelajaran
individu dan tim proyek yang menghasilkan
perangkat lunak.
21. Pengembangan perangkat lunak adaptif
• Perangkat lunak yang
kemudian hari dapat
dikembangkan lagi
• Penyesuaian-
penyesuaian untuk siklus
selanjutnya
22. Pengembangan oleh banyak orang atau
scrum
Diperkenalkan oleh “Jeff Sutherland” dan tim
pegembangannya pada th. 1990an
Dilanjutkan oleh schwaber dan Beedle
Prinsip-prinsip scrum konsisten pada pekerjaan cepat
dengan kerangka kerja:
Kebutuhan
Analisis
Perancangan
Evolusi
Dan penghantaran
Efektif untuk proyek dengan jadwal yang ketat,
perubahan kebutuhan, bisnis.
23. Pengembangan oleh banyak orang atau
scrum
Setiap
24 jam
30 hari
Sprint-Backlog:
Fitur yang ditetapkan
untuk sprint
Item-item backlog
yang telah diperluas
oleh tim
Produk Backlog:
Fitur-fitur produk prioritas yang
dikehendaki pelanggan
Fungsionalitas baru
ditunjukan pada akhir sprint
Scrum: rapat harian selama 15
menit
Anggota tim merespons:
1. Apa yang anda lakukan sejak
pertemuan scrum terakhir?
2. Kendala apa saya yang anda
hadapi?
3. Apa yang akan anda lakukan
sebelum rapat berikutnya?
Keterangan:
1. Backlog: daftar prioritas dari
kebutuhan proyek [fitur-fitur]
2. Sprint: terdiri atas unit keja yang
dibutuhkan untuk mencapai
kebutuhan yang didefinisikan pada
backlog.
3. Scrum meetings: pertemuan yang
dilakukan setiap hari oleh tim scrum
24. Metode pengembangan sistem dinamik
Pendekatan pengembangan perangkat lunak
cepat yang menyediakan:
Kerangka kerja untuk membangun dan
memelihara sistem yang memenuhi batas waktu
yang ketat yang melalui penggunaan prototipe
yang secara perlahan ditambahkan.
Siklus hidup sistem dinamik:
Studi kelayakan
Studi bisnis
Iterasi model fungsional
Perancangan dan membangun iterasi
implementasi
25. Siklus hidup sistem dinamik
Studi kelayakan: menetapkan persyaratan bisnis
dasar dan kendala yang terkait dengan aplikasi yang
akan dibangun.
Studi bisnis: menetapkan persyaratan fungsional dan
informasi yang akan memungkinkan aplikasi untuk
memberikan nilai bisnis, mendefinisikan arsitektur dan
mengidentifikasi kebutuhan pemeliharaan aplikasi.
Iterasi model fungsional: menghasilkan prototipe
yang secara perlahan ditambahi dan diperluas.
26. Siklus hidup sistem dinamik
Perancangan dan membangun iterasi: melihat
kembali prototipe yang telah dibangun pada
tahap iterasi model fungsional untuk memastikan
ketepatan nilai bisnis aplikasi yang dibangun.
Implementasi: menempatkan peningkatan
perangkat lunak terbaru [sebuah prototipe yang
dapat dioperasionalkan] ke lingkungan
operasional
27. Kristal
Diperkenalkan oleh “Alistair Cockburn” dan “Jim
Highsmith”
Pendekatan pengembangan perangkat lunak
yang menempatkan prioritas tinggi pada
“kemampuan bermanuver”
Untuk mencapai kemampuan manuvernya
dengan mendefinisikan satu rangkaian
metodologi dengan masing-masing unsur inti:
peran, pola proses, produk kerja, dan praktik
yang unik
Tujuan untuk memilih tim cepat yang paling
sesuai dengan proyek dan lingkungan mereka.
28. Pengembangan dikendalikan fitur
Diperkenalkan oleh “Alistair Cockburn” dan “Jim
Highsmith”
Pendekatan pengembangan perangkat lunak
yang menempatkan prioritas tinggi pada
“kemampuan bermanuver”
Untuk mencapai kemampuan manuvernya
dengan mendefinisikan satu rangkaian
metodologi dengan masing-masing unsur inti:
peran, pola proses, produk kerja, dan praktik
yang unik
Tujuan untuk memilih tim cepat yang paling
sesuai dengan proyek dan lingkungan mereka.
29. Pengembangan dikendalikan fitur
Mengembangkan
suatu model
yang bersifat
keseluruan
Mengembangkan
daftar fitur-fitur
Perencanaan
berdasarkan
fitur-fiur
Perancangan
berdasarkan
fitur-fitur
Pengembangan
berdasarkan
fitur-fitur
30. Pengembangan PL yang ringkas
Mengadaptasi prinsip-prinsip manufacturing
ringkas ke dunia rekayasa perangkat lunak
Prinsip-prinsip ringkas [Menghilangkan
pemborosan, membangun kualitas, menciptakan
pengetahuan, cepat menghantarkan dan
mengoptimalkan keseluruhan]
31. Pengembangan PL yang ringkas
Setiap prinsip-prinsip dapat di adaptasi pada proses
perangkat, misalnya menghilangkan pemborosan:
Tidak menambahkan fitur dan fungsi tambahan.
Menilai dampak biaya dan jadwal dari setiap
kebutuhan baru yang diminta.
Menghapus proses langkah yang berlebihan.
Menciptakan mekanisme untuk meningkatkan cara
anggota tim mencari informasi.
Memastikan pengujian menemukan kesalahan
sebanyak mungkin.
Mengurangi waktu yang dibutuhkan dalam
membangun perangkat lunak.
32. Pemodelan Cepat
Metodologi berbasis praktik untuk pemodelan
dan dokumentasi sistem berbasis perangkat
lunak yang efektif.
Kumpulan dari nilai-nilai, prinsip, dan praktik
untuk model perangkat lunak yang dapat
diterapkan pada proyek pengembangan
perangkat lunak secara efektif dan ringan.
33. Proses Terpadu Secara Cepat
Kegiatan proses terpadu Secara Cepat:
Pemodelan: merepresentasikan UML untuk
proses bisnis dan ranah masalah
Pelaksanaan: model tersebut diterjemahkan
kedalam kode sumber.
Pengujian: seperti XP tim perangkat lunak akan
merancanga dan menjalankan serangkaian
pengujian untuk menemukan kesalahan dalam
kode sumber.
34. Proses Terpadu Secara Cepat
Pemasangan: pemasangan dalam konteks ini
berfous pada penghantaran dan umpan balik
dari pengguna akhir.
Konfigurasi dan manajemen proyek:
menelusuri dan mengendalikan kemajuan
tim[manajemen perubahan, manajemen resiko]
Lingkungan manajemen: mengordinasikan
infrastruktur[standar, alat, dan teknologi
pendukung lainya]
35. Summary
Dalam ekonomi modern, kondisi pasar berubah
dengan sangat cepat, pelanggan dan kebutuhan
pengguna akhir berkembang, maka diperlukan
pengembangan perangkat lunak dengan cara
cepat.