Apa itu software process?

A software process (also knows as software methodology) is a set of related activities that leads to the production of the software.” – Omar El Gabry (medium.com)
Atau jika dibahasa indonesiakan, software process (atau disebut juga software methodology) adalah gabungan dari aktivitas yang saling berhubungan yang berujung pada produksi software. Jadi bisa dikatakan juga kalau produk software/software product adalah hasil akhir dari software process.
Software process harus memiliki 4 aktivitas, yakni:
  1. Software specification/Requirement engineering (Rekayasa pengetahuan): Berisi fungsionalitas utama dari software dan batasan disekitarnya.
  2. Software design and implementation (Perancangan software dan implementasi): Software dirancang dan diprogram. Di beberapa referensi proses ini dibagi menjadi 2 masing-masing, yakni software design sendiri dan implementasi sendiri.
  3. Software verification and validation (Verifikasi dan validasi software). Software harus sesuai dengan spesifikasinya dan memenuhi kebutuhan kostumer.
  4. Software evolution/software maintenance. Software dimodifikasi untuk memenuhi berubahnya kebutuhan kostumer dan pasar.


Software process adalah sesuatu yang kompleks, mempengaruhi keputusan yang dibuat. Tidak ada process yang ideal dan banyak organisasi yang mengembangkan software processnya sendiri.
Dalam software process terdapat beberapa jenis model, yakni:
1. Waterfall Model
             Model waterfall memiliki pendekatan sekuensial, dimana setiap aktivitas fundamental dari sebuah proses di representasikan sebagai tahap yang berbeda, disusun dengan urutan yang linear.
Tahap dalam waterfall model adalah: Kebutuhan/Requirements, Perancangan/Design, Implementasi, Testing, dan Maintenance.
2. Prototyping
             Model ini menggunakan konsep “try and error”, dimana developer membuat prototype penuh dan user langsung menilai apakah sudah cocok atau belum, jika belum maka prototype yang lama akan dikembangkan sesuai masukan dari user untuk menghasilkan prototype yang baru yang akan dicoba lagi oleh user. Proses ini terus dilakukan sampai user merasa semua kebutuhannya sudah terpenuhi.
3.  Rapid Application Development (RAD)
             Model pengembangan yang menekankan kecepatan dalam pengembangan melalui keterlibatan user, dimana user selalu mencoba hasil prototype kecil sebelum akhirnya proyek dilanjutkan. Perbedaannya dengan prototyping adalah dimana dalam prototyping developer membuat prototype penuh yang langsung dinilai user, dan mengubah prototype yang sama jika ada perubahan (iterative), berbeda dengan RAD, dimana aplikasi hanya dibuat prototype kecil, dan jika user sudah fix maka akan dilanjutkan ke prototype selanjutnya (incremental).





Salah satu contoh software yang sudah terdevelop dengan baik adalah Instagram. Instagram dibuat oleh Kevin Systrom yang diluncurkan pada 6 October 2010 dengan 25000 beta user. Dilansir dari thenextweb.com, menurut Hendrik Werdelin, pembuat BARK dan Prehype, mengatakan bahwa untuk membuat aplikasi sejenis Instagram dibutuhkan biaya sekitar $100,000 sampai $300,000 dengan waktu pembuatan 3 sampai 6 bulan. Pada awalnya aplikasi ini hanya tersedia untuk iOS.

Untuk team yang terlibat dalam pembuatan awalnya, penulis memperkirakan sebagai berikut:
          1.      Project manager : Menjadi kepala dari project pembuatan aplikasi ini
          2.      iOS developer : Membuat aplikasi Instagram berbasis iOS (tampilan serta handling API)
          3.      Back-end developer : Membuat backend dari aplikasi Instagram
Lalu sembari berjalannya waktu bertambah pula team yang dibutuhkan yakni:
          1.      Android developer : Membuat aplikasi Instagram berbasis Android (tampilan serta handling API)
          2.      Windows phone/Windows 10 developer : Membuat aplikasi Instagram berbasis Windows Phone (tampilan serta handling API)
          3.      Data scientist : untuk mendapatkan informasi yang dibutuhkan untuk mengembangkan aplikasi lebih lanjut


sumber:
https://static1.squarespace.com, diakses 12 Februari 2018


Comments

Popular posts from this blog

Project Charter Halodoc

Proposal Proyek Halodoc

Goals/tujuan dalam proyek perangkat lunak