Kegagalan banyak
megaproyek perangkat lunak pada tahun 1960-an dan awal 1970-an merupakan
petunjuk awal mengenai kesulitan manajemen perangkat lunak. Perangkat lunak
diserahkan terlambat, tidak dapat diandalkan memakan biaya beberapa kali lipat
dari yang semuladiperkirakan dan seringkali menunjukkan karakteristik kinerja
yang buruk (Brooks,1975). Proyek-proyek ini gagal bukan karena manajer atau
programer tidak kompeten. Sebaliknya proyek yang besar dan menantang ini
menarik orang-orang dengan kemampuan rata-rata. Kegagalan yang terjadi
ditimblkan oleh pendekatan manajemen yang digunakan. Teknik manajemen dari
disiplin ilmu lain yang diterapkan ternyata tidak efektif untuk pengembangan
perangkat lunak. Oleh karena itu, kebutuhan akan manajemen merupakan perbedaan
penting antara pengembang perangkat lunak profesional dan amatir.
Manajer perangkat
lunak melakukan pekerjaan yang sama dengan manajer proyek perangkat lain. Namun
demikian, rekayasa perangkat lunak berbeda dengan jenis rekayasa lain karena
beberapa hal, manajemen perangkat lunak sangat sulit. Perbedaan tersebut
anatara lain produk perangkat lunak yang tidak berwujud, tidak adanya pemahaman
yang jelas mengenai hubungan antara proses perangkat lunak dengan jenis produk,
proyek perangkat lunak yang besar biasanya berbeda dari proyek-proyek
sebelumnya. Akibat dari adanya masalah-masalah ini, akan menimbulkan dampak
berupa proyek perangkat lunak yang terlambat, melebihi anggaran, dan melewati
jadwal.
A. Kegiatan-kegiatan
Manajemen
1. Penulisan proposal
yang mendeskripsikan tujuan proyek dan dan bagaimana pelaksanaannya. Proposal
biasanya juga mencakup perkiraan biaya dan jadwal.
2. Perencanaan dan
penjadwalan proyek yang berkenaan dengan identifikasi kegiatan, patokan dan apa
yang harus dihasilkan oleh proyek.
3. Pemantauan proyek,
dimana manajer harus mengetahui kemajuan proyek dan membandingkankemajuan dan
biaya yang sebenarnya dikeluarkan dengan biaya yang direncanakan.
B. Perencanaan Proyek
Jenis-jenis rencana proyek
1. Rencana kualitas. Mendeskripsikan
prosedur kualitas danstandar yang akan digunakan pada sebuah proyek.
2. Rencana validasi. Mendeskripsikan
pendekatan, sumberdaya, dan jadwal yang digunakan untuk validasi sistem.
3. Rencana manajemen
konfigurasi. Mendeskripsikan prosedur dan struktur manajemen kofigurasi yang akan
digunakan.
4. Rencana pemeliharaaan. Meramalkan
persyaratan sistem, biaya pemeliharaan dan usaha yang dibutuhkan.
5. Rencana pengembangan
staf. Mendeskripsikan bagaimana keterampilan dan pengalaman anggota tim proyek
akan dikembangkan.
Perincian rencana proyek bervariasi,
tergantung pada jenis proyek dan organisasi. Namun demikian, sebagian besar,
rencana harus mencakup bagian-bagian berikut ini:
1. Pendahuluan. Bagian ini dengan
singkat mendeskripsikan tujuan proyek dan menentukan batasan-batasan (misalnya,
anggaran, waktu) yang mempengaruhi manajemen proyek.
2. Organisasi proyek. Bagian ini
mendeksripsikan bagaimana tim pengembangan diorganisir, siapa saja yang
terlibat dan perannya dalam tim.
3. Analisis resiko. Bagian in
mendeskripsikan risiko proyek yang mungkin timbul, kemungkinan munculnya
risiko-risiko tersebut dan strategi pengurangan risiko yang diusulkan.
4. Persyaratan sumber
daya perangkat keras dan perangkat lunak. Bagian ini
mendekripsikan perangkat keras dan perangkat lunak pendukung yang dibutuhkan
untuk melakukan pengembangan. Jika perangkat keras harus dibeli, maka perkiraan
hargadan jadwal pengantaran harus dimasukkan.
5. Pembagian kerja. Bagian ini
mendeskripsikan pembagian proyek menjadi kegiatan-kegiatan, dan identifikasi
patokan dan hasil yang diharapkan dari setiap kegiatan.
6. Jadwal proyek. Bagian ini
mendeskripsikan ketergantugan antara kegiatan, perkiraan waktu yang diperlukan
untuk mencapai setiap patokan (milestone) dan alokasi SDM bagi
kegiatan-kegiatan tersebut.
7. Monitor dan mekanisme
pelaporan. Bagian ini mendeskripsikan laporan manajemen yang dihasilkan, kapan
laporan itu harus diberikan, dan mekanisme pemantauan proyekyang digunakan.
Patokan (milestone)
dan hasil yang dapat diserahkan (deliverable)
C. Penjadwalan proyek
Penjadwalan proyek merupakan pekerjaan
yang sangat menantang bagi manajer perangkat lunak. Manajer memperkirakan waktu
dan sumber daya yang diperlukan untuk menyelesaikan kegiatan dan mengaturnya
dalam urutan yang logis. Kecuali proyek yang dijadwalkan sama dengan proyek
yang sebelumnya, perkiraan sebelumny merupakan dasar yang tidak pasti untuk
penjadwalan proyek yang baru. Perkiraan jadwal selanjutnya bertambah rumit
dengan adanya faktabahwa proyek yang berbeda mungkin menggunakan metode
perancangan dan bahasa implementasi yang berbeda pula.
1. Manfaat Penjadwalan
Proyek
Secara umum penjadwalan mempunyai
manfaat – manfaat seperti berikut.
·
Memberikan pedoman terhadap unit pekerjaan / kegiatan mengenai batas –
batas waktu untuk mulai dan akhir dari masing – masing tugas.
·
Memberikan sarana bagi manajemen untuk koordinasi secara sistematis dan
relistis dalam penentuan alokasi prioritas terhadap sumber daya dan waktu.
·
Memberikan saran untuk menilai kemajuan pekerjaan.
·
Menghindari pemakaian sumber daya yang berlebihan, dengan harapan proyek
dapat selesai sebelum waktu yang di tetapkan.
·
Memberikan kepastian waktu pelaksanaan pekerjaan.
·
Merupakan sarana penting dalam pengendaliaan proyek.
2. Kompleksitas
Penjadwalan Proyek
Kompleksitas penjadwalan proyek sangat
dipengaruhi oleh faktor – faktor berikut Sasaran dan tujuan proyek.
·
Keterkaitan dengan proyek lain agar terintegrasi dengan master schedule.
·
Dana yang di perlukan dan dana yang tersedia.
·
Waktu yang di perlukan, waktu yang tersedia, serta perkiraan waktu yang
hilang dan hari – hari libur.
·
Susunan dan jumlah kegiatan proyek serta keterkaitan di antaranya.
·
Kerja lembur dan pembagian shift kerja untuk mempercepat proyek.
·
Sumber daya yang di perlukan dan sumber daya yang tersedia.
·
Keahlian tenaga kerja dan kecepatan mengerjakan tugasnya masing-masing.
·
Makin besar skala proyek, semakin kompleks pengelolaan penjadwalan karena
dana yang di kelolah sangat besar, kebutuhan dan penyediaan sumber daya juga
besar, kegiatan yang di lakukan sangat beragam serta durasi proyek menjadi
sangat panjang.
Oleh karena itu, agar
penjadwalan dapat diimplementasikan, digunakan cara – cara atau metode teknis
yang sudah digunakan seperti metode penjadwalan proyek. Kemampuan scheduler
yang memadai dan bantuan software komputer untuk penjadwalan dapat membantu
memberikan hasil yang optimal.
3. GanttChart
Ganttchart adalah
suatu alat yang berguna untuk proyek-proyek dengan anggota tim dengan jumlah
yang sedikit. Gantt chart secara luas dikenal sebagai alat fundamental dan
mudah diterapkan oleh para manajer proyek untuk memungkinkan seseorang melihat
dengan mudah waktu dimulai dan selesainya tugas-tugas dan sub- sub tugas dari
proyek.
Semakin banyak
tugas-tugas dalam proyek dan semkin penting urutan antara tugas-tugas maka
semakin besar kecenderungan dan keinginan untuk memodifikasi gantt chart. Gantt
chart membantu menjawab pertanyaan-pertanyaan “what if” saat melihat
kesempatan-kesempatan untuk membuat perubahan terlebih dahulu terhadap kebutuhan.
Keuntungan menggunakan
Gantt chart :
·
Sederhana, mudah dibuat dan dipahami, sehingga sangat bermanfaat sebagai
alat komunikasi dalam penyelenggaraan proyek.
·
Dapat menggambarkan jadwal suatu kegiatan dan kenyataan kemajuan
sesungguhnya pada saat pelaporan
Kelemahan Gantt Chart :
·
Tidak menunjukkan secarahubungan antara satu kegiatan dengan kegiatan yang
lain secara spesifik.
·
Sulit mengadakan penyesuaian atau perbaikan bila diperlukan, karena harus
membuat diagram baru.
4. PERT/CPM
PERT dapat mengidentifikasi sebuah tugas atau sekumpulan tugas yang menggambarkan suatu aliran penting yang ditetapkan bagi keberhasilan proyek. Bentuk dari bagan ini disebut Precedence Network (jaringan yang diutamakan). Setiap kotak menujukkan sebuah kegiatan. Pada setiap kotak ditulis nama kegiatan dan waktu yang diperlukan. Bagan PERT dan jalur kritis adalah jumlah jalur, atau serangkaian kegiatan yang dapat ditelusuri pada PERT sederhana di atas, dengan mengikuti petunjuk garis panah. Lamanya waktu yang dibutuhkan untuk menelusuri setiap jalur dapat dijumlahkan dengan menambahkan lamanya waktu dari jalur masing-masing kegiatan. Secara fundamental PERT hampir sama dengan Critical Path Method (Metode Jalur Kritis) yang lebih dikenal dengan CPM. Jalur kritis dalam suatu proyek adalah jalur yang memerlukan waktu paling lama untuk menyelesaikan proyek. Jadi, jalur kritis tidak pernah memiliki suatu slack (kekenduran/kelonggaran). Jika terjadi keterlambatan di sepanjang jalur kritis, maka keseluruhan proyek akan terlambat juga.
PERT dapat mengidentifikasi sebuah tugas atau sekumpulan tugas yang menggambarkan suatu aliran penting yang ditetapkan bagi keberhasilan proyek. Bentuk dari bagan ini disebut Precedence Network (jaringan yang diutamakan). Setiap kotak menujukkan sebuah kegiatan. Pada setiap kotak ditulis nama kegiatan dan waktu yang diperlukan. Bagan PERT dan jalur kritis adalah jumlah jalur, atau serangkaian kegiatan yang dapat ditelusuri pada PERT sederhana di atas, dengan mengikuti petunjuk garis panah. Lamanya waktu yang dibutuhkan untuk menelusuri setiap jalur dapat dijumlahkan dengan menambahkan lamanya waktu dari jalur masing-masing kegiatan. Secara fundamental PERT hampir sama dengan Critical Path Method (Metode Jalur Kritis) yang lebih dikenal dengan CPM. Jalur kritis dalam suatu proyek adalah jalur yang memerlukan waktu paling lama untuk menyelesaikan proyek. Jadi, jalur kritis tidak pernah memiliki suatu slack (kekenduran/kelonggaran). Jika terjadi keterlambatan di sepanjang jalur kritis, maka keseluruhan proyek akan terlambat juga.
D. Manajemen Resiko
Resiko merupakan probabilitas suatu
keadaan yang tidak diinginkan akan benar-benar terjadi. Bahkan resiko dapat
mengancam proyek perangkat lunak yang dikembangkan. Kategori resiko dapat
dikategorikan sebagai berikut:
1. Resiko proyek. Resiko yang
mempengaruhi jadwal atau sumberdya proyek.
2. Resiko produk. Resiko yang
mempengaruhi kualitas atau kinerja perangkat lunak yang dikembangkan.
3. Resiko bisnis. Resiko yang
mempengaruhi organisasi yang sedang mengembangkan atau mengadakan perangkat
lunak tersebut.
Proses manajemen resiko mencakup
beberapa tahap yaitu :
1. Identifikasi
resiko. Resiko proyek, roduk, dan bisinis yang mungkin terjadi diidentifikasi.
2. Analisis resiko. Kemungkinan dan
konsekuensi resiko-resiko ini dinilai.
3. Perencanaan resiko. Dibuat rencana
untuk menangani resiko apakah dengan menghindari atau meminimasi efeknya pada
proyek.
4. Monitor resiko. Resiko dinilai
secara konstan dan rencana untuk meringankan resiko derevisi seiring
bertambahnya informasi mengenai resiko tersebut.