MANAJEMEN PROYEK PERANGKAT LUNAK (4) - System Development Life Cycle (SDLC)

 Assalamualaikum wr. wb.

Pada bagian ke-4, saya akan membahas memngenai SDLC - Software Development Life Cycle.

Apa itu SDLC?

SDLC merupakan sebuah rangkaian kegiatan pengembangan perangkat lunak / sistem berbentuk siklus perangkat lunak dari awal hingga akhir pengembangan.

SDLC digunakan dalam pengembangan perangkat lunak agar setiap tahapan pengembangan menjadi terstruktur, jelas dan mengurangi risiko kegagalan pengembangan.

SDLC secara umum terdiri dari tahapan / fase sebagai berikut:

1. Planning

Identifikasi masalah, peluang, dan hal yang berkaitan dengan apa yang akan kita buat. Client memberikan permasalahan dan developer mencatatnya. 

2. Analysis
Developer membuat analisis dari permasalahan client dan menghasilkan rumusan pengembangan perangkat lunak yang disepakati developer dan client.

3. Design

Developer merancang perangkat lunak yang sesuai dengan hasil analisis dan membuat rumusan detail mengenai pembangunan perangkat lunak.

4. Implementation

Developer membangun perangkat lunak dengan mengimplementasikan rancangan untuk di realisasikan menjadi perangkat lunak.

5. Testing & Integration

Developer & Client (atau user yang dipilih) menguji perangkat lunak dan memastikan semua fungsi program telah berjalan sesuai yang diharapkan. terdapat pengujian tingkat Unit dan tingkat Keseluruhan sistem.

Developer melakukan Integrasi unit/bagian perangkat lunak yang lolos pengujian ke dalam bentuk perangkat lunak yang siap di pakai user.

6. Maintenance

Perangkat lunak telah di gunakan oleh user. Developer memantau perangkat lunak dan feedback user dan memastikan perangkat lunak bekerja dengan semestinya di pihak client. Developer juga perlu memperbaharui bagian perangkat lunak yang sekiranya perlu.

SDLC merupakan kegiatan tersturktur, sudah pasti memiliki paradigma/cara pandang. SDLC sekarang memiliki banyak paradigma yang disesuaikan dengan masalah dan model pengembangan perangkat lunak. 

SDLC merupakan bahasa umum untuk menjelaskan suatu pengembangan perangkat lunak (wikipedia.org). Hal ini karena semua teknik pengembangan perangkat lunak pasti merujuk pada SDLC, namun memiliki perbedaan sesuai penggunaan. Paradigma yang berbeda-beda pada SDLC kadang dibedakan yang disebut  sebagai Metodologi pengembangan perangkat lunak.

Paradigma pengembangan perangkat lunak yang dikenal (wikipedia.org):
  • Model Air terjun (Waterfall)
  • Agile
  • Prototyping
  • Incremental
  • Spiral
  • V model
  • Rapid Application Development (RAD)
Beberapa Metodologi dan framework pengembangan perangkat lunak (wikipedia.org):
  • ASD
  • DevOps
  • DSDM
  • FDD
  • RAD
  • XP
  • Kanban
Dibawah metodologi ada metode. Sebagai contoh, Waterfall memiliki banyak penyesuaian yaitu metode (model) Waterfall itu sendiri, kemudian model spiral, model incremental, dan lain-lain. Beberapa menyebutkan bahwa model spiral, & incremental ini dikembangkan menjadi paradigma tersendiri.
Kemudian RAD, yang merupakan Metodologi yang menekankan kecepatan interaksi dengan client. Beberapa menyebutkan bahwa RAD adalah metodologi yang mempunyai paradigma pengembangan mendekati Agile & Prototyping.

Sekarang kita kaitkan SDLC dengan sebuah proyek perangkat lunak, maka hal tersebut adalah Project Life Cycle
Project Life Cycle terdiri dari 4 fase, yaitu:
1. Initiation Phase
2. Planning Phase
3. Execution Phase
4. Project Closure
Kemudian 4 tahap ini dinaungi oleh tahap Control & Monitoring.

Siklus inilah yang dikerjakan oleh Project Manager. Mari kita rangkum tiap fase:
1. Initiation Phase
  • Identifikasi masalah
  • definisikan batasan proyek
  • koordinasi pembagian tanggung jawab dengan stakeholder
  • buat struktur organisasi
  • buat dokumentasi untuk semua rencana
  • definisikan daftar risiko, dan asumsi proyek
  • pembagian tim proyek & lokasi kerja
  • review proyek
2. Planning Phase
  • Buat rencana proyek beserta sumber daya, keuangan, kualitas, dan risiko nya. Hal ini dipengaruhi oleh Project management Triangle.
  • melakukan review fase-2
  • menghubungi supplier
  • membuat rencana pengadaan, komunikasi, dan rencana penerimaan.
3. Execution Phase
  • Membangun sistem. Didalamnya dilakukan 9 manajemen proyek 
    • Manajemen Risiko
    • Manajemen Isu
    • Manajemen Pengadaan
    • Manajemen Penerimaan
    • Manajemen Komunikasi
    • Manajemen Perubahan
    • Manajemen Kualitas
    • Manajemen Biaya
    • Manajemen Waktu
  • Kontrol & pemantauan sistem
  • Review fase-3
4. Project Closure
  • Sistem yang telah jadi diserahkan pada pelanggan
  • Kontak dengan supplier diakhiri
  • Pembubaran tim proyek & menyerahkan laporannya pada stakeholder
  • Post-implementation review
  • Sesi evaluasi.

Contoh 2 Metodologi Pengembangan Perangkat Lunak:

NB: PL = Perangkat Lunak

Waterfall:

  • Waterfall (Model Air Terjun) merupakan SDLC tradisional, yang menjadi metodologi umum dalam pengembangan PL karena tahapan yang jelas. Tahap pengembangan di waterfall itulah yang sering kita lihat sebagai tahapan SDLC, terdiri dari perencanaan, analisis, implementasi, testing, dan pemeliharaan. Hal ini membuat semua proyek dengan waterfall dapat diperkirakan.
  • Waterfall adalah pengembangan PL prediktif. Artinya, perlu perencanaan yang matang serta analisis yang baik secara mendalam sebelum masuk ke tahap coding / implementasi.
  • Waterfall dikatakan lebih aman karena berorientasi pada rencana, sehingga jika perencanaan nya baik, maka waterfall akan lancar hingga akhir. Kemudian, pemisahan tahap membuat pekerjaan terpisah dan tidak bersamaan. Jadi, Penguji PL bekerja setelah Pengembang PL selesai membuat PL secara keseluruhan, dan setiap tahap selalu diakhiri dengan laporan detail menuju tahap selanjutnya.
  • User dapat menggunakan PL pada tahap testing (jika ada beta testing) dan setelah PL rilis.
  • Dokumentasi PL harus mendetail dan dapat digunakan untuk melatif seluruh tim dalam meningkatkan kualitas PL.
  • Kesalahan saat pengujian PL (kesalahan persyaratan / ada perubahan besar) akan membuat pengembangan PL di-reset dari awal kembali.
Pemisahan tiap fase dalam Waterfall. Sumber: https://www.ntaskmanager.com/.

Agile:

  • Agile adalah pengembangan PL yang menyatukan pengembangan dan pengujian bergantian secara iteratif sepanjang siklus pengembangan PL, tidak seperti Waterfall yang memisahkannya secara jelas.
  • Agile adalah pengembangan PL adaptif, dimana tidak terdapat perancanaan yang sangat detail. Pengembangan fitur dilakukan secara dinamis dan tugas tim menyesuaikan. PL akan sering diuji setiap iterasi dan perilisian update, agar meminimalkan risiko kegagalan yang besar di masa yang akan datang.
  • Agile dipengaruhi interaksi pelanggan & feedback. Agile dikhaskan memliki dokumentasi terbuka dan minimal, serta tim yang bekerja di lokasi geografis yang sama.
  • Proses untuk 1 iterasi sangat singkat (2-4 minggu), Sehingga jika proyek kecil bisa diperkirakan penyelesaiannya, maka proyek besar akan sulit diperkirakan.
  • User dapat menggunakan PL pada tiap Sprint. Jika tim memiliki kontak yang baik dengna user, maka Fitur baru mungkin bisa digunakan lebih cepat.


Ilustrasi iterasi pengembangan dengan Agile. Sumber: https://itchronicles.com/



Referensi:
Materi Mata Kuliah Analisis & Perancangan Sistem: Agile Model vs Waterfall Model. Eva Faja Ripanti.

Komentar

Postingan Populer