Wednesday, October 26, 2016

Teknik Estimasi

Dalam kesempatan kali ini saya ingin membahas salah satu tahap penting dalam perencanaan proyek, yang merupakan bagian dari manajemen proyek dan rekayasa perangkat lunak, yaitu Estimation Techniques atau teknik estimasi dalam proyek perangkat lunak.

Ketika proyek akan dilaksanakan, terlebih dahulu kita melakukan perencanaan proyek. Dalam perencanaan proyek ada lima aktivitas utama, salah satunya adalah estimasi. Estimasi berarti menentukan seberapa besar biaya, jumlah kerja, sumber daya dan waktu yang akan dibutuhkan untuk membangun sebuah sistem. Estimasi biasanya dilakukan oleh manajer proyek, dengan menggunakan informasi dari stakeholder atau data metrik proyek yang sudah pernah dilakukan. Hal-hal yang umumnya diestimasi dalam proyek perangkat lunak yaitu jadwal (waktu), biaya, performa sistem dan resiko.

Ada banyak sekali ketidakpastian dalam melaksanakan sebuah proyek, sehingga tidak mungkin untuk memperkirakan biaya pengembangan sistem dengan akurat di tahap awal proyek. Terlalu banyak variabel, termasuk sumber daya manusia dan kemampuannya yang terlibat dalam proyek. Namun estimasi proyek perangkat lunak bisa berubah menjadi serangkaian langkah yang sistematis sehingga dapat menghasilkan perkiraan dengan resiko yang bisa diterima.

Teknik estimasi meliputi analogi, pengalaman, penilaian dari ahli, dan penggunaan model parametrik seperti model PRICE untuk hardware, COCOMO untuk proyek perangkat lunak, dan COSYMO untuk proyek sistem.

Ada dua teknik yang bisa dilakukan dalam estimasi:
  1. Teknik berdasarkan pengalaman
  2. Algorithmic cost modelling

Teknik berdasarkan pengalaman adalah teknik dengan memperkirakan jumlah kerja yang akan dilakukan berdasarkan pengalaman manager pada proyek yang pernah ia laksanakan dan domain aplikasi. Teknik ini lebih baik dilakukan dengan bantuan anggota tim proyek dengan menjelaskan masing-masing estimasi yang dilakukan. Ini dapat memunculkan hal-hal baru yang mungkin tidak disadari oleh anggota tim yang lain maupun oleh manajer, kemudian dirumuskan estimasi kesepakatan tim. Kesulitan jika menggunakan teknik ini adalah proyek perangkat lunak yang akan dikembangkan mungkin tidak memiliki banyak persamaan dengan proyek sebelumnya. Hal ini akan menyulitkan estimasi dengan akurat sebab pengalaman di masa lalu akan tidak banyak membantu. Pengembangan perangkat lunak berubah pesat dan terkadang menggunakan teknik yang tidak familiar seperti web services dan pengembangan berdasarkan COTS.

Algorithmic Cost Modelling menggunakan formula matematika untuk memprediksi biaya proyek berdasarkan pada perkiraan ukuran proyek; jenis perangkat lunak yang dikembangkan; dan faktor tim, proses dan produk lainnya. Algorithmic Cost Modelling digunakan terutama untuk membuat estimasi biaya pengembangan perangkat lunak. Model ini adalah cara sistematis untuk memperkirakan jumlah kerja yang dibutuhkan untuk mengembangkan sistem. Namun model ini kompleks dan susah digunakan, sehingga model semacam ini hanya digunakan oleh beberapa perusahaan saja.

Untuk beberapa jenis pengembangan tertentu, ada estimasi khusus yang digunakan. Seperti pada agile development. Pada agile development, pendekatan estimasi yang digunakan lebih informal dan ringkas, sesuai dengan sumber daya yang ada. Estimasi khusus ini memudahkan alokasi jumlah kerja agar dapat menyesuaikan kondisi seiring berjalannya proses pengembangan. 

Estimasi proyek perangkat lunak tidak pernah bisa dirumuskan dengan 100 persen akurat, akan tetapi dengan mengkombinasikan data historis yang baik dan teknik-teknik yang sistematis, kita bisa meningkatkan akurasi dari estimasi tersebut.

Sekian penyampaian materi oleh saya, semoga dapat bermanfaat bagi pembaca sekalian.



EmoticonEmoticon