Anda di halaman 1dari 10

Metode Agile Development: Pengertian, Tujuan, dan Keunggulan

Dalam proses pengembangan produk perangkat lunak, terdapat sebuah proses yang dikenal
dengan agile development. Metode agile diperkenalkan pada tahun 2001 oleh sekelompok
orang dalam komunitas pengembang. Agile development dikembangkan untuk memperbaharui
metode pengembangan tradisional yang dikenal dengan metode waterfall atau spiral. Diyakini
metode ini dapat mempercepat proses pengembangan suatu produk.
Bagi kamu yang berencana untuk memulai karir dalam bidang pengembangan perangkat lunak,
wajib mengetahui metode ini. Melalui artikel ini, akan dijelaskan secara lengkap mulai dari
pengertian, tujuan, dan keunggulan dari metode agile development. Selengkapnya simak
penjelasan pada artikel berikut ini.

Apa itu metode agile development?

 Metode agile akan membantu tim dalam merespon ketidakpastian pengembang lunak –
EKRUT

Metode agile adalah pendekatan khusus untuk manajemen proyek yang digunakan dalam


pengembangan perangkat lunak. Metode ini membantu tim dalam merespon ketidakpastian
pengembangan perangkat lunak dengan menggunakan incremental berulang yang umumnya
disebut sprint.
Dalam menjalankan metode agile atau yang lebih dikenal Agile Software Development ini,
dilakukan secara kolaboratif, terstruktur dan terorganisir yang menyangkut berbagai pihak yang
bekerjasama. Dimana proyek yang menggunakan metode Agile development biasanya
berlangsung dalam jangka waktu pendek dan bertahap. Metode ini juga menuntut kecepatan
dalam mengambil keputusan tanpa mengesampingkan kualitas produk. Tidak lupa dalam
proses pengembangan juga akan selalu dilakukan evaluasi berkala untuk memperbaiki hal-hal
yang dirasa perlu ditingkatkan.
Tujuan dan manfaat metode agile development

Keunggulan dari metode agile salah satunya adalah dinamis - EKRUT


Ada beragam manfaat dan tujuan mengapa pengembang memilih metode agile
development dibandingkan dengan metode lain. Metode ini nantinya bukan hanya bermanfaat
bagi pengembang, namun stakeholder lain seperti manajer, vendor, dan klien.
Secara spesifik, manfaat bagi client adalah dapat memberikan feedback secara langsung dan
berkala kepada tim pengembang pada fitur-fitur perangkat lunak walaupun belum dirilis. Selain
itu manfaat bagi vendor adalah dapat melakukan efisiensi karena dapat mengetahui fokus
pengembangan. Manfaat terakhir bagi pengembang sendiri adalah proses pengembangan
perangkat lunak dapat berjalan secara beriringan tanpa perlu menunggu stakeholder lain
menyelesaikan proyeknya.
Sedangkan tujuan metode agile development ini meliputi terjaganya kualitas perangkat lunak
yang dikembangkan, efisiensi budget dan sumber daya karena pengerjaan berfokus pada fitur
yang dibutuhkan oleh pengguna, lebih terorganisir, dan kesempatan untuk berkolaborasi
antar stakeholder.
Metode agile development vs waterfall model
Metode agile adalah salah satu metode yang memiliki efisiensi pengembangan dan bujet. -
EKRUT
Metode agile development dan waterfall model masing-masing memiliki kelebihan dan
kekurangan dalam proses pengerjaannya. Kedua metode tersebut juga sebenarnya memiliki
pendekatan dan pengerjaan yang cukup berbeda. Berikut ini beberapa hal yang membedakan
kedua metode pengembangan perangkat lunak.

Agile Development Waterfall Model

Proses testing dan
Proses testing dan pengembangan dilakukan
pengembangan dilakukan
secara bersamaan.
secara terpisah.

Metode pengerjaan tidak


Metode pengerjaan dibagi antar individu.
dilakukan secara individu.

Klien dapat melihat dan Klien hanya dapat bisa


memberikan feedback produk walaupun belum melihat hasil produk setelah
selesai. proyek selesai.

Waterfall model dianggap
Agile development dianggap tidak terlalu lebih terstruktur
terstruktur dibandingkan waterfall model. dibandingkan agile
development.

Dikembangkan dengan metode inkremental,


Dikembangkan secara runtut
yaitu dikembangkan secara sedikit demi sedikit
dari titik awal hingga akhir.
secara teratur.

Estimasi waktu pengerjaan bagi proyek kecil Semua jenis proyek memiliki
dapat sangat cepat, namun untuk proyek besar estimasi waktu pengerjaan
susah untuk memprediksi waktu. yang jelas.

Keunggulan metode agile development

 
Keunggulan dari metode agile salah satunya adalah dinamis - EKRUT
Menjalankan pengembangan perangkat lunak dengan metode agile development memiliki
beragam keuntungan. Keuntungan tersebut dapat dirasakan oleh beragam stakeholder yang
meliputi konsumen, vendor, tim pengembang, product manager, project manager, dan C-Level.
Berikut ini keunggulan-keunggulan yang didapat dengan mengimplementasi metode agile
development.
1. Bagi konsumen atau user
Keunggulan metode agile development bagi konsumen adalah umpan balik yang diberikan
dapat diperbaiki atau dikembangkan secara cepat dalam kurun waktu yang singkat. Selain itu,
dengan menggunakan metode ini, lebih responsif terhadap permintaan pengembangan fitur dari
konsumen.
2. Bagi vendor
Keuntungan berikutnya bagi vendor adalah dapat memfokuskan pengembangan terhadap fitur-
fitur yang dianggap lebih penting dan prioritas. Selain itu dengan menggunakan metode ini,
pengerjaan dan efisiensi dapat ditingkatkan. Bagi vendor juga dapat mengendalikan
pemborosan biaya.

3. Bagi development team
Metode agile adalah metode yang memberikan keleluasaan pengembangan berdasarkan
feedback terbaru. - EKRUT
Bagi development team, keuntungan yang didapat adalah dapat bekerja secara lebih nyaman
dan fokus. Dimana pekerjaan berfokus pada prioritas fitur atau spesifikasi produk yang akan
dikembangkan. Selain itu, keuntungan lain adalah mengurangi pekerjaan yang dirasa tidak
memberikan hasil.
4. Bagi Product Manager
Pengembangan akan sejalan dengan feedback dan kebutuhan dari konsumen. Kemudian,
Product Manager juga dapat memiliki kesempatan untuk memprioritas atau tidak
memprioritaskan suatu pengembangan produk. Selain itu, keuntungan lain adalah dapat
menghasilkan hasil pengembangan yang maksimal.
5. Bagi Project Manager
Keuntungan bagi Project Manager adalah dapat dengan mudah melacak proses
pengembangan secara berkala. Mengetahui secara jelas status projek yang sedang dijalankan,
dan dapat menyampaikan masalah secara cepat.
6. Bagi PMOs dan C-Level Executives
Bagi para PMOs dan C-Level Executive, metode ini dapat memberikan visibilitas bagi proyek
yang sedang berlangsung. Kemudian dapat memberikan feedback atau strategi mengacu pada
informasi terbaru. Keuntungan lainnya adalah dapat lebih efektif dalam merencanakan
pengembangan dengan tidak terlalu banyak spekulasi.

Extreme programming atau sering disingkat XP merupakan salah satu metode pengembangan


perangkat lunak yang berbasis Agile. Artinya extreme programming merupakan satu dari sekian
banyak metodologi yang dapat digunakan untuk menerapkan prinsip pengembangan perangkat
lunak berbasis agile. Agile sendiri adalah prinsip pengembangan perangkat lunak yang
mengutamakan adaptasi terhadap perubahan, mementingkan fungsional aplikasi dari pada
dokumentasi, dan prinsip-prinsip agile lainnya.
Terdapat banyak metodologi atau kerangka kerja yang dapat digunakan untuk mengembangkan
perangkat lunak. Namun, hari ini kebanyakan metode pengembangan perangkat lunak yang
digunakan adalah metode-metode yang berasaskan agile, seperti Scrum, Kanban, dan extreme
programming. Hal ini karena Agile dianggap sebagai prinsip pengembangan yang disruptif yang
berhasil menggantikan metode-metode yang telah mapan sebelumnya seperti metode waterfall.
Extreme programming merupakan salah satu metode agile yang cukup banyak digunakan,
terutama pada proyek pengembangan aplikasi dalam skala kecil. Hal ini karena metode ini
terhitung cukup sederhana dan ringkas namun tetap mengaplikasikan berbagai prinsip agile
yang dianggap break through dalam meningkatkan efisiensi serta efektivitas pengerjaan
pengembangan perangkat lunak. Metode extreme programming sangat sesuai jika dihadapkan
dengan requirement yang tidak jelas maupun terjadi perubahan-perubahan yang sangat cepat
(Supriyatna, 2018).
Lalu sebetulnya seperti apa metodologi XP ini? Bagaimana langkah-langkah dalam
mengaplikasikannya? Apa saja kelebihan dan kekurangannya? Berikut adalah berbagai
pemaparan mengenai extreme programming dimulai dari definisinya terlebih dahulu.
Definisi Extreme Programming
Extreme programming adalah salah satu metodologi dari pendekatan agile software
Development yang berfokus pada coding sebagai aktivitas utama disemua tahap pada siklus
pengembangan yang lebih responsif terhadap kebutuhan customer dan membangun suatu
software dengan kualitas yang lebih baik pula.
Menurut Pratama (2017, hlm. 93) Extreme Programming (XP) adalah sebuah pendekatan atau
model pengembangan perangkat lunak yang mencoba menyederhanakan berbagai tahapan
dalam proses pengembangan tersebut sehingga menjadi lebih adaptif dan fleksibel.
Sementara itu, menurut Prabowo (2013, hlm. 2) Extreme programming merupakan sebuah
proses rekayasa perangkat lunak yang cenderung menggunakan pendekatan berorientasi objek
dan sasaran dari metode ini adalah tim yang dibentuk dalam skala kecil sampai medium serta
metode ini juga sesuai jika tim dihadapkan dengan requirement yang tidak jelas maupun terjadi
perubahan-perubahan requirement yang sangat cepat.
Dapat tarik simpulan bahwa metode extreme programming (XP) merupakan metode
pengembangan perangkat lunak yang ringan dan mengimplementasikan agile yang lebih
cenderung menggunakan pendekatan berorientasi objek serta lebih mengedepankan proses
pengembangan yang lebih responsif terhadap kebutuhan pengguna.
Pertanyaannya adalah objek apa yang dimaksud? Seperti apa sebetulnya paradigma
berorientasi objek dalam extreme programming? Berikut adalah pemarannya.
Objek pada Extreme Programming
Objek yang dimaksud pada extreme programming sejatinya mengacu pada pemrograman
berorientasi objek (PBO) atau dalam bahasa Inggris dikenal sebagai object-oriented
programming (OOP). Pemrograman berorientasi objek adalah paradigma pemrograman
berdasarkan konsep “objek” yang dapat berisi data, dalam bentuk field atau dikenal juga
sebagai atribut; serta kode, dalam bentuk fungsi/prosedur yang dikenal sebagai method. Semua
data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek.
Mudahnya, extreme programming merupakan metode pengembangan aplikasi yang banyak
digunakan oleh tim atau programmer yang menggunakan paradigma berorientasi objek.
Sebetulnya, tidak ada hubungan langsung antara paradigma pemrograman berorientasi objek
dengan metodologi XP. Hanya saja, pada masa perkembangan XP, OOP juga merupakan
paradigma pemrograman yang tengah naik daun karena mampu menghasilkan kode yang
efisien. Hal tersebut karena setiap algoritma pada perangkat lunak dapat dibungkus pada
method yang dapat digunakan ulang (reusable function/method) jika kita membutuhkan logic
yang sama namun memiliki atribut yang berbeda.
Nilai Utama XP
Hal pertama untuk mengaplikasikan extreme programming adalah memahami berbagai nilai
utama yang harus dijalankan dalam menggunakan metode ini. Hal tersebut karena nilai-nilai ini
mendasar pada setiap tahapan atau langkah dari metode XP. Nilai-nilai utama dari extreme
programming adalah Communications, courage, simplicity, dan feedback yang akan dijelaskan
di bawah ini.
Komunikasi (komunikasi)
XP memfokuskan pada hubungan komunikasi yang baik antar anggota tim. Par aanggota tim
harus membangun saling pengertian, berbagi pengetahuan, serta keterampilan dalam
mengembangkan perangkat lunak.
Courage (Keberanian)
Anggota tim dan penanggungjawab pengembang perangkat lunak harus selalu memiliki
keyakinan dan integritas dalam melakukan tugasnya. Integritas haruslah dijaga bahkan dalam
kondisi adanya tekanan dari situasi sekitar (termasuk klien/pengguna).
Simplicity (Kesederhanaan)
Lakukan segalanya dengan sederhana. Hal ini merupakan salah satu nilai utama XP, yakni
menggunakan metode yang pendek dan simpel. Misalnya, jangan terlalu rumit dalam membuat
desain, hilangkan fitur yang tidak memiliki nilai guna.
Feedback (Umpan balik)
Selalu berikan feedback kepada sesama anggota tim, maupun pihak-pihak lain yang terlibat
dalam pengembangan perangkat lunak. Utarakan selalu pikiran kita dan diskusikan berbagai
kesalahan yang muncul selama proses pengembangan (Prabowo, 2020, hlm. 77).
Tahapan Extreme Programming
Terdapat empat kerangka kegiatan dalam tahapan pelaksanaan extreme programming. Empat
kerangka kegiatan dari tahapan extreme programming adalah sebagai berikut.
Planning
Kegiatan planning atau perencanaan dimulai dengan mengumpulkan berbagai requirement dari
perangkat yang akan dikembangkan. Hal ini dilakukan agar anggota tim memahami konteks
bisnis perangkat lunak dan untuk mendapatkan pandangan umum terhadap output dan fungsi
utama dari perangkat lunak. Hal ini akan mengarah ke penciptaan suatu “story” atau kisah
kebutuhan pengguna untuk mendeskripsikan ouput, fitur, dan fungsi dari aplikasi yang akan
dikembangkan.
Design
Proses desain pada metodologi XP mengikuti prinsip KIS (keep it simple). Desain yang
sederhana selalu dipilih dibandingkan dengan desain yang kompleks. Berbagai desain fungsi
tambahan yang tidak diperlukan namun developer merasa nantinya akan diminta oleh
pengguna tidak boleh dibuat. Hal ini karena XP menerapkan penggunaan CRC (class
responsibility card) sebagai mekanisme yang efektif untuk memikirkan mengenai software
dalam konteks berorientasi objek. CRC akan mengidentifikasi dan mengorganisasikan class
berorientasi objek yang sesuai dengan peningkatan software. Artinya, berbagai desain fitur
tambahan tersebut lebih dikembangkan ketika memang dibutuhkan (ketika diminta). Jika terjadi
masalah dalam pembuatan desain story pengguna, maka dalam XP akan direkomendasikan
suatu solusi yang disebut sebagai spike solution. Spike solution adalah pembuatan segera
suatu prototype operasional dari sebagian desain yang mengalami masalah.
Coding
Setelah story pengguna dan desain kerangka kerja wal selesai, tim XP tidak akan segera
melanjutkan ke tahap coding, melainkan mengembangkan serangkaian tes unit yang akan
dijalankan pada setiap story yang akan dibuat. Saat unit tes telah dibuat, developer akan lebih
fokus pada apa yang harus dibuat untuk melewati tes tersebut. XP merekomendasikan konsep
Pair Programming atau pemrograman berpasangan, yakni dua orang bekerja bersama dalam
penulisan kode atau program untuk satu story. Hal ini memberikan kesempatan lebih besar
pada pemecahan masalah yang lebih cepat karena kolaborasi dari dua programmer yang
menulis coding yang sama.
Testing
Setelah tahapan pengkodean selesai maka dilakukan tahapan pengujian sistem untuk
mengetahui berbagai kesalahan yang timbul saat aplikasi sedang berjalan serta untuk
memastikan apakah perangkat lunak yang dibangun telah sesuai dengan story kebutuhan
pengguna.

Pengertian RUP (Rational Unified Process)


Menurut IBM, RUP adalah kerangka proses yang menyediakan simulasi sistem pada industri
untuk sistem, software, implementasi, dan manajemen proyek yang efektif. RUP adalah salah
satu dari sekian banyak proses yang terdapat di dalam Rational Process Library, yang
memberikan simulasi terbaik untuk pengembangan atau kebutuhan proyek. RUP mempunyai
beberapa tahapan, yaitu :
Inception
Elaboration
Construction
Transition
Inception — merupakan tahap untuk mengidentifikasi sistem yang akan dikembangkan.
Aktivitas yang dilakukan pada tahap ini antara lain mencakup analisis sistem existing,
perumusan sistem target, penentuan arsitektur global target, identifikasi kebutuhan, perumusan
persyaratan (fungsional, performansi, keamanan, GUI, dll), perumusan kebutuhan pengujian
(level unit, integrasi, sistem, performansi, fungsionalitas, keamanan, dll), UML diagram, dan
pembuatan dokumentasi.
Elaboration — Elaboration merupakan tahap untuk melakukan desain secara lengkap
berdasarkan hasil analisis pada tahap inception. Aktivitas yang dilakukan pada tahap ini antara
lain mencakup pembuatan desain arsitektur subsistem (architecture pattern), desain komponen
sistem, desain format data (protokol komunikasi), desain database, desain user interface,
pemodelan diagram UML(diagram sequence, class, component, deployment, dll.), dan
pembuatan dokumentasi.
Construction — Construction merupakan tahap untuk mengimplementasikan hasil desain dan
melakukan pengujian hasil implementasi. Pada tahap awal construction, ada baiknya dilakukan
pemeriksaan ulang hasil analisis dan desain, terutama desain pada sequence diagram, class
diagram, component dan deployment. Apabila desain 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 desain,
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 atau perbaikan lebih lanjut, dan
pembuatan dokumentasi.
Transition — Transition merupakan tahap untuk menyerahkan sistem aplikasi kepada user (roll-
out), yang umumnya mencakup pelatihan dan beta testing aplikasi.
Aliran Kerja Rational Unified Process (RUP)
RUP juga mempunyai aliran kerja yang terbagi menjadi dua bagian, yaitu: Aliran kerja utama
dan Aliran kerja pendukung, dimana keduanya merupakan suatu kesatuan dalam proses
pengembangan sistem (SDLC)
Aliran Kerja Utama Rational Unified Process (RUP)
Business Modeling Pada tahap ini, terdapat identifikasi dan deskripsi langsung dari area dan
permasalahan untuk redesign atau reengineering, beserta struktur dan proses–proses bisnis
organisasi.
Requirements Tujuan utama pada fase ini adalah menyusun sistem apa yang seharusnya ada
dan mengapa perlu dibuat, mendefinisikan batas dari sistem, melihat kemungkinan ancaman
keamanan serta bagaimana cara penanggulangannya, dan mengestimasi biaya dan skala
waktu yang rumit. Isi dari sistem dibangun yang kemudian diterjemahkan kedalam use case
model dengan tambahan spesifikasi kebutuhan. Baik kebutuhan fungsional dan nonfungsional
akan dikumpulkan dan dianalisis. Kebutuhan user dan stakeholder serta fitur high-level
didefinisikan dan kemudian diubah menjadi specific software requirements.
Analysis and Design Pada fase ini, semua requirement pada tahap kedua akan diubah menjadi
spesifikasi implementasi.
Implementation Pada tahap ini, semua analisa dan desain yang telah dibuat pada fase
sebelumnya akan diimplementasikan dan diterjemahkan menjadi kode program.
Testing Pada tahap ini, pengembang software akan menguji dan memverifikasi semua interaksi
komponen, kebutuhan yang telah diimplementasikan dan kualitas dari software yang telah
dikembangkan.
Deployment Pada tahap ini, pengembang software menyebarkan software yang telah selesai
kepada user. Pengembang software juga menyediakan dokumentasi untuk semua fitur dan
fungsi. Pada tahap ini juga, pengembang software mendapatkan umpan balik dan masukan
terhadap software yang berujung pada modifikasi fungsi dan fitur agar menjadi lebih baik.
Aliran Kerja Pendukung Rational Unified Process (RUP)
Configuration and Change Management Tahap ini menjalankan dan merawat integritas dari
proyek. Kegiatannya meliputi monitoring dan mengatur perubahan permintaan, perubahan
biaya, dan tetap mengontrol berbagai versi produk. Tahap ini juga meliputi manajemen
konfigurasi hardware dan software.
Project Management Tahap ini menyediakan framework untuk mengatur software dan resiko.
Tahap ini juga menyediakan pedoman untuk planning, staffing, monitoring dan secara umum
menunjukan manajemen proyek.
Environment Tahap ini menjelaskan tentang infrastruktur dan metode yang dibutuhkan untuk
mengembangkan sistem

Anda mungkin juga menyukai