Anda di halaman 1dari 11

NAMA : RAHMAT HIDAYAT

NIM : 1815025091
KELAS : ILKOM B 2018
MATKUL : REKAYASA PERANGKAT LUNAK

AGILE DEVELOPMENT

Metodologi dalam perangkat lunak digunakan untuk merancang atau membangun


suatu perangkat lunak,dengan perkembangan teknologi yang sangat pesat metodologi
perangkat lunak juga terjadi perubahan atau penambahan requirements. Dari model waterfall
sampai dengan model-model incremental. Semua metodologi yang berkembang sebelumnya
tidak mampu menangani kemungkinan perubahan atau penambahan requirements.

Metode pengembangan perangkat lunak telah dilacak kembali pada tahun 1957. Pada
tahun tersebut EA Edmonds telah memperkenalkan proses pengembangan perangkat lunak
adaptif. “Lightwight” merupakan metode pengembangan perangkat lunak yang berkembang
pada tahun 1990, sebagai reaksi terhadap apa yang disebut metode “heavyweight”. Yang
ditandai dengan kritik mereka terhadap metode waterfall

Pada tahun 90-an diperkenalkan dengan metodologi baru yang dikenal dengan nama
agile methods,kata Agile berarti bersifat cepat, ringan, bebas bergerak, waspada. Metodologi
yang dikenal sebagai agile methods ini mengutamakan fleksibilitas terhadap perubahan-
perubahan yang terjadi selama pengembangan. Bahkan perubahan ataupun penambahan pada
saat fase terakhir pun teratasi apabila menggunakan metodologi ini.

Agile Methods dikembangkan karena pada metodologi tradisional terdapat banyak hal
yang membuat proses pengembangan tidak dapat berhasil dengan baik sesuai tuntutan user.
Konsep Agile Software Development dicetuskan oleh Kent Beck dan 16 rekannya dengan
menyatakan bahwa Agile Software Development adalah cara membangun software dengan
melakukannya dan membantu orang lain membangunnya sekaligus.
1. Pengertian

Agile methods merupakan salah satu dari beberapa metode yang digunakan dalam
pengembangan sooftware. Agile method adalah jenis pegembangan sistem jangka pendek
yang memerlukan adaptasi cepat dan pengembang terhadap perubahan dalam bentuk apapun.

Dalam Agile Software Development interaksi dan personel lebih penting dari pada
proses dan alat, software yang berfungsi lebih penting daripada dokumentasi yang lengkap,
kolaborasi dengan klien lebih penting dari pada negosiasi kontrak, dan sikap tanggap
terhadap perubahan lebih penting daripada mengikuti rencana.

Agile Method juga dapat diartikan sekelompok metodologi pengembangan software


yang didasarkan pada prinsip-prinsip yang sama atau pengembangan system jangka pendek
yang memerlukan adaptasi cepat dari pengembang terhadap perubahan dalam bentuk apapun

1.1. Prinsip Agile Software Development

Agile Software Development juga melihat pentingnya komunikasi antara anggota tim,
antara orang-orang teknis dan businessmen, antara developer dan managernya. Ciri lain
adalah klien menjadi bagian dari tim pembangun software. Ciri-ciri ini didukung oleh 12
prinsip yang ditetapkan oleh Agile Alliance. Menurut Agile Alliance, 12 prinsip ini adalah
bagi mereka yang ingin berhasil dalam penerapan Agile Software Development:
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 beberapa minggu sampai beberapa
bulan.
4. Pihak bisnis dan pengembang harus bekerja sama setiap hari selama pengembangan
berjalan.
5. Membangun proyek dilingkungan orang-orang yang bermotivasi tinggi yang bekerja
dalam lingkungan yang mendukun 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
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 muncuk dari tim yang mengatur dirinya
sendiri
12. Secara periodik tim evaluasi diri dan mencari cara untuk lebih efektif dan segera
melakukannya.

Dua belas prinsip tersebut menjadi suatu dasar bagi model-model proses yang punya sifat
agile. Dengan prinsip-prinsip tersebur Agile Process Model berusaha untuk menyiasati 3
asumsi penting tentang proyek software pada umumnya:

1. Kebutuhan software sulit diprediksi dari awal dan selalu akan berubah. Selain itu, prioritas
klien juga sering berubah seiring berjalannya proyek.
2. Desain dan pembangunan sering tumpang tindih. Sulit diperkirakan seberapa jauh desain
yang diperlukan sebelum pembangunan.
3. Analisis, desain, pembangunan dan testing tidak dapat diperkirakan seperti yang
diinginkan.

Kelebihan dari Agile Method


Meningkatkan kepuasan kepada klien
Pembangunan system dibuat lebih cepat
Mengurangi resiko kegagalan implementasi software dari segi non-teknis
Jika pada saat pembangunan system terjadi kegagalan,kerugian dar segi materi relative kecil.

1.2. Model-model Agile method


– Extreme Programmning (XP)
– Adaptive Software Development (ASD)
– Dynamic Systems Development Method (DSDM)
– Scrum Methodology
– Crystal
– Feature Driven Development (FDD)
– Agile Modeling (AM)
– Rational Unified Process

1.2.1. Extreme Programmning (XP)


Proyek Pemrograman Extreme pertama dimulai 6 Maret 1996. Extreme Programming
adalah salah satu dari beberapa Proses Agile populer. Sudah terbukti sangat sukses di banyak
perusahaan dari berbagai ukuran dan industri di seluruh dunia.

Extreme Pemrograman berhasil karena menekankan kepuasan pelanggan. Alih-alih


memberikan semua yang anda mungkin inginkan pada tanggal beberapa jauh di masa depan
proses ini memberikan perangkat lunak yang Anda butuhkan saat Anda membutuhkannya.
Extreme Pemrograman memberdayakan pengembang Anda untuk percaya diri menanggapi
perubahan kebutuhan pelanggan, bahkan terlambat dalam siklus hidup.

Extreme Pemrograman menekankan kerja sama tim. Pengelola, pelanggan, dan


pengembang semua mitra setara dalam sebuah tim kolaboratif. Extreme Pemrograman
menerapkan, sederhana namun efektif yang memungkinkan tim lingkungan menjadi sangat
produktif. Tim mengorganisir diri mengatasi masalah untuk menyelesaikannya seefisien
mungkin.

Extreme Pemrograman meningkatkan proyek perangkat lunak dalam lima cara


penting; komunikasi, kesederhanaan, umpan balik, rasa hormat, dan keberanian. Extreme
Programmer selalu berkomunikasi dengan pelanggan mereka dan programer sesama. Mereka
terus desain mereka yang sederhana dan bersih.

Extreme Programming sebagai sebuah metode yang dinamis diperlihatkan dalam


empat values yang dimilikinya dan keempatnya merupakan dasar-dasar yang diperlukan
dalam Extreme Programming. Kent Beck menyatakan bahwa tujuan jangka pendek individu
sering berbenturan dengan tujuan sosial jangka panjang. Karena itu dibuatlah values yang
menjadi aturan, hukuman, dan juga penghargaan. Keempat values tersebut adalah :

Komunikasi (Communication)
Tugas utama developer dalam membangun suatu sistem perangkat lunak adalah
mengkomunikasikan kebutuhan sistem kepada pengembang perangkat lunak. Komunikasi
dalam Extreme Programmning 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. Tujuannya untuk memberikan pandangan pengembang sesuai dengan
pandangan pengguna sistem.

Kesederhanaan (Simplicity)
XP mencoba untuk mencari solusi paling sederhana dan praktis. Perbedaan metode ini
dengan metodologi pengembangan sistem konvensional lainnya terletak pada proses desain
dan coding yang terfokus pada kebutuhan saat ini daripada kebutuhan besok, seminggu lagi
atau sebulan lagi. Lebih baik melakukan hal yang sederhana dan mengembangkannya besok
jika diperlukan.

Umpan Balik (Feedback)


Hal ini diperlukan untuk mengetahui kemajuan dari proses dan kualitas dari aplikasi
yang dibangun. Informasi ini harus dikumpulkan setiap interval waktu yang singkat secara
konsisten. Ini dimaksudkan agar hal-hal yang menjadi masalah dalam proses pengembangan
dapat diketahui sedini mungkin. Setiap feed back ditanggapi dengan melakukan tes, unit test
atau system integration dan jangan menunda karena biaya akan membengkak (uang, tenaga,
waktu).

Keberanian (Courage)
Berani mencoba ide baru. Berani mengerjakan kembali dan setiap kali kesalahan
ditemukan, langsung diperbaiki. Contoh dari courage adalah komitmen untuk selalu
melakukan design dan coding untuk saat ini dan bukan untuk esok. Ketika ada kode yang
terlalu rumit, sulit dibaca dan dipahami, tidak sesuai dengan kemauan pelanggan, dll maka
seharusnya kode program seperti itu di refactor (kalau perlu dibangun ulang). Hal ini
menjadikan pengembang merasa nyaman dengan refactoring program ketika diperlukan.

Extreme Programming menggunakan pendekatan berorientasi objek. Pada aktifitas


Perencanaan terjadi pengumpulan user stories dari klien yang klien tetapkan prioritasnya.
Setiap story ditetapkan harga dan lama pembangunan, jika terlalu besar, story dapat dipecah
menjadi beberapa story yang lebih kecil. Terjadi pemeriksaan dan pertimbangkan resiko dan
aktifitas Desain kegiatannya sederhana yaitu memanfaatkan kartu CRC (Class-
Responsibility-Collaborator) untuk identifikasi dan mengatur class-class di konsep OO. Jika
temuikan kesulitan, prototype dibangun [ini namanya spike solution].

Dilakukannya refactoring, yaitu mengembangkan desain dari program setelah ditulis.


Pada aktifitas Pengkodean adalah penyiapan unit test sebelum pengkodean dipakai sebagai
focus pemrogram untuk membuat program. Pair programming dilakukan untuk real time
program solving dan real time quality assurance. Proses pengujiannya menggunakan unit test
yang dipersiapkan sebelum pengkodean Menggunakan pendekatan berorientasi objek

Kerugian Extreme Programmning :


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

1.2.2. Adaptive Software Development (ASD)


Adaptive Software Development (ASD) diajukan oleh Jim Highsmith sebagai teknik
untuk membangun software dan sistem yang kompleks. Filosofi yang mendasari Adaptive
Software Development (ASD) adalah kolaborasi manusia dan tim yang mengatur diri sendiri.

System kerja adaptive software development : Collaboration dan Learning

Adaptive cycle planning yaitu menggunakan informasi awal seperti misi dari klien,
batasan proyek dan kebutuhan dasar untuk definisikan rangkaian software increment (produk
software yang secara berkala diserahkan)

Collaboration : orang-orang yang bermotivasi tinggi bekerja sama: saling


melengkapi, rela membantu, kerja keras, trampil di bidangnya, dan komunikasikan masalah
untuk hasilkan penyelesaian yang efektif.

Learning: tim pembangun sering merasa sudah tahu semua hal tentang proyek,
padahal tidak selamanya begitu. Karena itu proses ini membuat mereka belajar lebih tentang
proyek melalui 3 cara:
– Focus group: klien dan pengguna memberi masukan terhadap software

– Formal Technique Reviews: Tim ASD lengkap melakukan review


– Postmortems: Tim ASD lakukan instrospeksi pada kinerja dan proses.

1.2.3. Dynamic Systems Development Method (DSDM)


Pada Dynamic System Development Method menyajikan kerangka kerja (framework)
untuk membangun dan memelihara sistem dalam waktu yang terbatas melalui penggunaan
prototyping yang incremental dalam lingkungan yang terkondisikan. Metode ini akan
membangun software dengan cepat: 80% dari proyek diserahkan dalam 20% dari waktu total
untuk menyerahkan proyek secara utuh.

Dynamic System Development Method dapat dikombinasikan dengan Extreme


Programmning menghasilkan kombinasi model proses yang mengikuti Dynamic System
Development Method dan praktek yang sejalan dengan Extreme Programmning.

Dynamic System Development Method memiliki beberapa aaktifitas seperti :


– Feasibility study : siapkan requirement, dan batasan, lalu uji apakah sesuai gunakan proses
DSDM
– Business Study: susun kebutuhan fungsional dan informasi, tentukan arsitektur aplikasi
dan identifikasi kebutuhan pemeliharaan untuk aplikasi
– Functional model iteration : hasilkan incremental prototype yang perlihatkan fungsi
software ke klien untuk dapatkan kebutuhan lebih jelas dan konfirmasi
– Design and Build Iteration : cek ulang prototype yang dibangun untuk pastikan bahwa
prototype dibangun dengan cara yang memungkinkan fungsi tersebut benar-benar bekerja
– Implementation: menempatkan software pada lingkungan sebenar sekalipun belum
lengkap, atau masih ada perubahan.

1.2.4. Scrum Methodology


Pertama kali diperkenalkan oleh Jeff Sutherland tahun awal tahun 1990an, dan
dikembangkan selanjutnya dilakukan oleh Schwaber dan Beedle. Pada dasarnya Scrum
merupakan salah satu komponen dari metodologi pengembangan Agile mengenai pertemuan
harian untuk membahas kemajuan dan XP adalah menekankan metodologi yang berbeda
sepasang ujian dulu pemrograman dan pembangunan.
Scrum menguraikan proses untuk mengidentifikasi dan katalogisasi pekerjaan yang
perlu dilakukan, memprioritaskan yang bekerja dengan berkomunikasi dengan pelanggan
atau wakil pelanggan, dan pelaksanaan yang bekerja menggunakan rilis iterative dan
memiliki tujuan utama untuk mendapatkan perkiraan berapa lama akan pembangunan. XP
lebih lanjut tentang pengembang membantu menyelesaikan pekerjaan secepat dan
maintainably mungkin

Scrum memiliki prinsip yaitu:


– Ukuran tim yang kecil melancarkan komunikasi, mengurangi biaya, dan memberdayakan
satu sama lain
– Proses dapat beradaptasi terhadap perubahan teknis dan bisnis
– Proses menghasilkan beberapa software increment
– Pembangunan dan orang yang membangun dibagi dalam tim yang kecil
– Dokumentasi dan pengujian terus menerus dilakukan setelah software dibangun
– Proses scrum mampu menyatakan bahwa produk selesai kapanpun diperlukan

Scrum memiliki aktifitas yang meliputi :


Backlog
Backlog adalah daftar kebutuhan yang jadi prioritas klien, dan daftar yang dibuat dapat –
bertambah

Sprints
Aktifitas Sprints merupakanunit pekerjaan yang diperlukan untuk memenuhi
kebutuhan yang ditetapkan dalam backlog sesuai dengan waktu yang ditetapkan dalam time-
box (biasanya 30hari). Selama proses ini berlangsung backlog tidak ada penambahan.

Scrum Meetings
Aktifitas Scrum Meeting merupakan pertemuan yang rutin dilakukan perhari untuk
evaluasi apa yang dikerjakan, hambatan yang ada, dan target penyelesaian untuk bahan
meeting selanjutnya.
Demo
Aktifitas Demo adalah penyerahan software increment ke klien didemonstrasikan dan
dievaluasi oleh klien.

1.2.5. Crystal
Crystal diperkenalkan oleh Cockburn dan Highsmith, Development yang tidak pada
jalur kritis, dapat menghabikan waktu lebih, mereka yang memperbaiki produk atau
membantu oaring yang ada di jalur proyek kritis.

Karakteristik Crystal :

Secara aktual sebuah model proses keluarga yang memungkinkan manuver berdasar
karakteristik permasalahan
Menyarankan penggunaan workshop refleksi untuk review kebiasaan kerja tim
Selalu murah dan cepat berkomunikasi secara langsung.
Proyek berkembang sesuai ukuran team menjadi lebih atau luas dan metologi akan menjadi
lebih tinggi.

1.2.6. Feature Driven Development


Feature Driven Development merupakan model proses praktis untuk keahlian proses
software engineering, Feature merupakan sebuah fungsi yang berharga dimana dapat
dilaksanakan.

Keuntungan dari metode feature :


User dapat menggambarkan dengan mudah bentuk system.
Dapat di organisasikan atau diatur ke dallamkelompok bisnis yang hirarki.
Desain dank ode lebih mudah diperiksa secara efektif.
Merancang proyek, penjadwalan dan jalur diarahkan oleh feature.

1.2.7. Agile Modeling


Dalam situasi pembangunan software harus membangun sistem bisnis yang besar dan
penting. Jangkauan dan kompleksitas sistem harus dimodelkan sehingga dapat dimengerti,
masalah dapat dibagi menjadi lebih kecil dan kualitas dapat dijaga pada tiap langkah
pembangunan software.
Agile Modeling adalah suatu metodologi yang praktis untuk dokumentasi dan
pemodelan system software. Agile Modeling adalah kumpulan nilai-nilai, prinsip dan
praktek-praktek untuk memodelkan software agar dapat diaplikasian pada software
development proyek secara efektif.

Prinsip dalam Agile Modeling :


– Membuat model dengan tujuan: tentukan tujuan sebelum membuat model
– Mengunakan multiple models: tiap model mewakili aspek yang berbeda dari model
– Travel light: simpan model-model yang bersifat jangka panjang saja
– Isi lebih penting dari pada penampilan: modeling menyajikan informasi kepada audiens
– Memahami model dan alat yang yang digunakan untuk membuat software
– Adaptasi secara local

1.2.8. Rational Unified Process


Rational Unified Process, adalah suatu kerangka kerja proses pengembangan
perangkat lunak iteratif yang dibuat oleh Rational Software, suatu divisi dari IBM sejak 2003.
RUP bukanlah suatu proses tunggal dengan aturan yang konkrit, melainkan suatu kerangka
proses yang dapat diadaptasi dan dimaksudkan untuk disesuaikan oleh organisasi
pengembang dan tim proyek perangkat lunak yang akan memilih elemen proses sesuai
dengan kebutuhan mereka.

Model ini membagi suatu sistem aplikasi menjadi beberapa komponen sistem dan
memungkinkan para developer aplikasi untuk menerapkan metoda iterative (analisis, disain,
implementasi dan pengujian) pada tiap komponen. Dengan menggunakan model ini, RUP
membagi tahapan pengembangan perangkat lunaknya ke dalam 4 fase sebagai berikut.

– Inception, merupakan tahap untuk mengidentifikasi sistem yang akan dikembangkan.


Aktivitas yang dilakukan pada tahap ini antara lain mencakup analisis sistem eksisting,
perumusan sistem target, penentuan arsitektur global target, identifikasi kebutuhan,
perumusan persyaratan perumusan kebutuhan pengujian, pemodelan diagram UML, dan
pembuatan dokumentasi.

– Elaboration, merupakan tahap untuk melakukan disain secara lengkap berdasarkan hasil
analisis di tahap inception. Aktivitas yang dilakukan pada tahap ini antara lain mencakup
pembuatan disain arsitektur subsistem), disain komponen sistem, disain format data disain
database, disain antarmuka/tampilan, disain peta aliran tampilan, penentuan design pattern
yang digunakan, pemodelan diagram UML, dan pembuatan dokumentasi.

– Construction, merupakan tahap untuk mengimplementasikan hasil disain dan melakukan


pengujian hasil implementasi. Pada tahap awal construction, ada baiknya dilakukan
pemeriksaan ulang hasil analisis dan disain, terutama disain pada domain perilaku (diagram
sequence) dan domain struktural (diagram class, component, deployment). Apabila disain
yang dibuat telah sesuai dengan analisis sistem, maka implementasi dengan bahasa
pemrogramanan tertentu dapat dilakukan. Aktivitas yang dilakukan pada tahap ini antara lain
mencakup pengujian hasil analisis dan disain (misal menggunakan Class Responsibility
Collaborator untuk kasus pemrograman berorientasi obyek), pendataan kebutuhan
implementasi lengkap (berpedoman pada identifikasi kebutuhan di tahap analisis), penentuan
coding pattern yang digunakan, pembuatan program, pengujian, optimasi program, pendataan
berbagai kemungkinan pengembangan / perbaikan lebih lanjut, dan pembuatan dokumentasi.

– Transition, merupakan tahap untuk menyerahkan sistem aplikasi ke konsumen (roll-out),


yang umumnya mencakup pelaksanaan pelatihan kepada pengguna dan testing beta aplikasi
terhadap ekspetasi pengguna.

Anda mungkin juga menyukai