pertemuan 3 RPL Pengembangan_cepat

36
Rekayasa Perangkat Lunak Pengembangan Cepat Pertemuan 3 Bentar Priyopradono, S.Kom., M.Cs

description

 

Transcript of pertemuan 3 RPL Pengembangan_cepat

Page 1: pertemuan 3 RPL Pengembangan_cepat

Rekayasa Perangkat LunakPengembangan Cepat

Pertemuan 3

Bentar Priyopradono, S.Kom., M.Cs

Page 2: pertemuan 3 RPL Pengembangan_cepat

Tujuan dan SasaranMengapa 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?

Page 3: pertemuan 3 RPL Pengembangan_cepat

Definisi Pengembangan CepatPenggabungan suatu falsafah dan serangkaian tuntunan pengembangan.Falsafahnya :

Kepuasan pelangganTim-tim proyek yang kecil dan termotivasiMetode-metode informalProduk kerja perangkat lunak yang minimalDan seluruh kesederhanaan pengembangan

Page 4: pertemuan 3 RPL Pengembangan_cepat

Siapa yang Melakukan Pengembangan CepatRekayasawan perangkat lunak

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.

Page 5: pertemuan 3 RPL Pengembangan_cepat

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.

Page 6: pertemuan 3 RPL Pengembangan_cepat

Faktor ManusiaPengembangan 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.

Page 7: pertemuan 3 RPL Pengembangan_cepat

Faktor ManusiaKolaborasi: 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].

Page 8: pertemuan 3 RPL Pengembangan_cepat

Faktor ManusiaSaling 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.

Page 9: pertemuan 3 RPL Pengembangan_cepat

Pemrograman EkstremExtreme Programming (XP) modelModel 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

Page 10: pertemuan 3 RPL Pengembangan_cepat

Pemrograman EkstremXP menekankan kolaborasi antara pelanggan dan pengembang perangkat lunak,Mengomunikasikan konsep-konsep yang penting Menekankan pentingnya adaptasi terhadap umpan balik yang bersifat berkesinambunganDan menekankan dokumentasi yang produktif sebagai suatu media komunikasi.

Page 11: pertemuan 3 RPL Pengembangan_cepat

4 Nilai penting Pemrograman EkstremCommunication/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.

Page 12: pertemuan 3 RPL Pengembangan_cepat

4 Nilai penting Pemrograman EkstremSimplicity/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).

Page 13: pertemuan 3 RPL Pengembangan_cepat

4 Nilai penting Pemrograman EkstremCourage/Berani:

Banyak ide baru dan berani mencobanya, berani mengerjakan kembali dan setiap kali kesalahan ditemukan, langsung diperbaiki.

Page 14: pertemuan 3 RPL Pengembangan_cepat

Proses Pemrograman Ekstrem

Perencanaan

Perancangan

Penulisan Kode

ProgramPengujian

Perangkat lunak yang dapat dikembangkan

lebih lanjut

Peluncuran Perangkat Lunak

Unit pengujianUji penerimaan

Story penggunaKreteria-kreteria

PemrogramanIntegrasi

SolusiPrototipe

Page 15: pertemuan 3 RPL Pengembangan_cepat

Proses Pemrograman EkstremPrencanaan: mendengarkan-suatu kegiatan bertujuan untuk mengumpulkan kebutuhan-kebutuhan, memahami proses bisnis, fitur-fitur utama, dan fungsionalitas.

Perancangan: memberikan panduan implementasi untuk sebuah perangkat lunak.

Page 16: pertemuan 3 RPL Pengembangan_cepat

Proses Pemrograman EkstremPengkodean: 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.

Page 17: pertemuan 3 RPL Pengembangan_cepat

Perdebatan di seputar Pemrograman EkstremIsu-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 informalAkibatnya lingkungan proyek dapat berubah dan sistem kerja harus diubah untuk mengakomodasi kebutuhan

Page 18: pertemuan 3 RPL Pengembangan_cepat

Perdebatan di seputar Pemrograman EkstremKebutuhan 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 diperlukanUntuk memastikan bahwa kelalaian, inkonsistensi, dan kekeliruan ditemukan sebelum perangkat lunak dibangun.

Page 19: pertemuan 3 RPL Pengembangan_cepat

Perdebatan di seputar Pemrograman EkstremKurangnya perancangan formal:

XP kurang menekankan pada kebutuhan akan perancangan arsitektur.Setiap sistem/perangkat lunak yang komplek harus menunjukan kualitas.

Page 20: pertemuan 3 RPL Pengembangan_cepat

Model Prose Cepat LainnyaPengembangan perangkat lunak adaptif [adaptive software development]Pengembangan oleh banyak orang atau scrumMetode pengembangan dinamik [dynamic system development method]KristalPengembangan drive fitur [feature drive development method]Pengembangan perangkat lunak yang ringkas [lean software development]Pemodelan cepat [agile modeling]Proses cepat terpadu [agile unified process]

Page 21: pertemuan 3 RPL Pengembangan_cepat

Pengembangan perangkat lunak adaptifDiperkenalkan oleh “Jim Highsmith”

Fokus pada kolaborasi manusia dan tim yang mandiriSpekulasi: proyek dimulai dan perencanaan siklus adaptif dilakukan [mis. Tanggal penghantaran atau deskripsi pengguna].Kolaborasi: komunikasi dan kerjasama tim perangkat lunak.Pembelajaran: upaya melengkapi siklusFalsafah ASD adalah pada dinamika tim mandiri, kolaborasi interpersonal dan pembelajaran individu dan tim proyek yang menghasilkan perangkat lunak.

Page 22: pertemuan 3 RPL Pengembangan_cepat

Pengembangan perangkat lunak adaptif

spekulasi kolaborasi

pembelajar

an

Pernyataan misiBatasan-batasan proyekKebutuhan-kebutuhan dasar

Penangkapan kebutuhanSpesifikasi

Peluncuran produk Implementasi/pengujian komponen-komponenUmpan balikTinjauan-tinjauan teknis

• Perangkat lunak yang kemudian hari dapat dikembangkan lagi

• Penyesuaian-penyesuaian untuk siklus selanjutnya

Page 23: pertemuan 3 RPL Pengembangan_cepat

Pengembangan oleh banyak orang atau scrumDiperkenalkan oleh “Jeff Sutherland” dan

tim pegembangannya pada th. 1990anDilanjutkan oleh schwaber dan BeedlePrinsip-prinsip scrum konsisten pada pekerjaan cepat dengan kerangka kerja:

KebutuhanAnalisisPerancanganEvolusiDan penghantaran

Efektif untuk proyek dengan jadwal yang ketat, perubahan kebutuhan, bisnis.

Page 24: pertemuan 3 RPL Pengembangan_cepat

Pengembangan oleh banyak orang atau scrum

Setiap 24 jam

30 hariSprint-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 menitAnggota 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

Page 25: pertemuan 3 RPL Pengembangan_cepat

Metode pengembangan sistem dinamikPendekatan 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 kelayakanStudi bisnisIterasi model fungsionalPerancangan dan membangun iterasiimplementasi

Page 26: pertemuan 3 RPL Pengembangan_cepat

Siklus hidup sistem dinamikStudi 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.

Page 27: pertemuan 3 RPL Pengembangan_cepat

Siklus hidup sistem dinamikPerancangan 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

Page 28: pertemuan 3 RPL Pengembangan_cepat

KristalDiperkenalkan 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 unikTujuan untuk memilih tim cepat yang paling sesuai dengan proyek dan lingkungan mereka.

Page 29: pertemuan 3 RPL Pengembangan_cepat

Pengembangan dikendalikan fiturDiperkenalkan 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 unikTujuan untuk memilih tim cepat yang paling sesuai dengan proyek dan lingkungan mereka.

Page 30: pertemuan 3 RPL Pengembangan_cepat

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

[lebih berupa bentuk

daripada isi]

Suatu daftar fitur-fitur yang dapat

dikelompokan menjadi himpunan-himpunan dan area

subjek tertentu

Suatu rencana pengembangan pemilik-pemilik kelas/himpunan

fitur

Suatu paket perancangan

[urutan-urutan]

Fungsi bernilai klien yang lengkap

Pengembangan dikendalikan fitur memberikan penekanan lebih besar pada pedoman manajemen proyek dan teknik ketimbang metode cepat lainya

Page 31: pertemuan 3 RPL Pengembangan_cepat

Pengembangan Perangkat Lunak yang ringkasMengadaptasi prinsip-prinsip manufacturing

ringkas ke dunia rekayasa perangkat lunak

Prinsip-prinsip ringkas [Menghilangkan pemborosan, membangun kualitas, menciptakan pengetahuan, cepat menghantarkan dan mengoptimalkan keseluruhan]

Page 32: pertemuan 3 RPL Pengembangan_cepat

Pengembangan Perangkat Lunak yang ringkasSetiap 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.

Page 33: pertemuan 3 RPL Pengembangan_cepat

Pemodelan CepatMetodologi 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.

Page 34: pertemuan 3 RPL Pengembangan_cepat

Proses Terpadu Secara CepatKegiatan 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.

Page 35: pertemuan 3 RPL Pengembangan_cepat

Proses Terpadu Secara CepatPemasangan: 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]

Page 36: pertemuan 3 RPL Pengembangan_cepat

RangkumanDalam ekonomi modern, kondisi pasar berubah dengan sangat cepat, pelanggan dan kebutuhan pengguna akhir berkembang, maka diperlukan pengembangan perangkat lunak dengan cara cepat.