Tag Archives: agile

SDLC

SDLC adalah singkatan dari Software Development Life Cycle. SDLC merupakan siklus pengembangan software yang terdiri dari empat fase fundamental: perencanaan, analisis, desain, dan implementasi. Pada setiap fase ini, dihasilkan deliverables, atau hasil pekerjaan berupa dokumen atau sistem. Deliverables dari satu fase digunakan sebagai masukan pada fase berikutnya, dan akan diperkaya dengan detail tambahan setiap berpindah fase.

Penjelasan keempat fase dalam SDLC adalah sebagai berikut:

1. Perencanaan
Fase ini penting untuk mendefinisikan kenapa software harus dibuat dan menentukan bagaimana tim akan mengerjakan proyek tersebut.

  • Software, atau dalam konteks perusahaan biasanya berupa sistem informasi dibuat/dibeli bukan semata2 agar punya software, tapi bagaimana software itu bisa memberikan nilai tambah bagi perusahaan.
  • Jika request software berasal dari divisi non IT, biasanya mereka akan membuat system request yang berisi ringkasan kebutuhan bisnis, dan bagaimana software yang diinginkan bisa menciptakan business value. Kemudian dilakukan feasibility analysis
  • Feasibility analysis terdiri dari technical feasibility (bisakah kita membuatnya?), economic feasibility (apakah menciptakan business value?), dan organizational feasibility (jika software dibuat, apakah akan digunakan?)
  • Setelah itu ditentukan sofware jadi dibuat atau tidak

2. Analisis
Fase ini menjawab pertanyaan siapa yang akan menggunakan sistem, apa yang akan dilakukan sistem, dan kapan serta di mana sistem akan digunakan. Terdapat tiga langkah dalam fase ini sbb:

  • Analysis strategy: Menjelaskan strategi untuk menganalisis sistem, termasuk menganalisis sistem yang sudah ada, dan cara2 untuk mendesain sistem baru
  • Requirement gathering: Mengumpulkan informasi terkait kebutuhan sistem dengan wawancara atau kuisioner
  • System proposal: dokumen hasil analisis, konsep, dan model sistem

3. Desain
Di fase ini ditentukan bagaimana sistem akan beroperasi, berkenaan dengan software, hardware, infrastruktur jaringan, user interface, form, reports, database, dll.

  • Dibuat design strategy, yaitu bagaimana sistem akan didapatkan: dikembangkan sendiri oleh programmer perusahaan, atau outsource, atau beli software jadi
  • Membuat dokumen desain: desain arsitektur (hardware, software, infrastruktur jaringan), desain interface (navigasi, menu, dll), spesifikasi database dan file, serta desain program
  • Dokumen desain ini disebut system specification

4. Implementasi
Fase terakhir adalah implementasi, di mana sistem akhirnya dibuat, atau dibeli. Fase ini terdiri dari tiga tahapan berikut:

  • System construction: implementasi sistem berikut pengujiannya (testing)
  • Installation: Instalasi sistem di tempat pengguna. Jika diperlukan termasuk training pengguna
  • Support: pendampingan pasca sistem digunakan

 

Dalam mengimplementasikan SDLC ke pengembangan software sungguhan, terdapat beberapa metodologi. Ada yang lempeng aja, semua fase ini dijalankan satu2 dan berurutan, ada yang dipecah2 jadi beberapa bagian yang setiapnya terdapat beberapa fase SDLC, dan lain2. Secara garis besar, metodologi pengembangan software ini terdiri dari 3 kategori sbb:

1. Structure Design

Kategori metodologi ini marak digunakan tahun 1980an. Modelnya lurus lempeng gitu, berpindah dari satu fase ke fase berikutnya. Contoh metodologi ini adalah Waterfall Development. Tahapan dalam Waterfall ini sekuensial dari mulai perencanaan sampai implementasi. Dokumen deliverables dari tiap fase ini biasanya banyak. Ada jeda waktu yang lama dari inisiasi proyek dan analisisnya, sampai ke implementasi. Jadi sebelum sistem diimplementasi, desainnya benar2 harus didefinisi dengan baik.

Waterfall Development

Waterfall Development

2. Rapid Application Development (RAD)

Metodologi ini mulai muncul tahun 1990an. RAD mengatasi kekurangan metode struktural dengan mendeliver sebagian sistem yang sudah selesai untuk mendapatkan feedback dari pengguna. Contoh metodologi ini adalah Prototyping. Metode ini menjalankan fase analisis, desain, dan implementasi secara berbarengan sampai menghasilkan system prototype. Prototype adalah bagian sistem yang memiliki fitur minimum, dan dimulai dari yang paling dibutuhkan pengguna. Prototype ini diberikan pada pengguna untuk diberi feedback, kemudian kembali mengulang proses analisis, desain, dan implementasi, sampai sistem selesai dikerjakan.

Prototyping

Prototyping

3. Agile Development

Agile Development ini metodologi yang agak2 mainstream, beda dari dua yang sebelumnya. Fokus metodologi ini adalah di implementasi atau programming-nya, meminimalisir pembuatan model dan dokumentasi, menekankan pada pengembangan iteratif. Contoh metodologinya adalah XP (Extreme Programming) yang memiliki 4 prinsip: komunikasi, kesederhanaan, feedback, dan keberanian. Model pengembangan XP itu cepat, sering melakukan pengujian, pair-programming, dan interaksi yang intens dengan pengguna untuk mendapatkan feedback.

Dalam memilih metodologi pengembangan software, tergantung pada banyak faktor, seperti waktu pengembangan, kejelasan requirement, kompleksitas sistem, dll.

sumber: System Analysis and Design with UML version 2.0 by Alan Dennis, Barbara Haley Wixon, David Tegarden. 2nd edition, Wiley 2005

 

Dengan kaitkata , , , , , , , , , , , , , , ,