Metode pengembangan AGILE software development

Berdasarkan pengalaman kami dalam penyediaan jasa teknologi informasi, kami menyadari bahwa membangun sebuah solusi yang sesuai dengan kebutuhan pengguna selalu merupakan tugas yang rumit untuk diselesaikan. 

Selama lebih dari sepuluh tahun pengalaman kami, kami telah mengadopsi sebuah metode yang memungkinkan pembangunan sebuah solusi TI dilakukan dengan cara yang sangat efisien dari sisi waktu, sambil tetap mampu memenuhi kebutuhan yang telah ditetapkan oleh pengguna. 

Kami menamakan metode ini sebagai Agile Software Development.

Metode ini dicirikan oleh karakternya yang cepat dalam membangun sebuah perangkat lunak lewat dengan menghindari perencanaan yang terlalu detil. 

Metode ini sangat sesuai untuk dilakukan pada pekerjaan dimana pengguna tidak dapat mengidentifikasikan kebutuhannya dalam spesifikasi yang cukup rinci, baik dalam fungsionalitasnya maupun dalam kebutuhan teknisnya.

Agile Software Development diciptakan untuk menyederhanakan kerumitan dalam pembangunan sebuah sistem dengan menyadari bahwa pembuatan perangkat lunak terdiri dari proses yang berlangsung terus-menerus secara berulang-ulang. 

Pembangunan perangkat lunak tidak dapat disamakan dengan metode pembangunan lainnya seperti dalam pembangunan sebuah gedung dimana setiap detil harus direncanakan di depan sebelum proses pembangunan dimulai. 

Meskipun beberapa orang berpendapat bahwa pembuatan aplikasi dapat dilakukan dengan cara yang sama, namun kami berkeyakinan bahwa proses yang demikian tidak akan menghasilkan aplikasi perangkat lunak yang terbaik. 

Hal ini terutama dikarenakan kebanyakan permasalahan yang kami temui selama ini terletak pada ketidakmampuan pengguna untuk mengidentifikasikan dengan jelas kebutuhan-kebutuhan mereka.

Didalam banyak kasus yang kami temukan, permasalahan ini tidak dapat diselesaikan dengan mengisi berlembar-lembar formulir software requirements, karena pada umumnya pengguna tidak menyadari perangkat lunak seperti apa yang mereka butuhkan sampai mereka benar-benar dapat melihat perwujudan dari kebutuhan-kebutuhan perangkat lunak mereka lewat tampilan awal sebuah mock-up prototype.

 

Fase IRUF (Initial Requirement Up Front)

Initial Requirement Up Front (IRUF) adalah fase pengumpulan data dengan melakukan beberapa survey untuk keperluan perancangan aplikasi yang disesuaikan dengan kebutuhan-kebutuhan aplikasi.

Form survey yang akan dibuat memuat informasi yang didapat dari pihak-pihak berkepentingan dan beberapa pengguna khusus dengan cara wawancara langsung (face-to-face interview) dan kuesioner. 

Data yang didapat akan dirumuskan didalam proses khusus untuk pembangunan aplikasi. Dalam pelaksanaan fase ini kami akan melakukan kunjungan-kunjungan terhadap lokasi-lokasi yang kami anggap perlu untuk perancangan sistem yang dimaksud.


Pembangunan Arsitektural Awal

Tujuan dari fase ini adalah untuk menciptakan kandidat model arsitektural yang akan digunakan dan memasukannya kedalam bentuk dari prototype arsitektural. 

Dengan dilengkapi proses khusus yang sudah dilakukan di fase sebelumnya tim analis kami akan membuat desain arsitektural awal (Initial Architecture) dari Aplikasi yang kami ajukan sebagai acuan dalam pembuatan Mock-up Prototype. Mock-up Prototype inilah yang akan menjadi Aplikasi lewat proses pendesainan ulang yang terus menerus selama fase pembangunan.

Perhatian penuh harus diberikan kedalam fase ini guna mencegah terbentuknya apa yang kami sebut dengan ivory tower architecture. Arsitektural awal haruslah dibuat berdasarkan dengan permintaan-permintaan dari pengguna agar spesifikasi prototype yang kami desain akan setidaknya mendekati harapan dari pengguna sistem aplikasi. 

Dalam pelaksanaan fase ini kami mengharapkan kerjasama penuh dari Tim Counter Part untuk memastikan bahwa fungsi-fungsi yang dibutuhkan sudah terpenuhi. 

Setelah menerima persetujuan (approval) terhadap permintaan-permintaan dan batas-batas dari sistem yang akan digunakan, Tim kami akan menuliskannya didalam Form Diagram Teknik, adapun didalamnya memuat diantara lain; Diagram Aliran Data, Diagram Aliran Proses, Diagram Entitas Data. 

Hal diatas dijadikan sebagai input untuk Tim Pemrograman Aplikasi kami untuk membuat prototype yang dimaksud.


Fase Pembangunan (Construction Phase)

Fase ini mempunyai ciri dimana beberapa pengulangan dilakukan dalam tahap pembuatan proses software sesuai dengan implementasi atas permintaan-permintaan dari pengguna. 

Fase ini dimulai dengan mengumpulkan data dalam bentuk Matrix Kebutuhan Pengguna (User Requirements Matrix — URS) yang didapatkan dari fase sebelumnya untuk pembuatan Mock-up Prototype awal. Mock-up prototype ini akan disajikan kepada Tim Counter Part untuk memperoleh feedback, dengan kesadaran bahwa tidak semua kebutuhan ril pengguna telah diidentifikasi dalam fase sebelumnya.

Pengalaman kami menunjukkan bahwa masukan yang berharga akan kami dapatkan setelah penyajian Mock-up prototype, karena Mock-up prototype berisikan harapan-harapan dari pengguna sistem aplikasi tersebut.

Kritik-kritik dan saran dari penyajian Mock-up awal akan dilanjutkan ke proses pembuatan yang melibatkan desain ulang dari matriks permintaan-permintaan pengguna, Analisis, desain ulang terhadap Diagram Teknik, dan Model Integrasi Sistem dan akhirnya pengkodean ulang software. 

Proses ini akan mengalami proses pengulangan terus menerus sampai seluruh kebutuhan user teridentifikasi dengan tepat.

Interaksi dari pengguna memegang peranan penting dari fase ini. Pengguna aplikasi ini mengharapkan tes terhadap software kami di “sand box environment” yang merupakan lingkungan terisolasi dari proses pengembangan, untuk memastikan bahwa semua keinginan dan harapan dari klien kami dapat terpenuhi.


Persiapan Sistem (Deployment System)

Fase ini adalah merupakan bagian dari pengembangan/ pembangunan software kami, dimana dalam metodologi kegiatan ini bertujuan untuk memberikan solusi terhadap masalah yang dihadapi oleh pengguna. 

Dalam pengerjaan fase ini kami akan membuat final “tes dalam skala besar” aktifitas-aktifitas yang berkaitan adalah Tes Sistem, Tes Penerimaan Pengguna (User Acceptance Test), dan proses instalisasi sotware pada mesin-mesin klien.   

Dengan mengutamakan metodologi persiapan software untuk environment operasi, kami mengharapkan kritik yang membangun di detik-detik terakhir terhadap prototype kami guna merefleksikan keadaan di lapangan dalam penggunaan produk kami.


Fase Produksi (Production Phase)

Fase sesudah pembangunan ini meliputi kegiatan-kegiatan yang akan kami lakukan dalam proses adaptasi manajemen dan operasi serta aktifitas bantuan untuk penggunaan Aplikasi. Pada fase ini akan diadakan training-training guna melatih pengguna untuk mengoperasikan Aplikasi.     

Metodologi kami dalam membangun Aplikasi ini secara sepintas terlihat memiliki karakter yang sama dengan metode pengembangan tradisional lainnya. 

Perbedaan yang signifikan terlihat di dalam fase konstruksi dimana produk yang sedang dibangun harus melalui proses perancangan, pemodelan, dan penulisan kode program yang berulang-ulang sampai keseluruhan kebutuhan pengguna diidentifikasi.