Mengenal Beragam Metode System Development Life Cycle
Apakah kamu pernah mendengar istilah Product Development? Jika belum, kamu dapat membaca pada artikel berikut ya.
Saat melakukan development sebuah product, pasti harus menentukan metode System Development Life Cycle (SDLC) mana yang dapat membantu kita dengan tepat dan sesuai dengan tujuan organisasi. Menurut Rosa dan Shalahuddin dalam bukunya yang berjudul Rekayasa Perangkat Lunak, System Development Life Cycle (SDLC) adalah proses mengembangkan atau mengubah suatu sistem perangkat lunak dengan menggunakan model dan metodologi yang digunakan orang untuk mengembangkan sistem-sistem perangkat lunak sebelumnya berdasarkan best practice.
Kemudian pendapat lain menurut O’brien, masih dalam buku Rekayasa Perangkat Lunak menjelaskan bahwa System Development Life Cycle (SDLC) adalah suatu metodologi yang digunakan untuk mengembangkan, memelihara, dan menggunakan sistem informasi.
Ada beberapa macam metodologi yang familiar digunakan dalam System Development Life Cycle. Yuk kita bahas satu persatu di bawah ini.
- Waterfall
Metodologi waterfall sering disebut model linear. Metodologi development product ini memiliki pendekatan fase yang berurutan mulai dari analisis, requirement specification, design, development, testing and integration, dan deployment.
Setiap fase akan dilewati satu persatu sesuai tahapannya dan tidak boleh lompat fase lain. Metodologi ini banyak digunakan oleh mahasiswa untuk mengerjakan skripsi, karena tahapannya yang lebih teratur dan jelas. Namun di dunia kerja, metodologi ini jarang digunakan karena waktu deliver product relatif lebih lama dan dinilai kurang adaptif terhadap perubahan yang cepat.
2. Agile
Metodologi agile juga disebut metode Iterative. Metode ini didasari oleh development yang berulang, serta aturan dan solusi yang disepakati bersama berdasarkan kolaborasi antar tim secara terorganisir. Metode ini lebih banyak digunakan pada dunia kerja karena beberapa hal, sebagai berikut.
- Lebih cepat delivering value
- Tidak menghabiskan waktu development yang lama
- Tidak menggunakan banyak resource dalam 1 tim
- Adaptif terhadap perubahan
- Diselesaikan dalam beberapa potongan kecil
Berdasarkan Scrum & Kanban UK, agile terbagi menjadi 3, antara lain sebagai berikut.
a. Split team agile
Sering disebut mini waterfall karena sebuah tim akan dibagi lagi menjadi 2 tim kecil yang memiliki tugas berbeda, yaitu tim A researcher dan designer, sedangkan tim B developer dan tester.
Tim A (researcher dan designer) akan banyak menghabiskan sprint untuk mendefinisikan requirement dan design. Sedangkan tim B (developer dan tester) akan mengikuti sprint yang berjalan sehingga tim A cenderung membuatkan sprint backlog untuk tim B.
b. Single track agile
Di single track agile, semua anggota tim baik itu researcher, designer, developer dan tester akan bekerja sama dalam waktu yang sama untuk mencapai tujuan yang sama. Semua proses juga dilalui bersama mulai dari planning, development, testing, rilis, dan measure product. Dengan demikian, semua anggota tim paham apa saja kebutuhan, fokus, value, dan tujuan mereka.
c. Dual track agile
Dual track agile hampir mirip dengan single track agile. Bedanya yaitu single membagi sebuah tim menjadi 2 tim yang berbeda output, sedangkan dalam dual track, semua anggota tetap di satu tim yang sama hanya saja jenis pekerjaan dibagi menjadi 2 dan bekerja sama untuk mencapai tujuan yang sama.
Dalam dual track agile ini seluruh anggota tim bertanggung jawab atas keberhasilan yang dihasilkan bukan hanya melakukan development karena delivery time, tapi juga memahami kontribusi yang diberikan.
Menurut Jeff Patton, yang menjelaskan tentang dual track, “Dual track development is not Duel track”. Hal ini karena 2 proses yang kamu pikirkan sebenarnya adalah 2 bagian di dalam sebuah proses.
3. LBM by Lean
LBM sendiri merupakan singkatan dari Learn, Build, Measure. Menurut Eric Ries dalam bukunya “The Lean Startup”, LBM adalah lingkaran aktivitas dasar untuk mengubah ide menjadi produk, mengukur bagaimana respon user, lalu mempelajari bagaimana product terus bertahan dan berkembang. Tidak ada aturan khusus dalam memulai lingkaran aktivitas ini, kita bisa memulai dengan melihat kondisi yang sedang kita alami.
Contohnya, jika memiliki sebuah ide untuk mengembangkan sebuah aplikasi yang berguna untuk pengguna transportasi umum, tapi tidak terlalu paham apa saja kebutuhan user. Sebagai langkah awal, dapat melakukan development aplikasi berdasarkan kebutuhan sebagai pengguna transportasi umum. Setelah development dilakukan, mulai masuk ke tahap measure untuk menganalisa performansi product. Ketika sudah mendapatkan data analisa, kita dapat mengetahui dan mempelajari kebutuhan user, sehingga akan keluar ide baru untuk develop dan mengembangkan product ke versi yang yang lebih baik lagi.
Sebenarnya masih ada metodologi pengembangan sistem yang dapat membantu kita dalam mengembangan sistem. Namun sebanyak apapun jenis akan ada satu atau beberapa metodologi yang fit dengan culture kerja. Menurutmu, apa metodologi yang cocok dengan culture kerjamu?