Apa Itu Software Development Life Cycle (SDLC)?
Salah satu hal yang paling penting dalam pengembangan perangkat lunak adalah sebuah proses. Saat membuat perangkat lunak, kita tidak semerta-merta langsung melakukan coding-an tanpa tahu proses apa yang saja yang harus kita lakukan sebelum memulai melakukan coding. Nah, SDLC ini akan membantu kita agar tetap pada jalurnya dan tidak terjadi miscommunication antar anggota tim proyek.
Pengertian SDLC
SDLC adalah proses pengubahan dan pembuatan sistem, model, serta metodologi yang digunakan untuk mengembangkan software. SDLC ini sangat dibutuhkan sebagai langkah-langkah yang digunakan engineer dan developer dalam merancang perangkat lunak (software).
Manfaat SDLC
Ada beberapa manfaat dari SDLC, yaitu:
- Dapat membantu memanajemen proyek
- Stakeholder dan klien bisa mengetahui tahapan pengembangan dengan lebih terbuka
- Proses pengembangan proyek jadi lebih cepat karena telah terjadwal
- Meminimalisir kesalahan
- Menekan biaya produksi
- Meningkatkan hubungan yang baik dengan klien
Cara Kerja SDLC
SDLC bekerja dengan menurunkan biaya pengembangan software sekaligus meningkatkan kualitas dan mempersingkat waktu produksi. SDLC mencapai tujuan yang tampaknya berbeda ini dengan mengikuti rencana yang menghilangkan perangkap khas proyek pengembangan perangkat lunak. Rencana itu dimulai dengan mengevaluasi kekurangan sistem yang ada.
Selanjutnya, mendefinisikan persyaratan dari sistem baru. Kemudian menciptakan perangkat lunak melalui tahapan analisis, perencanaan, desain, pengembangan, pengujian, dan penyebaran. Dengan mengantisipasi kesalahan yang mahal seperti gagal meminta umpan balik dari end-user atau klien, SDLC dapat menghilangkan pengerjaan ulang yang berlebihan dan perbaikan setelah kejadian.
Penting juga untuk mengetahui bahwa kita harus lebih berfokus pada tahap pengujian. Karena SDLC adalah metodologi berulang, kalian harus memastikan kualitas kode di setiap siklus. Banyak organisasi cenderung menghabiskan sedikit upaya untuk pengujian, padahal lebih berfokus pada pengujian dapat menghemat banyak pengerjaan revisi, waktu, dan uang.
Tahapan-tahapan SDLC
Seperti yang sempat disinggung sedikit pada gambar yang paling atas, ada beberapa tahapan yang dilakukan saat menggunakan SDLC ini. Sesuai namanya "Life Cycle", artinya ada proses atau cycle beruntun dalam tahapannya.
- Requirement atau Analisis Kebutuhan
Pertama, kita mengidentifikasi apa masalah yang ada. Pada tahap ini, akan terjadi diskusi dan mendengarkan masukan-masukan dari seluruh stakeholder, termasuk pelanggan, marketing, ahli industri, hingga programmer. Pelajari kekurangan dan kelebihan sistem saat ini dengan tujuan untuk peningkatan.
Kedua, diskusikan apa yang dibutuhkan atau diperlukan proyek dan tim. Tim menentukan biaya dan sumber daya yang diperlukan untuk mengimplementasikan kebutuhan yang dianalisis. Akan dilakukan juga perincian risiko yang terlibat dan memberikan sub-rencana untuk mengurangi risiko tersebut. Dengan kata lain, tim harus menentukan kelayakan proyek dan bagaimana mereka dapat mengimplementasikan proyek dengan sukses dengan mempertimbangkan risiko terendah.
Pada tahapan ini akan dilakukan penyusunan dokumentasi, yaitu:
- SRS (Software Requirement Specifications) adalah dokumen yang berisi tentang semua kebutuhan fungsional dan non fungsional serta teknik dari software yang akan dibangun atau dikembangkan. SRS biasanya dibuat oleh Programmer yang nantinya diajukan ke Developer.
- BRD (Business Requirement Document) adalah dokumen yang berisi tentang spesifikasi fungsional software dan semua kebutuhan dan syarat yang diajukan oleh user. BRD biasanya dibuat oleh Business Analyst yang diajukan ke manajemen.
- Desain
Tahap SDLC ini dimulai dengan mengubah spesifikasi perangkat lunak menjadi rencana desain yang disebut Spesifikasi Desain. Semua stakeholder kemudian akan meninjau rencana ini dan memberikan masukan dan saran mereka. Sangat penting untuk memiliki rencana untuk mengumpulkan dan menggabungkan masukan stakeholder ke dalam dokumen ini. Kegagalan pada tahap ini pasti akan mengakibatkan kelebihan biaya dan kehancuran total proyek. Dokumen ini membantu untuk menentukan arsitektur sistem secara keseluruhan.
Adapun desain yang dibuat oleh tim UI/UX Designer adalah sebagai berikut:
- Membuat Architecture Design
- Mendesain User Interface
- Mendesain Alur Data (Diagram Alur Data)
- Membuat Diagram Proses
Tidak hanya bagi designer, tahap ini juga digunakan oleh tim Produk untuk:
- Menentukan prioritas kerja
- Menyusun Product Roadmap
- Meminta persetujuan dari stakeholder
- Development
Pada tahap ini, pengembangan yang sebenarnya dimulai. Setelah tahap perancangan sistem selesai, kita akan masuk ke tahap terpanjang dalam SDLC yaitu pengodingan. Pada tahap ini, tim developer mulai mengimplementasikan script bahasa pemrograman untuk membangun keseluruhan sistem.
Penting bagi setiap developer untuk tetap berpegang pada blueprint yang telah disepakati. Selain itu, pastikan kalian memiliki panduan yang tepat tentang gaya dan praktik kode.
Pada tahap pengkodean, tugas dibagi menjadi unit atau modul dan ditugaskan ke berbagai developer. Hasil akhir dari tahap ini adalah sebuah source code untuk software yang telah dibuat.
- Testing
Pada tahap ini kita akan berfokus pada, apakah software sudah sesuai dengan target dan apakah sudah dimplementasikan sesuai yang diinginkan tim. Pada tahap ini, kita akan menguji cacat dan kekurangan dari si software tersebut.
Ketika software selesai dikembangkan, saatnya kita menguji apakah produk ini sudah berjalan dengan baik. Tahap pengujian aplikasi atau website untuk memastikan apakah produk kita sudah berjalan dengan baik sesuai kebutuhan user.
Pengujian ini melibatkan utamanya Quality Assurance (QA), tim developer, dan bisa juga melibatkan user yang akan menggunakan produk. QA harus memastikan bahwa software yang dikembangkan telah memenuhi requirement.
Selama tahap ini, QA mungkin akan menemukan beberapa bug / defects, error, freeze yang nantinya akan mereka diskusikan kepada developer. Tim developer lalu memperbaiki bug dan mengirim kembali ke QA untuk pengujian ulang. Proses ini berlanjut hingga software benar-benar bug free, stabil, dan bekerja sesuai dengan requirement. Kita harus memperbaiki masalah tersebut hingga produk memenuhi spesifikasi aslinya.
- Deployment
Pada tahap ini, tujuannya adalah untuk menyebarkan perangkat lunak ke lingkungan produksi sehingga pengguna dapat mulai menggunakan produk tersebut. Akan tetapi, banyak organisasi memilih untuk memindahkan produk melalui lingkungan penerapan yang berbeda seperti lingkungan pengujian atau staging.
Hal ini memungkinkan setiap stakeholder untuk bermain dengan aman dengan produk tersebut sebelum merilisnya ke pasar. Selain itu, hal ini memungkinkan adanya kesalahan akhir dapat dideteksi sebelum merilis produk.
- Maintenance
Rencananya hampir tidak pernah menjadi sempurna ketika bertemu dengan kenyataan. Selanjutnya, seiring dengan perubahan kondisi di dunia nyata, kita perlu memperbarui dan memajukan perangkat lunak agar sesuai.
Pergerakan DevOps telah mengubah SDLC dalam beberapa hal. Pengembang sekarang bertanggung jawab atas semakin banyak langkah dari keseluruhan proses pengembangan.
Akan ada 3 aktivitas berikut yang terjadi, yaitu:
- Perbaikan bug: bug dilaporkan karena beberapa skenario yang mungkin tidak diuji sama sekali
- Upgrade: Upgrading aplikasi ke versi software yang terbaru
- Enhancement: Menambahkan beberapa fitur baru ke dalam perangkat lunak yang ada
Fokus utama fase ini adalah untuk memastikan bahwa kebutuhan terus terpenuhi dan sistem terus bekerja sesuai spesifikasi yang direncanakan pada fase requirement.
Metode-metode dalam SDLC
Model Waterfall
Model SDLC ini adalah yang tertua dan paling sederhana. Pendekatan ini dilakukan secara linear-sekuensial atau berjalan lurus seperti air terjun yang jatuh lurus, mulai dari awal sampai akhir.
Dengan metodologi ini, kami menyelesaikan satu tahap dan memulai yang berikutnya. Setiap tahap memiliki rencana kecilnya sendiri dan setiap tahap "waterfall" ke tahap berikutnya. Kelemahan terbesar dari model ini adalah bahwa detail kecil yang dibiarkan tidak lengkap dapat menunda seluruh proses.
Metode waterfall juga bersifat documentation-intensive, karena pada fase awal kita banyak mendokumentasikan apa saja yang perlu dilakukan pada fase berikutnya.
Model Agile pada SDLC akan memisahkan produk menjadi beberapa siklus dan menghasilkan produk yang berfungsi dengan sangat cepat. Metodologi ini menghasilkan rilisan yang berurutan. Pengujian pada setiap perilisan memberikan umpan balik yang akan menjadi masukan ke versi berikutnya.
Metode Agile membagi seluruh proyek menjadi siklus atau build inncremental yang lebih kecil dan disediakan dalam iterasi dari satu sampai tiga minggu. Metode Agile menggunakan praktek yang mendorong interaksi berkelanjutan dari pengembangan dan pengujian selama proses SDLC.
Menurut Robert Half, kelemahan model ini adalah penekanan yang kuat pada interaksi pelanggan dapat menyebabkan proyek menjadi ke arah yang salah dalam beberapa kasus.
Pada dasarnya metode ini adalah rangkaian dari model waterfall, sehingga bukanlah model yang berbeda atau terpisah dari waterfall. Pada awal rangkaian ini, requirement akan dibagi menjadi beberapa kelompok untuk mengembangkan software. Proses incremental akan berulang, sehingga akan menghasilkan lebih banyak fungsionalitas hingga semua requirement terpenuhi dari seluruh grup.
Model SDLC ini lebih menekankan pengulangan. Pengembang membuat versi dengan sangat cepat dan dengan biaya yang relatif kecil, kemudian menguji dan meningkatkannya melalui versi yang cepat dan berurutan. Satu kelemahan besar di sini adalah ia dapat menghabiskan sumber daya dengan cepat jika dibiarkan.
Perpanjangan dari model waterfall, metodologi SDLC ini menguji pada setiap tahap pengembangan. Seperti halnya air terjun, proses ini dapat mengalami hambatan. Pengujian dan pengembangan metode V direncanakan secara paralel. Metode V memberikan fase verifikasi dan fase validasi dan model ini akan bergabung dengan fase coding.
Model SDLC berisiko tinggi ini menggunakan sebagian besar sumber dayanya untuk pengembangan dan paling cocok untuk proyek kecil. Metode ini berfokus pada semua resource yang ada dengan requirement yang minim atau bahkan tanpa perencanaan. Ia tidak memiliki tahap definisi persyaratan menyeluruh dari metode lain. Big Bang adalah metode yang juga ideal ketika requirement tidak diketahui atau tanggal rilis final tidak diberikan.
Yang paling fleksibel dari model SDLC, model spiral mirip dengan model iteratif dalam penekanannya pada pengulangan. Model spiral melewati tahap perencanaan, desain, pembangunan, dan pengujian berulang kali, dengan peningkatan bertahap di setiap tahapannya.
Metode Spiral adalah kombinasi dari rapid prototyping dan concurency dalam desain dan pengembangan yang bersifat risk-driven. Metode ini mengadopsi elemen dari satu atau lebih metode SDLC lainnya seperti waterfall, incremental, agile, dan lainnya yang merupakan fitur terbaik.
Komentar
Posting Komentar