Rapid Application Development (RAD)

Tujuan utama dari semua metode sistem development adalah memberikan suatu sistem yang dapat memenuhi harapan dari para pemakai, akan tetapi sering kali di dalam melakukan pengembangan suatu sistem tidak melibatkan para pemakai sistem secara langsung, sehingga hal ini menyebabkan sistem informasi yang dibuat jauh dari harapan pemakai yang dapat berakibat sistem tersebut walaupun dapat diterima tetapi para pemakai enggan untuk menggunakannya atau bahkan para pemakai menolak untuk menggunakannya.

Pada saat Rapid Application Development (RAD) diimplementasikan, maka para pemakai bisa menjadi bagian dari keseluruhan proses pengembangan sistem dengan bertindak sebagai pengambil keputusan pada setiap tahapan pengembangan. RAD bisa menghasilkan suatu sistem dengan cepat karena sistem yang dikembangkan dapat memenuhi keinginan dari para pemakai sehingga dapat mengurangi waktu untuk pengembangan ulang setelah tahap implementasi.

 

Definisi Rapid Application Development

  • James Martin (IBM, 1991): Siklus pengembangan yang dirancang untuk mempercepat pengembangan dengan kualitas yang lebih baik dibandingkan dengan apa yang diperoleh melalui siklus tradisional. Hal ini dirancang untuk mengambil keuntungan maksimum dari pengembangan perangkat lunak yang telah berevolusi baru-­baru ini.
  • Walter Maner (University in Bowling Green, Ohio, 1997) Proses pengembangan perangkat lunak yang memungkinkan sistem dapat dikembangkan lalu dipakai dalam waktu 60 – 90 hari.
  • Professor Clifford Kettemborough (Whitehead College, University of Redlands, 1999): Pendekatan untuk pembuatan sistem komputer yang mengkombinasikan perangkat dan teknik Computer-Assisted Software Engineering (CASE), prototyping, dan batas waktu yang ketat ke dalam suatu rumusan teruji untuk mendapatkan produktivitas dan kualitas puncak.
  • Online Knowledge: Metodologi yang memungkinkan organisasi mengembangkan sistem penting secara strategis dengan lebih cepat, dengan penggunaan sumber daya yang lebih sedikit, biaya yang lebih rendah namun kualitas yang terjaga.

RAD diperlukan karena dengan metode konvensional diperlukan waktu yang panjang hingga klien dapat melihat hasilnya. Dengan waktu pengembangan yang panjang pada metode konvensional, sehingga terdapat kemungkinan sistem bisnis klien sudah berubah pada saat aplikasi siap digunakan.

rad

Perbedaan siklus antara Traditional Development dan Rapid Application Development

pilar_jm_rad

4 Pilar yang dibutuhkan dalam pendekatan RAD menurut James Martin, yaitu: People, Management, Methodology dan Tools

 

Fase dan Tahapan Pengembangan Aplikasi

Menurut Kendall & Kendall (2002), terdapat tiga fase dalam RAD yang melibatkan penganalisis dan pengguna dalam tahap penilaian, perancangan, dan penerapan. Adapun ketiga fase tersebut adalah requirements planning (perencanaan syarat-syarat), RAD design workshop (workshop desain RAD), dan implementation (implementasi). Sesuai dengan metodologi RAD menurut Kendall, berikut ini adalah tahap-tahap pengembangan aplikasi dari tiap-tiap fase pengembangan aplikasi.

1.  Requirements Planning (Perencanaan Syarat-Syarat)

Dalam fase ini, pengguna dan penganalisis bertemu untuk mengidentifikasikan tujuan-tujuan aplikasi atau sistem serta untuk megidentifikasikan syarat-syarat informasi yang ditimbulkan dari tujuan-tujuan tersebut. Orientasi dalam fase ini adalah menyelesaikan masalah-masalah perusahaan. Meskipun teknologi informasi dan sistem bisa mengarahkan sebagian dari sistem yang diajukan, fokusnya akan selalu tetap pada upaya pencapaian tujuan-tujuan perusahaan.

2. RAD Design Workshop (Workshop Desain RAD)

Fase ini adalah fase untuk merancang dan memperbaiki yang bisa digambarkan sebagai workshop. Penganalisis dan dan pemrogram dapat bekerja membangun dan menunjukkan representasi visual desain dan pola kerja kepada pengguna. Workshop desain ini dapat dilakukan selama beberapa hari tergantung dari ukuran aplikasi yang akan dikembangkan. Selama workshop desain RAD, pengguna merespon prototipe yang ada dan penganalisis memperbaiki modul-modul yang dirancang berdasarkan respon pengguna. Apabila sorang pengembangnya merupakan pengembang atau pengguna yang berpengalaman, Kendall menilai bahwa usaha kreatif ini dapat mendorong pengembangan sampai pada tingkat terakselerasi.

RAD_Design Workshop

Fase dan tahapan pengembangan aplikasi pada RAD

3. Implementation (Implementasi)

Pada fase implementasi ini, penganalisis bekerja dengan para pengguna secara intens selama workshop dan merancang aspek-aspek bisnis dan nonteknis perusahaan. Segera setelah aspek-aspek ini disetujui dan sistem-sistem dibangun dan disaring, sistem-sistem baru atau bagian dari sistem diujicoba dan kemudian diperkenalkan kepada organisasi.

 

Karakteristik Rapid Application Development

Tim Hybrid

Tim sebaiknya terdiri atas sekitar 6 anggota, termasuk Developer dan pengguna penuh dari sistem plus personil yang menetapkan requirements. Developer yang dipilih sebagai anggota tim sebaiknya bersifat “multi-talented”, yaitu yang dapat berperan sebagai analis, desainer, dan pemrogram. Berikut adalah para pemain kunci dari Tim Hybrid:

  • Sponsor: High-level user executive, yang mendanai pengembangan sistem. Berdedikasi terhadap nilai sistem baru dan kecepatan pencapaian hasil.
  • Kordinator User: Pengguna yang ditugasi sponsor untuk menilai proyek dari perspektif pengguna.
  • Tim Perencana Kebutuhan: Satu tim terdiri atas pengguna tingkat tinggi, yang berpartisipasi pada workshop JRP (Joint Requirements Planning)
  • Dewan Penilai (user): satu tim pengguna yang menilai sistem pasca konstruksi dan memutuskan perlu tidaknya modifikasi sebelum proyek diakhiri.
  • Manager Training: Bertanggung jawab terhadap pelatihan.
  • Manager Proyek: Bertugas mengawasi dan mengendalikan proses pengembangan.
  • Tim Konstruksi (SWAT): Tim SWAT (Skilled Workers with Advanced Tools) adalah tim kecil yang terdiri atas dua hingga enam pengembang yang sangat terlatih untuk bekerja bersama dalam kecepatan tinggi. Untuk itu anggota tim perlu memiliki skill tinggi dalam penerapan metodologi RAD dan toolset CASE terpilih.
  • Pemimpin Workshop: Seseorang yang mengorganisasi dan memimpin workshop untuk Joint Requirements Planning (JRP) dan Joint Application Design (JAP).

Toolset Khusus

  • Visual” development: Visual Development digunakan karena perkembangan software saat ini lebih mengarah ke arah Visual Programming. Banyak bahasa tingkat tinggi yang mulai beralih ke arah Visual. Hal ini dilakukan supaya proses perancangan sistem dapat dibuat lebih mudah, cepat dan dapat dirubah kapan saja sesuai dengan keinginan user.
  • Early prototypes: Early prototype dibuat untuk memberitahukan kepada user mengenai sistem yang akan dibuat. Prototype dibuat karena kita maupun user tidak mengetahui secara detail requirement yang dibutuhkan. Dengan adanya prototype awal ini bisa memberikan gambaran mengenai sistem yang akan dibuat nantinya.
  • Evolutionary prototypes: Developer mengembangkan prototype berdasarkan kebutuhan user setelah user melihat dan mencoba Early Prototype. Hasil dari masukkan user diberikan kepada perancang untuk mengembankan prototipe sehingga sesuai dengan keinginan user.
  • Multiprogramming languages: Dukungan terhadap Multiprogramming languages digunakan untuk mencoba suatu sistem dengan menggunakan bahasa pemrograman yang berbeda. Hal ini dilakukan jika dalam tahap pengembangan selanjutnya terjadi perubahan bahasa yang digunakan karena masing-masing bahasa pemrograman mempunyai kelebihan dan kekurangan masing-masing.
  • Team Scheduling: Team Scheduling sangat penting dalam suatu proses pengembangan sistem. Dengan adanya penjadwalan kita dapat mengestimasi waktu pengerjaan dan mempunyai target yang jelas dalam jangka waktu yang sudah ditetapkan. Pembuatan Gant chart sangat memudahkan project manager dalam mengatur setiap proses yang terjadi.
  • Workgroup Collaboration: Dengan adanya Workgroup Collaboration, pengembang di lokasi yang berbeda dapat membuka satu atau beberapa dokumen secara bersamaan. Hal ini dapat mempermudah dan mempercepat dalam proses pengembangan sistem .
  • Component Reuse: Component Reuse digunakan untuk menghemat biaya dan waktu implementasi dalam pengembangan sistem. Pengembang dapat menggunakan komponen yang sudah jadi. Jika ada perubahan, pengembang hanya perlu merubah bagian-bagian tertentu saja.
  • Standard API: Dengan adanya API (Application Programming Interface) pengembang dapat memanggil dan menggunakan suatu function di dalam program atau aplikasi lain. Dengan API yang berbeda-beda maka proses dan cara kerja penggunaan/ pemanggilan function tersebut akan berbeda pula. Oleh karena itu perlu dibuatkan suatu standar sehingga antara pengembang yang satu dan yang lain menggunakan cara yang sama.
  • Version Control: Version Control digunakan untuk mengatur ‘ongoing development’ dari suatu dokumen digital, seperti source code, blueprint, system model atau informasi berharga lainnya yang digunakan oleh suatu team dalam pengembangan sistem. Perubahan terhadap dokumen dapat dikenali dengan adanya Version Control.

Sesi JAD (Joint Application Design)

  • High-level end-users dan disainer bertemu dalam satu sesi Brainstorming untuk membuat daftar kebutuhan awal.
  • Developer berbicara dan mendengar.
  • Begitu juga dengan Client, berbicara dan mendengar.

Evolutionary Prototyping

  • Developer mengembangkan prototype berdasarkan kebutuhan saat ini.
  • Designer me-review prototype.
  • Client mencoba prototype dan mengembangkan kebutuhan serta permintaan.

Timeboxing

  • Permintaan akan perubahan dan kebutuhan sekunder ditangani secara terpisah / berbeda.
  • Perubahan bisa saja ditolak jika tidak bisa terakomodasi dalam “timebox” (deadline)
  • Kebutuhan sekunder bisa tetap dipertahankan dalam box.

 

Kelebihan Rapid Application Development

  • Proses pembuatan lebih mudah, karena penggunaan bahasa tingkat tinggi, script, intermediate code.
  • Pengembangan dilakukan dalam tataran bahasa yang lebih tinggi, karena tools RAD bekerja pada level ini.
  • Visibilitas awal karena prototyping
  • Membeli bisa lebih irit daripada membangun.
  • Lebih fleksibel karena developer/ pengembang bisa memodifikasi dengan mudah.
  • Reduksi drastis manual-coding ddengan wizard, code generators, code-reuse.
  • Meningkatkan keterlibatan pengguna.
  • Menekan kemungkinan kesalahan.
  • Bisa mereduksi biaya.
  • Siklus pengembangan lebih pendek.
  • Tampilan terstandarisasi.

 

RAD cenderung berhasil,  jika:

  • Aplikasi akan dijalankan standalone. Dengan aplikasi yang standalone, tidak diperlukan waktu dan biaya yang besar jika dibandingkan dengan sistem yang berbasis jaringan. Pengembangan sistem menjadi terfokus kepada satu sistem.
  • Banyak menggunakan komponen yang ada. Setiap komponen mempunyai kegunaannya masing-masing. Dengan memakai banyak komponen maka masing-masing komponen bisa saling melengkapi.
  • Kinerja bukan sesuatu yang kritis. Jika kinerja bukan suatu prioritas utama dari suatu sistem, maka proses pengembangan sistem akan cepat karena kinerja yang tinggi memerlukan waktu yang lama pula untuk membuat dan mengetes kinerja atau kemampuan dari sistem yang dibuat.
  • Distribusi produk sempit. Sistem yang dikembangkan hanya untuk perusahaan/instansi/kelompok tertentu saja. Dengan cakupan produksi yang sempit, maka biaya dan proses pengembangan dapat dikerjakan dengan murah dan cepat.
  • Scope proyek sangat dibatasi. Proyek yang besar perlu batasan sampai bagian-bagian mana saja pengembang mengembangkan suatu sistem. Dengan adanya batasan tersebut, pengembang dapat fokus terhadap apa yang dikerjakan.
  • Reliability tidak kritis. Sama dengan kinerja bukan sesuatu yang kritis. Ketahanan suatu sistem perlu waktu dan biaya yang tidak sedikit.
  • Sistem dapat dipecah menjadi beberapa modul. Dengan dipecah menjadi beberapa modul, maka pengembang dapat berkonsentrasi terhadap modul yang dikerjakan. Dengan cara ini, waktu pengembangan menjadi lebih singkat dan lebih mudah. Setelah selesai, modul-modul tersebut kemudian digabungkan menjadi satu.
  • Sasaran produk adalah pasar yang sangat khusus. Sama dengan distribusi produk sempit. Dengan segmen pasar yang khusus. Pengembanga dapat memikirkan dan mengembangkan apa saja yang dibutuhkan oleh pasar tersebut.
  • Proyek memiliki jadwal yang ketat. Dengan jadwal yang ketat, maka biaya yang dikeluarkan menjadi lebih sedikit dan waktu pengerjaan menjadi lebih cepat.
  • Teknologi yang digunakan berusia lebih dari satu tahun. Hal ini dilakukan untuk mengantisipasi jika di kemudian hari terjadi perubahan terhadap sistem yang digunakan. Jika teknologi yang digunakan mempunyai umur yang panjang, maka ketika terjadi perubahan menjadi lebih mudah karena teknologi yang digunakan sama dengan ketika pertama kali membuat sistem tersebut. Jika dikemudian hari teknologi yang digunakan sudah tidak terpakai lagi, hal ini menyulitkan pengembang dalam proses pengembangan.
iterative_rad

Iterative Refinement merupakan kunci sukses dari RAD

 

RAD cenderung gagal,  jika:

  • Aplikasi harus bekerja dengan program lain. Untuk dapat bekerja dengan program lain dibutuhkan suatu connector antara program tersebut. Dengan adanya program ini, maka pengembang tidak hanya memikirkan sistem yang mereka buat, tapi juga menyangkut masalah kompatibilitas dan kinerja terhadap program yang lain.
  • Ketidaktersediaan komponen plug-in. Tanpa adanya plug-in akan sulit ketika pengembang sistem membutuhkan sedikit perubahan. Plug-in sangat berguna untuk menutupi kelemahan dan juga menambah fitur-fitur terhadap sistem yang dikembangkan.
  • Dibutuhkan performansi optimal. Untuk mencapai performansi optimal diperlukan waktu dan biaya yang tidak sedikit, karena pengembang memerlukan testing untuk menguji sampai sejauh mana performance yang dihasilkan oleh sistem tersebut.
  • Pengembangan produk tidak dapat mengandalkan high-end tools. High-end tools mempunyai keuntungan dari sisi kemampuan dan juga kinerja. High-end tools mempunyai kemudahan dalam hal pemakaian dibandingakan dengan tools. Hal ini dapat mempercepat waktu dan mempermudah pengembangan karena pengembang tidak perlu menghabiskan waktu banyak dalam mempelajari tools yang ada.
  • Distribusi produk luas. Distribusi produk yang luas menyulitkan pengembang, karena pengembang harus membuat modul yang lebih banyak jika dibandingkan dengan segemen tertentu saja.
  • Digunakan untuk pembuatan OS dan game. OS dan game membutuhkan performance yang tinggi. OS dan game harus mempunyai reliabilitas yang tinggi. Sedangkan performansi yang tinggi membutuhkan waktu yang tidak sedikit karena harus melewati pengujian terlebih dahulu baik pengujian dari sisi pengembang maupun dari sisi user.

Leave a Reply