Presentasi Mengenal RAD, Agile & Extreme Programming sebagai salah satu materi dari mata kuliah Rekayasa Perangkat Lunak (Sofware Development Life Cycle)
Bersama:
Raka Maheka Auramuwahid (0617104023)
Agung Laksono (0617104034)
Rekayasa Perangkat Lunak - Model Pengembangan Sistem
Rad, Agile & Extreme Programming
1. RAD, Agile & Extreme
Programming
Bersama
Mengenal
Agung Laksono (0617104034)
Raka Maheka A (0617104023)
RPL-2019
2. Agenda
1. RAD
• Definisi & Konsep RAD
• Model RAD
• Fase-fase Pengembangan RAD
• Kelebihan dan Kekurangan RAD
• Tipe proyek yang cocok dengan model RAD
2. Agile
• Definisi & Konsep Agile
• Agile Manifesto
• 12 Prinsip Agile
• Agile Process Model
• Kelebihan dan Kekurangan Agile
• Tipe proyek yang cocok dengan model Agile
RPL-
2019
3. 3. Extreme Programming
• Definisi & Konsep Extreme Programming
• Nilai-nilai Dasar Extreme Programming
• Fase-fase Pengembangan Extreme Programming
• Kelebihan dan Kekurangan Extreme Programming
• Tipe proyek yang cocok untuk Extreme Programming
RPL-
2019
5. RAD (Rapid Application Development)
Definisi RAD dari beberapa sumber,
1 Menurut McLeod, 2002, Rapid Application Development (RAD) adalah strategi siklus hidup yang
ditujukan untuk menyediakan pengembangan yang jauh lebih cepat dan mendapatkan hasil
dengan kualitas yang lebih baik dibandingkan dengan hasil yang dicapai melalui siklus
tradisional
RPL-
2019
2 Menurut Bentley, 2004, RAD merupakan gabungan dari bermacam-macam teknik terstruktur
dengan teknik prototyping dan teknik pengembangan joint application untuk mempercepat
pengembangan sistem/aplikasi
3 Menurut Kendall, 2010, RAD adalah suatu pendekatan berorientasi objek terhadap
pengembangan sistem yang mencakup suatu metode pengembangan serta perangkat-
perangkat lunak
6. Konsep RAD
Pemaparan konsep yang lebih spesifik dijelaskan oleh Pressman
(2005) dalam bukunya, “Software Engineering: A Practitioner’s
Approach”. Ia mengatakan bahwa RAD adalah proses model
perangkat lunak inkremental yang menekankan siklus
pengembangan yang singkat. Model RAD adalah sebuah
adaptasi “kecepatan tinggi” dari model waterfall, di mana
perkembangan pesat dicapai dengan menggunakan pendekatan
konstruksi berbasis komponen. Jika tiap-tiap kebutuhan dan
batasan ruang lingkup projek telah diketahui dengan baik,
proses RAD memungkinkan tim pengembang untuk
menciptakan sebuah “sistem yang berfungsi penuh” dalam
jangka waktu yang sangat singkat.
RPL-
2019
7. Model RAD
Component based construction ( pemrograman berbasis komponen bukan prosedural).
Penekanan pada penggunaan ulang (reuse) komponen perangkat lunak yang telah ada.
Pembangkitan kode program otomatis/semi otomatis.
Multiple team (banyak tim), tiap tim menyelesaikan satu tugas yang selevel tetapi tidak sama.
Banyaknya tim tergantung dari area dan kompleksitasnya sistem yang dibangun.
RPL-
2019
9. Fase-fase Pengembangan RAD
1 Requirements Planning
RPL-
2019
2 User Design
Meneliti masalah klien/pengguna saat ini
Mengidentifikasi tujuan-tujuan untuk proyek/produk
Menentukan persyaratan untuk proyek/produk
Finalisasi persyaratan dengan persetujuan masing-masing pihak yang
berkepentingan
Menjelaskan pola kerja dari penganalisis dengan klien/pengguna
Membuat prototipe sebagai representasi visual desain yang akan
dikembangkan
Melakukan testing dengan baik internal maupun eksternal dengan
klien/pengguna
Melakukan perbaikan dari feedback yang diberikan klien/pengguna
10. 3 Construction
RPL-
2019
4 Cutover
Mempersiapkan untuk konstruksi pengembangan
Implementasi prototipe dari sisi visual desain
Coding program untuk pengembangan aplikasi
Melakukan testing baik unit testing, integrasi dan sistem
Finalisasi dari pengembangan aplikasi
Pengecekan ulang baik dari data, integrasi, sistem dan aplikasi
Persiapan untuk release aplikasi dan deliver ke klien/pengguna
11. Kelebihan RAD
Penghematan waktu dalam keseluruhan fase projek dapat dicapai.
Tim pengembangan RAD ini relatif sedikit namun lebih produktif
RAD mengurangi seluruh kebutuhan yang berkaitan dengan biaya projek dan sumber daya
manusia.
RAD sangat membantu pengembangan aplikasi yang berfokus pada waktu penyelesaian projek.
Perubahan desain sistem dapat lebih berpengaruh dengan cepat dibandingkan dengan
pendekatan SDLC tradisional.
Sudut pandang user disajikan dalam sistem akhir baik melalui fungsi-fungsi sistem atau
antarmuka pengguna.
RAD menciptakan rasa kepemilikan yang kuat di antara seluruh pihak kebijakan projek
RPL-
2019
12. Kekurangan RAD
Dengan metode RAD, penganalisis berusaha mepercepat projek dengan terburu-buru.
Tidak cocok untuk tim yang besar yang dimana butuh kolaborasi yang kuat
Kelemahan yang berkaitan dengan waktu dan perhatian terhadap detail. Aplikasi dapat
diselesaikan secara lebih cepat, tetapi tidak mampu mengarahkan penekanan terhadap
permasalahan-permasalahan perusahaan yang seharusnya diarahkan.
RAD menyulitkan programmer yang tidak berpengalaman menggunakan perangkat ini di mana
programmer dan analyst dituntut untuk menguasai kemampuan-kemampuan baru sementara
pada saat yang sama mereka harus bekerja mengembangkan sistem.
RPL-
2019
13. Tipe proyek yang cocok dengan RAD
RPL-
2019
Project Scope : Terfokus dan tujuan bisnisnya sudah didefinisikan dengan
baik dan cocok untuk pengembangan proyek yang kecil
Project Data : Data untuk proyek sudah ada (sepenuhnya atau sebagian).
Tidak untuk data yang kompleks karena perlu dianalisis
Project Decisions : Keputusan proyek atau pengembangan dibuat oleh
sejumlah kecil orang yang tersedia dan ditempatkan bersama
Project Teams : Jumlah tim yang sedikit (6 orang atau kurang)
15. Agile Development Methods
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 metode pengembangan perangkat lunak yang
digunakan dalam pengembangan perangkat lunak.
RPL-
2019
i
16. Konsep Agile
Kata Agile berarti bersifat cepat, ringan, bebas bergerak, waspada. Kata ini digunakan
sebagai kata yang mengambarkan konsep model proses yang berbeda dari konsep
model-model proses yang sudah ada.
RPL-
2019
Agile (tangkas) adalah satu pola pikir dan kebiasaan.
Ada tiga poin penting dalam agile, yakni: (1) mengindentifikasi masalah dan/atau
peluang, (2) bergerak menindaklanjutinya, dan (3) melakukan keduanya secara
iteratif tanpa henti dan dengan periode yang singkat.
Dalam situs agilecampus.org, disebutkan juga bahwa:
17. Agile Manifesto
Agile Manifesto merupakan nilai-nilai yang digunakan dalam mendasari berlangsungnya Agile
Software Development. Agile Manifesto muncul dilatarbelakangi oleh frustasi para software
developer akibat metode yang digunakan pada saat itu, yaitu Waterfall Model.
Pada tahun 2000, Jon Kern, Kent Beck, Ward Cunningham, Arie van Bennekum, Alistair Cockburn,
dan 12 orang lainnya mengadakan pertemuan di Oregon dan kemudian pada tahun 2001 di The
Lodge, Utah. Pertemuan tersebut menghasilkan Agile Manifesto yang dituliskan secara formal. Dan
lahir 4 nilai utama Agile Manifesto
1. Individuals and Interactions Over Processes and Tools
2. Working Software Over Comprehensive Documentation
3. Customer Collaboration Over Contract Negotiation
4. Responding to Change Over Following a Plan RPL-
2019
18. 12 Prinsip Agile
1. Kepuasan klien adalah prioritas utama dengan menghasilkan produk lebih awal dan
terus menerus
2. Menerima perubahan kebutuhan, sekalipun diakhir pengembangan.
3. Penyerahan hasil/software dalam hitungan waktu dua minggu sampai dua bulan.
4. Bagian bisnis dan pembangun kerja sama tiap hari selama proyek berlangsung
5. Membangun proyek dilingkungan orang-orang yang bermotivasi tinggi yang bekerja
dalam lingkungan yang mendukung dan yang dipercaya untuk dapat menyelesaikan
proyek.
6. Komunikasi dengan berhadapan langsung adalah komunikasi yang efektif dan efisien
7. Software yang berfungsi adalah ukuran utama dari kemajuan proyek
RPL-
2019
19. 12 Prinsip Agile
8. Dukungan yang stabil dari sponsor, pembangun, dan pengguna diperlukan untuk
menjaga perkembangan yang berkesinambungan
9. Perhatian kepada kehebatan teknis dan desain yang bagus meningkatkan sifat agile
10.Kesederhanaan penting
11.Arsitektur, kebutuhan dan desain yang bagus muncul dari tim yang mengatur dirinya
sendiri
12.Secara periodik tim evaluasi diri dan mencari cara untuk lebih efektif dan segera
melakukannya.
RPL-
2019
20. Agile Process Model
Berikut ini adalah model-model proses yang termasuk agile process model :
• Extreme Programming (XP)
• Adaptive Software Development (ASD)
• Dynamic Systems Development Method (DSDM)
• Scrum
• Crystal
• Feature Driven Development (FDD)
• Agile Modeling (AM)
• Spotify
• SAFe
RPL-
2019
21. Kelebihan Agile
Meningkatkan kepuasan kepada klien.
Dapat melakukan review pelanggan mengenai software yang dibuat lebih awal.
Pembangunan system dibuat lebih cepat.
Mengurangi resiko kegagalan implementasi software dari segi non-teknis.
Jika pada saat pembangunan system terjadi kegagalan kerugian dari segi materi relatif kecil.
RPL-
2019
22. Kekurangan Agile
Mendefiniskan Agile berdasarkan pengetahuan sendiri tanpa mengacu pada Agile Manifesto &
Principles
Agile tidak akan berjalan dengan baik jika komitmen tim kurang.
Agile tidak akan berjalan jika dalam tim tidak ada transparansi
Agile tidak akan berjalan tanpa adanya visi product
RPL-
2019
23. Tipe proyek yang cocok dengan Agile
RPL-
2019
Agile dapat menjadi solusi untuk proyek yang kompleks
Proyek yang memiliki perubahan yang cukup cepat
Proyek yang tidak memerlukan banyak dokumentasi dan birokrasi
Proyek yang menginginkan release secara cepat dan berkala
25. Extreme Programming
Extreme Programming (XP) adalah metode pengembangan perangkat lunak yang
ringan dan termasuk salah satu agile methods yang dipelopori oleh Kent Beck,
Ron Je ries, dan Ward Cunningham. XP juga merupakan metode pengembangan
yang mengutamakan peningkatan kualitas software secara berkesinambungan.
Definisi menurut Kent Beck,
“Extreme Programming (XP) is a lightweight, efficient, low-risk, flexible,
predictable, scientific, and fun way to develop software.”
RPL-
2019
i
26. Konsep Extreme Programming
Extreme Programming (XP) diterapkan pada proyek
yang membutuhkan hasil pemrograman yang sangat
baik, sangat reliabel, dan benar-benar teruji. Oleh
karenanya, metode ini mendukung penerapan pair
programming (pemrograman yang dikerjakan oleh dua
orang programmer).
RPL-
2019
i
27. Nilai-nilai Dasar Extreme Programming
RPL-
2019
1
Communication
XP mengfokuskan pada hubungan
komunikasi yang baik antar anggota tim.
2
Courage
Para anggota tim dan penanggungjawab
pengembangan perangkat lunak harus selalu
memiliki keyakinan dan integritas dalam
melakukan tugasnya.
3
Simplicity
Lakukan semua dengan sederhana.
4
Feedback
Berikan selalu feedback kepada sesama anggota
tim maupun pihak-pihak lain yang terlibat dalam
pengembangan perangkat lunak.
5
Quality Work
Dengan proses yang berkualitas maka implikasinya
akan muncul pula perangkat lunak yang
berkualitas sebagai hasil akhirnya.
29. Fase-fase Pengembangan XP
1 Planning
RPL-
2019
2 Design
Membuat User Stories di Indeks Card
Membuat Requirements dan Acceptance Criteria
Menentukan Prioritas
Memisahkan spike
Membuat Release Plan
Memanfaatkan kartu CRC (Class-ResponsibilityCollaborator) untuk
identifikasi dan mengatur class-class di konsep OOP
Membuat prototype untuk spike solution
30. 3 Coding
RPL-
2019
4 Test
Coding program untuk pengembangan aplikasi
Melakukan Pair Programming
Melakukan Refactoring Code
Melakukan tes scenario dari user stories
Melakukan unit testing, integration test
Melakukan Continuous Integration
Jika ada bug lempar ke coding lagi
Menentukan Acceptance Test
Melakukan small release
Persetujuan dari klien
5 Release
31. Kelebihan Extreme Programming
Metode yang populer karena lebih santai dan non-restriktif.
Biaya lebih murah.
Mampu mengotomatiskan tes.
Setiap feedback ditanggapi dengan melakukan tes, unit tes atau system integration dan jangan
menunda karena biaya akan membengkak (uang, tenaga, waktu).
Banyak ide baru dan berani mencobanya, berani mengerjakan kembali dan setiap kali kesalahan
ditemukan, langsung diperbaiki.
Meningkatkan komunikasi dan sifat saling menghargai antar developer.
RPL-
2019
32. Kekurangan Extreme Programming
Cerita-cerita yang menunjukkan requirements kemungkinan besar tidak lengkap sehingga
Developer harus selalu siap dengan perubahan karena perubahan akan selalu diterima.
Tidak bisa membuat kode yang detail di awal (prinsip simplicity dan juga anjuran untuk
melakukan apa yang diperlukan hari itu juga).
User strories lebih fokus kepada kebutuhan fungsional dari pada fokus kepada kebutuhan non
fungsional.
XP tidak memiliki dokumentasi formal yang dibuat selama pengembangan. Satu-satunya
dokumentasi adalah dokumentasi awal yang dilakukan oleh user.
RPL-
2019
33. Tipe proyek yang cocok dengan XP
RPL-
2019
Proyek yang belum terdefinisi dengan jelas
Proyek yang memiliki perubahan yang cukup cepat
Proyek yang tidak memerlukan banyak dokumentasi dan birokrasi
Proyek yang menginginkan release secara cepat dan berkala