1. AGILE SOFTWARE DEVELOPMENT METHODOLOGY
Tahukah Kamu ?
Salah satu kunci utama kesuksesan sebuah startup teknologi adalah kualitas produk atau solusi yang dikembangkan. Kualitas produk perangkat lunak dapat tercipta melalui proses pengembangan perangkat lunak yang benar, yaitu dengan mengikuti kaidah rekayasa perangkat lunak yang ada. Apalagi bila kita bekerja dalam tim, maka sangat penting sekali untuk menentukan metodologi dan proses pengembangan perangkat lunak. Metodologi pengembangan perangkat lunak sendiri adalah sebuah metodologi yang digunakan untuk membuat struktur, rencana, dan kontrol pengerjaan suatu proyek, contoh : waterfall, fountain, spiral, rapid, prototyping, incremental, dan agile.
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.
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.
Berikut adalah diagramnya:
2. RAPID
APPLICATION DEVELOPMENT
Dalam
model RAD (Rapid Application Development), modul fungsional dikembangkan secara
paralel sebagai prototip dan terintegrasi untuk membuat produk yang lengkap
untuk pengiriman produk yang lebih cepat. Dikarenakan tidak ada rincian
planning yang detail, maka memudahkan untuk melakukan perubahan pada saat
development berjalan.
RAD Model
Design
1.Business
Modeling (Bisnis Model)
Fase ini
untuk perancangan dasar dari pengembangan produk berdasarkan informasi dan distribusi
informasi antar saluran bisnis. Analisis bisnis yang lengkap dilakukan untuk menemukan
informasi penting untuk bisnis, bagaimana hal itu dapat diperoleh, bagaimana dan
kapan informasi diproses dan faktor apa yang mendorong arus informasi yang
berhasil.
2.Data
Modeling (Data Model)
Fase ini
untuk menganalisa informasi yang sudah dikumpulan dari fase Business Modeling. semua
kumpulan data diidentifikasi dan didefinisikan
secara rinci untuk mencari model bisnis yang tepat.
3.Process
Modeling (Proses Pemodelan)
Fase ini
untuk untuk menetapkan arus informasi bisnis yang diperlukan untuk mencapai
tujuan bisnis yang spesifik sesuai model bisnis. perubahan atau penyempurnaan
pada kumpulan objek, data didefinisikan dalam fase ini. Deskripsi proses untuk
menambahkan, menghapus, mengambil atau memodifikasi objek data diberikan.
4.Application
Generation (Generasi Aplikasi)
Fase ini
untuk Sistem yang sebenarnya dibangun dan pengkodean dilakukan dengan menggunakan automatic
tools i untuk mengubah model proses dan data menjadi prototype yang aktual.
5.Testing
and Turnover
fase ini
untuk pengujian keseluruhan sistem yang dibangun semua komponen perlu diuji secara
menyeluruh dengan cakupan uji yang lengkap. Dengan pengujian yang lengkap dapat
mengurangi risiko cacat sistem.
- Model RAD mengadopsi model waterfall dan pembangunan dalam waktu
singkat yang dicapai dengan menerapkan :
1. Component based construction ( pemrograman berbasis komponen
bukan prosedural).
2.
Penekanan pada penggunaan ulang (reuse) komponen perangkat lunak
yang telah ada.
3.
Pembangkitan kode program otomatis/semi otomatis.
4. Multiple team (banyak tim), tiap tim menyelesaikan satu tugas
yang selevel tetapi tidak sama. Banyaknya tim tergantung dari area dan
kompleksitasnya sistem yang dibangun.
Jika keutuhan yang diinginkan pada tahap analisis kebutuhan
telah lengkap dan jelas, maka waktu yang dibutuhkan untuk menyelesaikan secara
lengkap perangkat lunak yang dibuat adalah berkisar 60 sampai 90 hari. Model
RAD hampir sama dengan model waterfall, bedanya siklus pengembangan yang
ditempuh model ini sangat pendek dengan penerapan teknik yang cepat.
Sistem dibagi-bagi menjadi beberapa modul dan dikerjakan
beberapa tim dalam waktu yang hampir bersamaan dalam waktu yang sudah
ditentukan. Model ini melibatkan banyak tim, dan setiap tim mengerjakan tugas
yang selevel, namun berbeda. Sesuai dengan pembagian modul sistem.
- Beberapa hal (kelebihan dan kekurangan) yang perlu
diperhatikan dalam implementasi pengembangan menggunakan model RAD :
1.
Model RAD memerlukan sumber daya yang cukup besar, terutama
untuk proyek dengan skala besar.
2.
Model ini cocok untuk proyek dengan skala besar.
3. Model RAD memerlukan komitmen yang kuat antara pengembang dan
pemesssan, bahkan keduanya bisa tergabung dalam 1 tim
4. kinerja dari perangkat lunak yang dihasilkan dapat menjadi
masalah manakala kebutuhan kebutuhan diawal proses tidak dapat dimodulkan,
sehingga pendekatan dengan model ini kurang bagus.
5. sistem yang tidak bisa dimodularisasi tidak cocok untuk model
ini.
6. penghalusan dan penggabungan dari beberapa tim di akhir proses
sangat diperlukan dan ini memerlukan kerja keras.
7.
proyek bisa gagal karena waktu yang disepakati tidak dipenuhi
8.
risiko teknis yang tinggi juga kurang cocok untuk model ini.
3. DYNAMIC
SYSTEM DEVELOPMENT MODEL METHODOLOGY
Dynamic
System Development Method (DSDM) adalah suatu kerangka dalam pengembangan suatu
project, terutama digunakan untuk metode pengembangan perangkat lunak.
DSDM
merupakan iteratif dan incremental pendekatan yang mencakup prinsip-prinsip
pembangunan Agile, termasuk keterlibatan pengguna atau pelanggan secara
terus-menerus, intinya DSDM suatu metode yang mendekati Incremental dan Agile
Alliance.
Beberapa
karakteristik DSDM yaitu sebagai berikut :
Menyajikan
kerangka kerja (Framework) untuk membangun dan memelihara sistem dalam waktu
yang terbatas melalui penggunaan prototyping yang incremental dalam lingkungan
yang terkondisikan.
Membangun
software dengan cepat yaitu 80% dari proyek diserahkan dalam 20% dari waktu
total untuk menyerahkan proyek secara utuh.
Aktifitas
Feasibility Study yaitu dengan requirement, lalu uji apakah sesuai gunakan
proses DSDM
Aktifitas
Business Study yaitu susunam kebutuhan fungsional dan informasi, menentukan
arsitektur aplikasi dan identifikasi kebutuhan pemeliharaan untuk aplikasi
Aktifitas
Functional model iteration yaitu menghasilkan incremental prototype yang
perlihatkan fungsi software ke client untuk dapatkan kebutuhan lebih jelas dan
konfirmasi.
Aktifitas
Design and Build Iteration yaitu melakukan cek ulang prototype yang di bangun
untuk memastikan bahwa prototype yang di bangun dengan cara tersebut
memungkinkan semua fungsi benar-benar bekerja
Aktifitas
Implementation yaitu menempatkan software pada lingkungan sebenarnya sekalipun
belum lengkap atau masih ada perubahan.
DSDM
dapat dikombinasikan dengan XP yang menghasilkan kombinasi model proses
mengikuti metode DSDM dan praktek yang sejalan dengan XP.
4. EXTREME
PROGRAMING METHODOLOGY
Kita
pasti sudah mengenal istilah Programmer, yaitu orang yang membuat suatu program
aplikasi / software. Dalam pembuatan Software itu sendiri bisa dilakukan secara
kelompok atau sendirian tergantung tingkat kesulitannya. Dalam pembuatan
softaware biasanya terbagi menjadi beberapa kelompok yang mengerjakan hal yang
berbeda. Ada yang membuat program, ada yang melakukan uji coba dan ada juga
yang melakukan implementasi. Lalu apa hubungannya dengan “Extreme Programming”
?
Extreme
Programming (berikutnya akan disingkat sebagai XP) adalah sebuah pendekatan
atau model pengembangan perangkat lunak yang mencoba menyederhanakan berbagai
tahapan dalam proses pengembangan tersebut sehingga menjadi lebih adaptif dan
fleksibel. XP bukan hanya berfokus pada coding tetapi meliputi seluruh area
pengembangan perangkat lunak. XP mengambil pendekatan ‘ekstrim’ dalam iterative
development.
XP
Pertama kali diusulkan oleh Kent Beck dan Ward Cunningham pada bulan Maret
1996, asal mula XP digunakan karena pada saat itu permintaan dari customer yang
sering berubah dengan cepat sehingga mengakibatkan putaran kehidupan metode
pengembangan perangkat lunak tradisional menjadi lebih pendek dan tidak selaras
dengan metode tradisional karena pada umumnya memerlukan desain yang luas dan
itu mengakibatkan perubahan desain yang terjadi dan tentu saja memerlukan biaya
yang lebih tinggi. Tujuan XP adalah meminimalisir biaya yang diperlukan jika
ada perubahan dalam pengembangan perangkat lunak.
Scrum
merupakan framework untuk manajemen pengembangan software dengan karakteristik
cekatan dan bersifat iteratif dan incremental. Scrum mendefinisikan dirinya
fleksible, strategi pengembangan yang menyeluruh di mana seluruh team bekerja
sebagai satu unit dalam mencapai sebuah gol yang sama.
Dalam
menjalankan kerjasama antara anggota team, scrum menekankan lokasi fisik yang
sama atau sarana online yang akrab antara semua member, dan juga pertemuan muka
dengan muka setiap hari antara semua anggota team.
Prinsip
kunci dari scrum adalah memahami bahwa dalam project yang tengah berlangsung,
klien mungkin mengubah apa yang menjadi kebutuhan dan keinginannya. Perubahan
sulit diadaptasi oleh framework pengembangan aplikasi yang bersifat
tradisional. Scrum menerima perubahan
ini dan memaksimalkan seluruh anggota team untuk menyesuaikan perubahan mendadak
ini.
Scrum
mengadopsi permainan Rugby yang begitu mudah menyesuaikan diri semua anggota
team setelah ada sedikit pelanggaran. Kemudian menyesuaikan diri inilah yang
mengimpirasi scrum.
Scrum
mempunyai 3 Role
Product
Owner
Pengertian
produk adalah tujuan dari proyek. Product Owner memastikan bahwa proyek
berjalan sesuai yang diharapkan. Product Owner merupakan penjembatan antara
client dengan team development. Product Owner akan menuliskan
spesifikasi-spesifikasi sesuai cara pandang client, di lain pihak harus punya
empati terhadap anggota team.
Team
Member
Dilihat
dari namanya jelas yaitu anggota-anggota team.
Scrum
Master
Scrum
Master akan mencegah hal-hal yang mengalihkan focus team. Scrum master akan
membuat suasana kondusif supaya team dapat bekerja sama dalam mencapai goal.
Event
penting dalam Scrum adalah sprint/iteration. Sprint merupakan unit dasar dalam
development dengan Scrum. Sprint merupakan jangka waktu yang dibatasi pada
suatu durasi 1 minggu, 2 minggu atau 1 bulan. Setiap sprint dimulai dengan
planning meeting dan diakhiri dengan sprint review dan retrospective meeting.
1. AGILE SOFTWARE DEVELOPMENT METHODOLOGY
Tahukah Kamu ?
Salah satu kunci utama kesuksesan sebuah startup teknologi adalah kualitas produk atau solusi yang dikembangkan. Kualitas produk perangkat lunak dapat tercipta melalui proses pengembangan perangkat lunak yang benar, yaitu dengan mengikuti kaidah rekayasa perangkat lunak yang ada. Apalagi bila kita bekerja dalam tim, maka sangat penting sekali untuk menentukan metodologi dan proses pengembangan perangkat lunak. Metodologi pengembangan perangkat lunak sendiri adalah sebuah metodologi yang digunakan untuk membuat struktur, rencana, dan kontrol pengerjaan suatu proyek, contoh : waterfall, fountain, spiral, rapid, prototyping, incremental, dan agile.
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.
Aktifitas Implementation yaitu menempatkan software pada lingkungan sebenarnya sekalipun belum lengkap atau masih ada perubahan.
Prinsip kunci dari scrum adalah memahami bahwa dalam project yang tengah berlangsung, klien mungkin mengubah apa yang menjadi kebutuhan dan keinginannya. Perubahan sulit diadaptasi oleh framework pengembangan aplikasi yang bersifat tradisional. Scrum menerima perubahan ini dan memaksimalkan seluruh anggota team untuk menyesuaikan perubahan mendadak ini.
Tidak ada komentar:
Write komentar