Skip to main content

"Estimasi" dalam Proyek Software - Tinjauan Sekilas

Apa yang dimaksud dengan "estimasi" dalam proyek software?
Kebutuhan nyata akan software sudah ditetapkan; para stakeholder sudah ada, software engineer siap untuk dimulai, dan proyek segera dimulai. Tetapi bagaimana kita melanjutkan perjalanan proyek? Perencanaan dalam proyek software meliputi lima kegiatan utama, yaitu — estimasi, penjadwalan, analisis risiko, perencanaan manajemen mutu, dan perencanaan manajemen perubahan (change management). Dalam konteks ini, kita hanya membahas "estimasi", yaitu — upaya kita untuk menentukan berapa banyak uang, effort, sumber daya, dan waktu yang diperlukan untuk membangun sistem atau produk berbasis software tertentu.

Siapa yang melakukan hal ini?
Manajer proyek software — dengan menggunakan informasi yang diminta dari para stakeholder proyek dan data metrik software yang dikumpulkan dari proyek sebelumnya.
Mengapa hal ini penting?
Apakah kita akan membangun rumah tanpa mengetahui berapa banyak (uang, tenaga, dsb) yang akan kita habiskan, tugas-tugas yang perlu kita lakukan, dan jangka waktu untuk pekerjaan yang akan dilakukan? Tentu saja tidak! Dan karena sebagian besar sistem dan produk berbasis komputer harganya jauh lebih mahal dibanding harga rumah, jadi sangatlah masuk akal untuk membuat "estimasi" terlebih dahulu sebelum kita mulai membuat software.

Apa saja langkah-langkahnya?
Estimasi dimulai dengan deskripsi scope produk. problem kemudian didekomposisi menjadi satu set problem yang lebih kecil, dan masing-masing di-"estimasi" menggunakan data historis dan pengalaman sebagai panduan. Kompleksitas problem dan risiko dipertimbangkan sebelum estimasi akhir dibuat.

Apa produk pekerjaan ini?
Tabel sederhana yang menggambarkan tugas yang harus dilakukan, fungsi yang harus dilaksanakan, dan biaya, effort, dan waktu yang diperlukan.

Bagaimana kita memastikan bahwa kita telah melakukannya dengan benar?
Hal ini adalah sulit, karena kita tidak akan benar-benar tahu sampai proyek tersebut selesai. Namun, jika kita memiliki pengalaman dan mengikuti pendekatan sistematis, menghasilkan estimasi menggunakan data historis yang solid, membuat poin estimasi data menggunakan setidaknya dua metode yang berbeda, membuat jadwal yang realistis, dan terus-menerus menyesuaikannya ketika proyek bergerak maju, kita dapat merasa yakin bahwa kita sudah memberikan yang terbaik.

--o0o--

Referensi: 
Software Engineering - A Practitioner's Approach - Roger S. Pressman / Bruce R. Maxim

Comments

Popular posts from this blog

Pengertian Binding dalam Bahasa Pemrograman dan Kapan Terjadinya

Binding dimaksudkan sebagai pengikatan (association) antara suatu entity dengan atributnya, misalnya binding/pengikatan antara suatu variable dengan tipe datanya atau dengan nilainya, atau dapat juga antara suatu operasi dengan simbol, misalnya simbol + dikenali sebagai operasi penjumlahan atau simbol ^ dikenali sebagai operasi pangkat, dll.  Peristiwa binding dan kapan terjadinya binding (biasanya disebut dengan binding time ) berperan penting dalam membicarakan semantics suatu bahasa pemrograman. Beberapa kemungkinan binding time adalah:

Latihan Soal Jawab Matematika Diskrit

Berikut di bawah ini adalah latihan soal jawab untuk matematika diskrit dengan topik-topik: Pernyataan Logika Circuits dan Ekspresi Boolean Argumen (valid/tidak valid) Teori Himpunan Permutasi Fungsi --o0o-- Pernyataan Logika 1. Buatlah tabel kebenaran untuk menentukan yang mana tautology dan yang mana contradiction dalam pernyataan logika (a) dan (b) di bawah ini: a. (p ∧ q) ∨ (∼p ∨ (p ∧ ∼q)) b.  (p ∧ ∼q) ∧ (∼p ∨ q)

Contoh proses normalisasi relasi dari UNF – 1NF – 2NF – dan 3NF

Dalam posting tulisan tentang: “Tujuan dan Manfaat Normalisasi dalam Perancangan Database” , kita sudah mempelajari tentang: “Apa itu normalisasi” dan “Mengapa kita perlu melakukan normalisasi”. Kedua pertanyaan itu sudah terjawab dalam tulisan tersebut.  Kemudian dalam posting tulisan tentang: “Konsep Ketergantungan Fungsional, Normalisasi, dan Identifikasi Primary Key dalam Perancangan Sistem Database” , kita sudah mempelajari suatu konsep penting yang digunakan untuk melakukan normalisasi, yaitu konsep ketergantungan fungsional yang terdiri dari ketergantungan penuh, ketergantungan parsial atau sebagian, dan ketergantungan transitif. Proses normalisasi pertama-tama dilakukan dengan mengidentifikasi adanya ketergantungan-ketergantungan tersebut dalam relasi-relasi dan kemudian menghilangkannya. Cara melakukan normalisasi, mengidentifikasi berbagai macam ketergantungan, dan menghilangkan ketergantungan pada relasi-relasi bisa dipelajari ulang dalam postingan tulisan di at