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
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?
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
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.
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.
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.
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].
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.
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
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.
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.
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).
4 Nilai penting Pemrograman Ekstrem
 Courage/Berani:
Banyak ide baru dan berani mencobanya,
berani mengerjakan kembali dan setiap kali
kesalahan ditemukan, langsung diperbaiki.
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
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.
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
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.
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.
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]
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.
Pengembangan perangkat lunak adaptif
• Perangkat lunak yang
kemudian hari dapat
dikembangkan lagi
• Penyesuaian-
penyesuaian untuk siklus
selanjutnya
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.
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
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
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.
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
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.
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.
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
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]
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.
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.
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.
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]
Summary
 Dalam ekonomi modern, kondisi pasar berubah
dengan sangat cepat, pelanggan dan kebutuhan
pengguna akhir berkembang, maka diperlukan
pengembangan perangkat lunak dengan cara
cepat.
Terimakasih

More Related Content

PPTX
Power point materi blog
PDF
Aturan produksi Finite State Automata
PPTX
Proses rekayasa perangkat lunak
DOCX
Dokumen perencanaan-proyek-perangkat-lunak
DOC
Soal Latihan OSI Layer
PPTX
Pertemuan 1 Sistem Basis Data.pptx
PPTX
Pertemuan 2 Pemodelan Perangkat Lunak
PPT
Rekayasa Perangkat Lunak - Model Pengembangan Sistem
Power point materi blog
Aturan produksi Finite State Automata
Proses rekayasa perangkat lunak
Dokumen perencanaan-proyek-perangkat-lunak
Soal Latihan OSI Layer
Pertemuan 1 Sistem Basis Data.pptx
Pertemuan 2 Pemodelan Perangkat Lunak
Rekayasa Perangkat Lunak - Model Pengembangan Sistem

What's hot (20)

DOCX
Dokumen perencanaan-proyek-perangkat-lunak
PDF
PPT
4. pengamanan sistem operasi
PPTX
Persyaratan sistem dan dokumen perangkat lunak
DOC
Kebutuhan fungsional aplikasi simpel
PPTX
INTEGRASI APLIKASI PERKANTORAN.pptx
PPTX
Basis data klien server
PPTX
firewall.pptx
PPT
Sistem Basis Data(PPT)
DOCX
Antarmuka Berbasis Interaksi Grafis
PPTX
#1 PENGENALAN PYTHON
PDF
Ch 02 - Hubungan Software Development Life Cycle (SDLC) dan Testing
DOCX
Dokumen Final Project Manajemen Proyek Perangkat Lunak
PDF
Sistem pendaftaran pasien dan rekam medis klinik
DOC
Program kerja tahunan kaprok rpl
PDF
Keamanan sistem operasi
PPTX
1-Unidad 1. Arquitectura de Diseño
PPT
Komponen Perangkat Lunak
PPTX
Ppsi pertemuan-7-cost-management
PDF
Informasi dan Publikasinya Kelas 9
Dokumen perencanaan-proyek-perangkat-lunak
4. pengamanan sistem operasi
Persyaratan sistem dan dokumen perangkat lunak
Kebutuhan fungsional aplikasi simpel
INTEGRASI APLIKASI PERKANTORAN.pptx
Basis data klien server
firewall.pptx
Sistem Basis Data(PPT)
Antarmuka Berbasis Interaksi Grafis
#1 PENGENALAN PYTHON
Ch 02 - Hubungan Software Development Life Cycle (SDLC) dan Testing
Dokumen Final Project Manajemen Proyek Perangkat Lunak
Sistem pendaftaran pasien dan rekam medis klinik
Program kerja tahunan kaprok rpl
Keamanan sistem operasi
1-Unidad 1. Arquitectura de Diseño
Komponen Perangkat Lunak
Ppsi pertemuan-7-cost-management
Informasi dan Publikasinya Kelas 9
Ad

Similar to Extreme Programming (20)

PDF
Kelompok 2 agile software development
PPTX
Week 5 - Agile Methods and Software Engineering Practice.pptx
PPT
7. Agile sytem for the digital business .ppt
PPTX
Ppt ddppl-zainullah
PPTX
AGILE_DEVELOPMENT METODE MANAJEMEN .pptx
PDF
Model Agile & eXtreme Programming (XP)
PPTX
Agile Development manakemen proyek perkuliahan sistem infiormasi
PPTX
Metodologi extreme programming
PDF
Perancangan perangkat lunak
DOCX
Pemodelan Perangkat Lunak
PPTX
Perkuliahan 02 Model software engginer
PPTX
Extreme Programming
PPS
Scrum in agile
PDF
83 165-1-sm (1)
PDF
PPTX
Extreme programming
PPTX
Meeting 3 metode pengembangan sistem
DOCX
Rangkuman SDLC
Kelompok 2 agile software development
Week 5 - Agile Methods and Software Engineering Practice.pptx
7. Agile sytem for the digital business .ppt
Ppt ddppl-zainullah
AGILE_DEVELOPMENT METODE MANAJEMEN .pptx
Model Agile & eXtreme Programming (XP)
Agile Development manakemen proyek perkuliahan sistem infiormasi
Metodologi extreme programming
Perancangan perangkat lunak
Pemodelan Perangkat Lunak
Perkuliahan 02 Model software engginer
Extreme Programming
Scrum in agile
83 165-1-sm (1)
Extreme programming
Meeting 3 metode pengembangan sistem
Rangkuman SDLC
Ad

More from Universitas Teknokrat Indonesia (20)

PPTX
Meeting 2 - Konsep dan Metode Penelitian Ilmu Komputer.pptx
PPTX
Teknik Pengumpulan Data.pptx
PPTX
PPTX
PPTX
Unified Modelling Language (UML)
PPTX
Kerangka Penelitian
PPTX
PPTX
Rancangan Penelitian
PPTX
Rumusan Masalah dan Latar Belakang
PPTX
PPTX
Meeting 2 konsep dan metode penelitian ilmu komputer
PPTX
Meeting 2 pengembangan sistem
PPTX
Meeting 1 - Fundamental Sistem Informasi
PPTX
Soal UTS Aplikom Akuntansi 2
PPT
Revolusi Industri 4.0
PPT
Etika Bisnis dan E-commerce
Meeting 2 - Konsep dan Metode Penelitian Ilmu Komputer.pptx
Teknik Pengumpulan Data.pptx
Unified Modelling Language (UML)
Kerangka Penelitian
Rancangan Penelitian
Rumusan Masalah dan Latar Belakang
Meeting 2 konsep dan metode penelitian ilmu komputer
Meeting 2 pengembangan sistem
Meeting 1 - Fundamental Sistem Informasi
Soal UTS Aplikom Akuntansi 2
Revolusi Industri 4.0
Etika Bisnis dan E-commerce

Recently uploaded (20)

PDF
Modul Ajar Deep Learning Bahasa Inggris Kelas 6 Kurikulum Merdeka
DOC
RPP Deep Learning _ MGMP Wilayah 1 (1).doc
PPTX
Perubahan Pengertian_Istilah _Pelatihan "Ketentuan TERBARU Pengadaan Pemerin...
PPTX
Pengantar pembelajaran_Koding_dan kecerdasan artifisial
PDF
PPT Yudisium Ceremony Agusus 2025 - new. pdf
DOCX
Modul Ajar Pembelajaran Mendalam PJOK Kelas XII Terbaru 2025
PDF
Modul Ajar Deep Learning IPAS Kelas 6 Kurikulum Merdeka
DOCX
LK 1.1.a.2_Modul 2 Pelatihan Koding dan Artifisial
DOCX
Modul 5_Instrumen Analisis Perencanaan Pembelajaran Mendalam (2).docx
PPTX
Saint Maximilian Kolbe, Polish friar, priest, missionary and martyr (indonesi...
PPTX
Ekspresi_dan_Operasi_Logika informatika smp kelas 9
PDF
Laporan On The Job TRaining PM KS Siti Hikmah.pdf
PDF
IN1.2.E. kelompok 2.docx kerangka pembelajaran mendalam.pdf
PPTX
Pedoman & Kewajiban Penggunaan Produksi Dalam Negeri _Pelatihan "Ketentuan T...
PPTX
ppt_bola_basket_kelas x sma mata pelajaran pjok.pptx
PPTX
! Keterampilan Digital dalam orgnasisasi.pptx
PDF
Konsep Dasar Nifas, Neonatus, Bayi, Balita dan Anak Pra Sekolah.pdf
PPTX
!!!!Bahan Tayang Kompetensi Manajerial-AKUNTABILITAS KINERJA-DR Asep Iwa.pptx
PDF
Laporan On The Job TRaining PM KS Siti Hikmah.pdf
PPTX
PPT REVISED - SEMINAR PEMBELAJARAN MENDALAM .pptx
Modul Ajar Deep Learning Bahasa Inggris Kelas 6 Kurikulum Merdeka
RPP Deep Learning _ MGMP Wilayah 1 (1).doc
Perubahan Pengertian_Istilah _Pelatihan "Ketentuan TERBARU Pengadaan Pemerin...
Pengantar pembelajaran_Koding_dan kecerdasan artifisial
PPT Yudisium Ceremony Agusus 2025 - new. pdf
Modul Ajar Pembelajaran Mendalam PJOK Kelas XII Terbaru 2025
Modul Ajar Deep Learning IPAS Kelas 6 Kurikulum Merdeka
LK 1.1.a.2_Modul 2 Pelatihan Koding dan Artifisial
Modul 5_Instrumen Analisis Perencanaan Pembelajaran Mendalam (2).docx
Saint Maximilian Kolbe, Polish friar, priest, missionary and martyr (indonesi...
Ekspresi_dan_Operasi_Logika informatika smp kelas 9
Laporan On The Job TRaining PM KS Siti Hikmah.pdf
IN1.2.E. kelompok 2.docx kerangka pembelajaran mendalam.pdf
Pedoman & Kewajiban Penggunaan Produksi Dalam Negeri _Pelatihan "Ketentuan T...
ppt_bola_basket_kelas x sma mata pelajaran pjok.pptx
! Keterampilan Digital dalam orgnasisasi.pptx
Konsep Dasar Nifas, Neonatus, Bayi, Balita dan Anak Pra Sekolah.pdf
!!!!Bahan Tayang Kompetensi Manajerial-AKUNTABILITAS KINERJA-DR Asep Iwa.pptx
Laporan On The Job TRaining PM KS Siti Hikmah.pdf
PPT REVISED - SEMINAR PEMBELAJARAN MENDALAM .pptx

Extreme Programming

  • 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.