Manajemen Resiko Software Engineering

advertisement
“Manajemen Resiko Software Engineering”
Tanti Kristanti
“Manajemen Resiko Software Engineering”
Tanti Kristanti
e-mail: [email protected]
Abstraksi
Kesuksesan pengembangan perangkat lunak bukan hanya didasarkan pada
metoda dan tool yang digunakan, namun ternyata perlu adanya manajemen resiko
dalam pengembangannya. Manajemen resiko penting untuk industri perangkat
lunak guna mengurangi faktor-faktor yang mengejutkan karena ketidakpastian
mengenai apa yang akan terjadi pada masa mendatang. Diharapkan dengan
mengaplikasikan manajemen resiko terstruktur, dapat mewaspadai dan mengambil
aksi untuk meminimasi akibat dari potensi masalah. Resiko tidak hanya
diidentifikasi
secara sederhana namun
perlu
dokumentasi
resiko
guna
memudahkan komunikasi pada komunitas project stakeholder selama proyek
berjalan.
Para pengembang perangkat lunak selama ini merasa telah mengetahui
banyak hal mengenai apa yang harus dikerjakannya terkait dengan perangkat
lunak, mengetahui benar siapa user yang menggunakan produk atau layanan yang
disediakannya, mengetahui apa yang diperlukan oleh user, dan tidak pernah
menyadari adanya hal-hal tak terduga yang mungkin terjadi seperti turn over
pegawai, atau masalah teknis lain yang tiba-tiba muncul. Manajemen resiko dapat
mengatasi hal-hal yang tidak terduga yang akan mengakibatkan kegagalan proyek
pengembangan perangkat lunak.
Keywords : manajemen resiko, rekayasa perangkat lunak
1. Pendahuluan
Terdapat permasalahan dalam pengembangan software dalam kurun waktu
20 tahun terakhir ini, dimana biaya pengembangan software telah melampaui
biaya pengembangan hardware. Lebih dari 90% biaya sistem berbasis komputer
terkait dengan permasalahan software termasuk biaya pengembangan dan
perawatan (maintenance).
1
“Manajemen Resiko Software Engineering”
Tanti Kristanti
Telah diakui bahwa software memberikan manfaat ekonomis dan fungsional
bagi perusahaan, namun pengembangannya sering dianggap sebagai usaha dengan
resiko tinggi. Adanya persepsi bahwa keterlambatan pengembangan software
seringkali dikaitkan dengan masalah teknologi (seperti kompleksnya algoritma)
namun hal tersebut telah dibantah dengan bukti bahwa 45% dari keterlambatan
proyek dikarenakan permasalahan organisasi yang sebenarnya dapat dikontrol
manajemen.
Dari sudut pandang bisnis, kriteria kesuksesan pengembangan software
diukur melalui Return on Investment (ROI), time to market serta customer
satisfaction. Sedangkan dari sudut pandang teknologi, kriteria kesuksesan diukur
dari pemenuhan functional requirement, product usability dan future support.
Penelitian yang dilakukan US General Accounting Office menunjukkan bahwa
pengembangan software dan manajemen resiko dengan kriteria kesuksesan (dari
sudut pandang bisnis dan teknologi) ternyata tidak memberikan hasil yang
mengesankan. Dari survey, diperoleh informasi bahwa dari sejumlah vendor
penyuplai software untuk US Government, 50.4% mengindikasikan adanya cost
overrun dan 62% mengalami schedule overrun saat mengembangkan sistem.
Penelitian serupa dilakukan di United Kingdom yang melibatkan 60 perusahaan
dengan 200 proyek software mengindikasi adanya 55% cost overrun dan 66%
schedule overrun. (Karolak, 1996) 6)
Terdapat banyak permasalahan seputar software management yang dapat
mengakibatkan late deliveries, budget overages serta adanya error/kesalahan dan
performansi teknis yang tidak sesuai dengan harapan. Permasalahan-permasalahan
tersebut dapat
dilihat dari sudut pandang industri (industrial viewpoint) dan
praktisi (practitioner viewpoint) yang terlibat didalamnya. Berikut ini uraian
masalah-masalah utama yang sering terjadi :
1. Dari sudut pandang industri (industrial viewpoint)
a. Persepsi bahwa produksi software bukanlah usaha pengembangan yang
besar.
Sebagaimana telah disebutkan pada uraian sebelumnya bahwa 90% biaya
sistem komputer berasal dari software. Pada umumnya perusahaan
pengembang terutama pengembang software yang menyertakan atau
2
“Manajemen Resiko Software Engineering”
Tanti Kristanti
menggabungkan produknya dalam hardware, hanya menilai biaya proyek
dari sisi hardware yang dihasilkannya saja, tanpa memperhatikan adanya
biaya software. Hal ini terjadi karena Work Breakdown Structure (WBS)
tidak diorganisasikan untuk mengidentifikasi pengembangan software
sebagai item yang terpisah.
b. Meskipun telah dirasakan bahwa disiplin Software Engineering (SE) telah
memberikan banyak manfaat (semenjak dicetuskan tahun 1968), namun
masih terdapat persepsi bahwa software merupakan usaha keras yang
kreatif, yang tidak dapat direkayasa (engineer) seperti disiplin ilmu
lainnya.
c. Persepsi bahwa meskipun disadari pengembangan software memiliki
resiko, namun kita tidak dapat melakukan apapun untuk mengontrol resiko
tersebut. Sejarah menunjukkan bahwa umumnya pengembang software
selalu mengalami keterlambatan jadwal, over budget dan memiliki
performansi teknis yang buruk.
2. Dari sudut pandang praktisi (practitioner viewpoint)
a. Kurangnya pemahaman/edukasi mengenai apa yang terlibat dalam
manajemen software.
Konsep manajemen pengembangan software beserta resikonya tidak
diberikan dalam sistem pendidikan kita di universitas-universitas dan
bahkan jarang diadakan dalam seminar atau
manajemen hanya ditemui
pada program
pelatihan.
bisnis
Konsep
yang biasanya
mengemukakan konsep resiko yang berkaitan dengan investasi.
b. Kurangnya disiplin ilmu untuk mengimplementasikan teknik manajemen
yang baik.
Meskipun seseorang memiliki ilmu mengenai manajemen software dan
teknik manajemen resiko yang baik, namun tetap memerlukan disiplin
ilmu
lain
untuk
mengidentifikasi,
mengkalkulasi,
menentukan,
merencanakan, mengumpulkan serta melaporkan resiko software.
c. Kurangnya tool untuk melakukan manajemen resiko software
3
“Manajemen Resiko Software Engineering”
Tanti Kristanti
Meskipun telah banya tool manajemen proyek untuk software, namun
tidak mudah mendapatkan tool untuk manajemen resiko software.
d. Adanya pandangan sempit mengenai manajemen resiko software serta
kegagalan mengintegrasikan manajemen software yang mengandung
resiko.
Manajemen resiko software harus dilihat secara keseluruhan melalui
semua tahapan Siklus Hidup
Pengembangan
Sistem
(Software
Development Life Cycle).
Terdapat 2 perspektif dari para software engineer terhadap pengembangan
perangkat lunak :
1. Jika sudah merencanakan suatu proyek perangkat lunak, diasumsikan bahwa
semua telah berjalan sesuai dengan rencana.
2. Pengembangan perangkat lunak yang alamiah berarti bahwa tidak pernah
dapat memprediksi secara akurat apa yang akan terjadi, jadi untuk apa
diperlukan perencanaan ?
Kedua perspektif tersebut dapat mengarah pada adanya kejadian-kejadian di luar
dugaan yang dapat membawa proyek keluar dari jalur.
Manajemen resiko menjadi penting untuk industri perangkat lunak untuk
mengurangi surprise factor. Karena ketidakpastian mengenai apa yang akan
terjadi pada masa mendatang, diharapkan dengan mengaplikasikan manajemen
resiko terstruktur, dapat mewaspadai dan mengambil aksi untuk meminimasi
akibat dari potensi masalah, karena resiko manajemen berarti berkaitan dengan
perhatian terhadap sesuatu sebelum menjadi krisis.
Gejala suatu perusahaan yang tidak menerapkan manajemen resiko secara
efektif adalah adanya ketidakstabilan proyek yang berkesinambungan, jadwal
yang selalu meleset karena surprise factor yang terulang, operasi yang selalu
dalam kondisi high-stress, krisis peran manajemen. Resiko manajemen
meningkatkan kesuksesan penyelesaian proyek, dan mengurangi konsekuensi
potensi negatif dari resiko-resiko yang tidak dapat dihindari.
4
“Manajemen Resiko Software Engineering”
Tanti Kristanti
2. Pengertian Resiko
1. Resiko dapat didefinisikan sebagai “Kemungkinan menderita kerugian atau
kehilangan; bahaya“. [www.baz.com] 1)
Setiap orang memiliki kewaspadaan terhadap potensi bahaya yang akan
muncul bahkan dalam aktivitas sederhana sehari-hari, resiko akan membentuk
behavior tiap individu. Setiap orang sebenarnya terbiasa mengatur resiko
kehidupannya masing-masing.
2. Resiko dapat didefinisikan sebagai “Potensi bahaya masa mendatang yang
dapat muncul sebagai akibat aksi saat ini“. [www.wikipedia.org] 2)
3. Resiko adalah “masalah yang dapat menyebabkan kerugian atau mengancam
proyek , namun hal tersebut belum terjadi, dan kita ingin menjaga supaya hal
tersebut tidak terjadi”. [www.processimpact.com] 3)
Potensi masalah dapat memberikan dampak yang kurang baik terhadap
biaya, jadwal, atau kesuksesan teknis suatu proyek, kualitas dari produk perangkat
lunak atau moral tim proyek. Manajemen resiko merupakan proses untuk
mengindentifikasi, memberikan arah, dan mengeliminasi potensi masalah sebelum
dapat merusak proyek.
Perlu adanya pembedaan antara resiko sebagai potensi masalah dengan
masalah yang dihadapi saat ini pada suatu proyek, karena kedua hal ini
memerlukan pendekatan yang berbeda. Sebagai contoh, kekurangan pegawai
karena tidak mampu mempekerjakan pegawai yang memiliki kemampuan teknis
merupakan masalah saat ini, tapi ancaman bahwa orang-orang teknis puncak akan
direbut untuk dipekerjakan oleh kompetitor kita merupakan resiko.
Masalah yang nyata memerlukan aksi korektif, sedangkan resiko dapat
dihadapi dengan beberapa pendekatan yang berbeda. Resiko dapat dihindari
sepenuhnya dengan merubah pendekatan proyek atau bahkan membatalkan
proyek, atau dapat juga dengan memilih untuk menyerap resiko tersebut dan tidak
melakukan aksi khusus apapun untuk menghindari atau meminimasinya. Namun,
bagaimanapun
juga,
harus
dipikirkan
aksi
tertentu
untuk
meminimasi
kecenderungan resiko berubah menjadi masalah, atau mengurangi dampak negatif
dari masalah tersebut pada proyek.
5
“Manajemen Resiko Software Engineering”
Tanti Kristanti
3. Manajemen Resiko
Manajemen Resiko adalah “proses yang digunakan untuk meminimasi atau
menghilangkan resiko sebelum membahayakan produktivitas proyek perangkat
lunak”. Dengan hanya 28% proyek perangkat lunak yang dapat selesai tepat
waktu dan sesuai budget, resiko dan manajemen resiko memainkan peran penting
dalam pengembangan perangkat lunak.
Terdapat dua cara para software engineer menangani resiko, yaitu software
engineer yang reaktif selalu memperbaiki masalah saat masalah tersebut muncul,
dan software engineer proaktif yang selalu memikirkan kemungkinan resiko
yang dapat terjadi pada suatu proyek sebelum resiko-resiko tersebut muncul.
Terdapat beberapa tipe resiko yang dapat muncul selama proyek
pengembangan perangkat lunak seperti yang dapat dilihat pada tabel 1, yaitu :
Tabel 1 Tipe-tipe Resiko
Tipe Resiko
Keterangan
Ancaman umum pada semua proyek. Sebagai contoh :
Generic Risk
perubahan
requirement,
kehilangan
anggota
tim,
kehilangan dana
Product-Specific
Risk
Resiko tingkat tinggi berhubungan dengan tipe produk
yang dikembangkan. Sebagai contoh : ketersediaan
sumber daya pengujian
Project Risk
Mempengaruhi jadwal proyek atau sumber daya
Product Risk
Mempengaruhi kualitas atau performansi perangkat
lunak
Business Risk
Mempengaruhi kelangsungan hidup perangkat lunak
Selain tipe-tipe resiko di atas, terdapat juga resiko khusus berkaitan dengan
anggota tim, konsumen, tool, teknologi, estimasi waktu, serta ukuran tim. Banyak
dari resiko ini dapat diminimasi dengan menggunakan metodologi pengembangan
pada proyek. Terdapat banyak tool yang dapat digunakan untuk menganalisa
resiko yang akan muncul pada proyek, dapat dipilih tool yang terbaik untuk dapat
meminimasi atau mengeliminasi resiko.
6
“Manajemen Resiko Software Engineering”
Tanti Kristanti
4. Resiko dalam Manajemen Proyek
Tidak seperti menghadapi resiko dalam kehidupan sehari-hari, bahaya dalam
software engineering (rekayasa perang lunak) haruslah dipelajari dengan
pendekatan tertentu dan melibatkan penelitian dari pengalaman sejumlah manajer
proyek yang berhasil atau melalui para penulis dan peneliti. Salah satu penulis
mengenai resiko ini adalah Dr.Barry W. Boehm (1989)
4)
, dalam bukunya
"Software Risk Management: Principles and Practices", beliau memberikan daftar
10 macam resiko yang terbesar, yaitu :
1. Personnel Shortfall
2. Penjadwalan dan budget yang tidak realistik
3. Membangun fungsi dan properti yang salah
4. Membangun user interface yang salah
5. Gold-plating
6. Melanjutkan aliran perubahan requirement
7. Shortfalls pada furnished component eksternal
8. Shortfalls pada performed task eksternal
9. Real-time performance shortfall
10. Straining computer-science capabilities
5. Bagaimana Mengatur (Manage)
Pada artikel yang sama, Dr. Boehm (1989)
4)
menjelaskan risk management
terdiri atas aktivitas-aktivitas berikut ini :
1. Risk Assessment (menggambarkan resiko apa yang terjadi dan harus fokus
terhadap yang mana)
a. Membuat daftar semua potensi bahaya yang akan mempengaruhi proyek.
b. Memperkirakan probabilitas kejadian dan potensi kehilangan dari tiap item
yang didaftar.
c. Mengurutkan item-item tersebut dari yang paling berbahaya sampai
kurang berbahaya.
2. Risk Control (berbuat sesuatu terhadap item-item tersebut)
a. Menggunakan teknik dan strategi untuk mengurangi resiko tertinggi.
7
“Manajemen Resiko Software Engineering”
Tanti Kristanti
b. Mengimplementasikan strategi untuk menetapkan faktor resiko tertinggi.
c. Mengawasi efektivitas strategi dan level perubahan resiko pada proyek.
6. Mengatur Resiko Secara Formal
Proses manajemen resiko formal menyediakan sejumlah manfaat bagi tim
proyek.
Pertama-tama,
dapat
memberikan
mekanisme
terstruktur
untuk
menyediakan visibilitas terhadap ancaman bagi kesuksesan proyek. Dengan
memperhatikan dampak potensial pada setiap item resiko, dapat memfokuskan
pada pengawasan terhadap resiko yang paling berat terlebih dahulu. Pendekatan
tim memungkinkan beragam stakeholder proyek menunjukkan resiko mereka
secara kolaboratif, dan melakukan mitigasi resiko dengan menentukan tanggung
jawab pada individu yang paling tepat. Risk assessment dapat dikombinasikan
dengan estimasi proyek sehingga dapat diukur kemungkinan penyimpangan
jadwal jika resiko tertentu muncul pada suatu proyek. Tanpa pendekatan yang
formal, tidak dapat dipastikan apakah aksi manajemen resiko diberlakukan pada
waktu yang tepat, sesuai rencana dan efektif. Tujuan akhir dari aktivitas ini adalah
membantu menghindari kejutan yang dapat dihindari, sehingga meningkatkan
kemungkinan pemenuhan komitmen awal.
Organisasi pengembangan mendapatkan manfaat dari manajemen resiko,
dimana dengan saling berbagi pengetahuan mengenai apa yang dapat dan tidak
dapat dilakukan untuk mengontrol resiko pada sejumlah proyek membantu proyek
untuk dapat menghindari pengulangan kesalahan yang sama. Anggota organisasi
dapat menyatukan pengalaman mereka dan mengidentifikasi peluang untuk
mengontrol resiko yang paling umum, melalui edukasi, process improvement, dan
aplikasi untuk rekayasa perangkat lunak dan teknik manajemen yang telah
diperbaiki. Setiap waktu, dapat dibuat daftar item resiko dan strategi mitigasi dari
berbagai proyek yang dapat membantu proyek di masa mendatang melihat adanya
bahaya yang tersembunyi.
7. Resiko dan Ketidakpastian
Resiko seringkali dihubungkan dengan ketidakpastian mengenai hal-hal
yang seolah-olah dianggap di bawah kendali, padahal akan berbahaya.
8
“Manajemen Resiko Software Engineering”
Tanti Kristanti
Ketidakpastian adalah karakteristik normal dan tidak dapat dihindari dari hampir
semua proyek perangkat lunak, ketidakpastian dapat dihasilkan dari kompleksitas
produk perangkat lunak yang muncul secara berkelanjutan, dan ketergesaan untuk
terjun pada source code editor. Kondisi teknologi dan bisnis yang berubah secara
cepat, mengakibatkan ketidakpastian akan selalu muncul. Kurangnya pengetahuan
akan teknik pengembangan perangkat lunak dan tool yang digunakan juga
mengakibatkan ketidakpastian yang semakin bertambah.
Mengontrol resiko dapat berarti mengurangi ketidakpastian. Tentu saja,
mengurangi
ketidakpastian
akan
mengakibatkan
biaya.
Perlu
adanya
penyeimbangan antara sejumlah biaya dengan biaya potensial yang akan didapat
jika resiko datang. Dengan mengurangi terlalu banyak ketidakpastiaan bukan
berarti akan mengakibatkan cost-effective. Sebagai contoh, jika suatu perusahaan
khawatir dengan kemampuan subkontraktor untuk dapat mengantarkan produk
yang dipesan tepat waktu, perusahaan tersebut dapat mengambil tindakan untuk
bekerjasama dengan banyak subkontraktor sehingga meningkatkan atau
setidaknya terdapat satu subkontraktor yang dapat mengirim tepat waktu. Namun
tindakan itu akan menjadi terlalu mahal, terutama jika masalah tersebut belum
tentu terjadi. Apakah hal ini bernilai ? Hal ini tergantung pada kebutuhan karena
setiap situasi memerlukan keputusan yang berbeda.
Manajemen resiko proaktif bukan berarti menghindari proyek yang memiliki
resiko tingkat tinggi, karena manajemen resiko bertujuan membuka mata para
pengembang sehingga dapat mengetahui apa yang akan berakibat fatal, dan
melakukan yang terbaik untuk memastikan faktor tersebut tidak akan mencegah
kesuksesan proyek.
8. Tipe Resiko Perangkat Lunak
Berikut ini adalah beberapa kategori resiko dan daftar resiko yang dapat
mengancam proyek [McConnell, 1996]7). Jika ada diantaranya pernah terjadi pada
proyek, buatlah sebagai faktor resiko utama sehingga tidak akan kembali terjadi
pada proyek di masa mendatang, berdasarkan pengalaman para software engineer
dan praktisi manajemen, resiko dapat dikontrol.
9
“Manajemen Resiko Software Engineering”
Tanti Kristanti
Capers Jones mengidentifikasi 5 faktor resiko yang mengancam proyek pada
sektor aplikasi yang berbeda [Jones, 1994]
5)
. Tabel 2 memberikan ilustrasi
tersebut, disertai juga dengan perkiraan persentase proyek yang diaplikasikan
pada Management Information Systems (MIS) dan sektor software komersial.
Tabel 2. Faktor Resiko Umum untuk Beragam Tipe Proyek
Sektor
Proyek
Persentase Proyek
dalam Resiko
Faktor Resiko
Memahami
secara
perlahan
kebutuhan user
MIS
Penekanan jadwal yang berlebihan
65%
Kualitas rendah
60%
Biaya membengkak
55%
Pengontrolan konfigurasi yang tidak
baik
Pendokumentasian user yang tidak
baik
Komersial
80%
50%
70%
User satisfaction yang rendah
55%
Time to market yang berlebihan
50%
Aksi-aksi kompetitif yang berbahaya 45%
Biaya litigasi
30%
9. Ketergantungan
Banyak resiko muncul karena external dependencies, jadi strategi mitigasi
dapat melibatkan rencana kontengensi untuk mendapatkan komponen yang
diperlukan dari sumber lain atau bekerja dengan sumber ketergantungan untuk
menjaga visibilitas yang baik ke dalam status dan mendeteksi masalah yang
membayangi. Berikut ini adalah jenis-jenis faktor resiko yang berkaitan dengan
ketergantungan :
1. Daftar atau informasi konsumen
2. Relasi subkontraktor internal dan eksternal
3. Ketergantungan inter komponen atau inter group
4. Kemampuan orang-orang terlatih dan berpengalaman
10
“Manajemen Resiko Software Engineering”
Tanti Kristanti
5. Guna ulang proyek untuk proyek berikutnya
10. Isu Requirement
Banyaknya
proyek
yang
menghadapi
ketidakpastian
requirement
(kebutuhan) produk, yang pada tahap awal pengembangan ditoleransi, namun jika
tidak dipecahkan selama proyek akan mengancam kesuksesan proyek. Jika tidak
melakukan kontrol pada faktor-faktor resiko, maka tidak mengherankan jika
pengembang akan mengembangkan produk yang salah atau mengembangkan
produk yang benar namun dengan kualitas yang buruk, dan hal-hal ini akan
mengakibatkan ketidakpuasan bagi konsumen. Oleh karena itu pengembang harus
memperhatikan bagaimana mendapatkan requirement yang jelas dan juga
mewaspadai beberapa faktor resiko berikut yaitu :
1. Ketidakjelasan visi produk
2. Kurangnya persetujuan/perjanjian terhadap requirement produk
3. Requirement yang tidak diprioritaskan
4. Market baru dengan kebutuhan yang tidak jelas
5. Aplikasi baru dengan ketidakjelasan requirement
6. Requirement yang selalu berubah
7. Requirement yang tidak efektif merubah proses manajemen
8. Analisis dampak perubahan requirement yang tidak memadai
11. Isu Manajemen
Meskipun banyak kekurangan manajemen yang dapat menghalangi
kesuksesan proyek, namun merencanakan manajemen resiko tidak dapat
mendaftarkan semua permasalahan, karena proyek manajer yang membuat
rencana manajemen resiko biasanya tidak akan mendaftarkan semua kelemahan
perusahaannya kepada publik meskipun resiko tersebut jelas-jelas diketahui oleh
para proyek manajer, hal seperti inilah yang akan membuat proyek mencapai
kesuksesan. Proses penelusuran proyek terdefinisi, dengan aturan dan tanggung
jawab yang jelas dapat memberi petunjuk terhadap faktor-faktor resiko berikut :
1. Identifikasi rencana dan tugas yang tidak memadai
2. Visibilitas status proyek aktual yang tidak memadai
11
“Manajemen Resiko Software Engineering”
Tanti Kristanti
3. Kepemilikan proyek dan pengambilan keputusan yang tidak jelas
4. Pembuatan komitmen yang tidak realistik, kadang kala untuk suatu alasan
yang tidak masuk akal
5. Ekspektasi manajer dan konsumen yang tidak realistik
6. Konflik antar staf
7. Komunikasi yang kurang
12. Kurangnya Pengetahuan
Perubahan teknologi software yang pesat, serta semakin berkurangnya staf
yang memiliki keahlian, akan membuat tim proyek tidak memiliki skill untuk
meraih kesuksesan. Untuk mengatasi hal ini, kuncinya adalah mengenali area
resiko secara dini sehingga dapat mengambil aksi-aksi preventif yang tepat seperti
melaksanakan pelatihan, menyewa konsultan dan merekrut orang-orang yang
berkompeten untuk tim proyek. Faktor-faktor berikut ini dapat terjadi dalam tim
proyek :
1. Pelatihan yang tidak memadai
2. Pemahaman yang kurang terhadap metoda, tool dan teknik
3. Pengalaman domain aplikasi yang tidak memadai
4. Adanya teknologi atau metoda pengembangan yang baru
5. Proses yang tidak efektif, tidak terdokumentasi secara baik atau lalai
dijalankan
13. Kategori Resiko Lainnya
Daftar area resiko potensial sangatlah banyak, namun permasalahan ini
harus tetap diketahui agar pengembang dapat mengantisipasi. Beberapa area yang
harus diperhatikan termasuk :
1. Tidak tersedianya perlengkapan dan fasilitas untuk mengembangkan sistem
dan melakukan perawatan.
2. Ketidakmampuan untuk memperoleh sumber daya dengan kemampuan kritis
3. Turnover personil-personil yang penting
4. Requirement performansi yang tidak terpenuhi
5. Permasalahan dengan bahasa dan internasionalisasi produk
12
“Manajemen Resiko Software Engineering”
Tanti Kristanti
6. Pendekatan teknis yang tidak dapat bekerja
14. Pendekatan Manjemen Resiko
Organisasi dapat memilih satu dari 5 pendekatan untuk mengatasi resiko
[McConnell, 1996]7). Manajemen krisis merupakan reaksi terhadap resiko yang
sebelumnya tidak teridentifikasi atau ter-manage yang muncul menjadi bahaya
yang jelas saat ini. Pendekatan yang lebih proaktif adalah dengan mengidentifikasi
resiko proyek dan merencanakan bagaimana merespon resiko tersebut ketika
muncul. Sangatlah baik untuk mengambil aksi konkret untuk mencegah resiko
yang teridentifikasi yang dapat menyebabkan permasalahan dan bukan hanya
sekedar memperbaiki produk dari kesalahan. Manajemen resiko yang utama
adalah untuk menghilangkan penyebab utama resiko yang akan mengancam
proyek organisasi. Manajemen resiko merupakan aplikasi tool dan prosedur yang
tepat untuk mengatasi resiko dengan batasan yang dapat diterima. Manajemen
resiko terdiri atas sejumlah komponen yaitu:
1. Risk assessment
Merupakan proses untuk menguji proyek dan mengidentifikasi area resiko
potensial. Identifikasi resiko dapat difasilitas dengan bantuan suatu daftar area
resiko umum untuk proyek software, atau dengan menguji isi database
organisasi yang berisi resiko serta strategi mitigasi yang teridentifikasi
sebelumnya (baik sukses maupun tidak). Analisis resiko melibatkan pengujian
bagaimana outcome proyek berubah dengan melakukan modifikasi variabel
input resiko.
2. Risk prioritization
Membantu proyek memfokuskan pada resiko yang paling berat dengan
memperkirakan risk exposure. Prioritas dapat dilakukan dengan cara
kuantitatif, dengan estimasi probabilitas (antara 0.1-1.0) dengan kegagalan
relatif pada skala 1 sampai 10. Menggabungkan beberapa faktor ini akan
menyediakan estimasi risk exposure bagi tiap risk item, yang dapat terjadi
pada kisaran 0.1 sampai 10. Semakin tinggi exposure, semakin agresif resiko
yang harus ditangani. Lebih mudah untuk mengestimasi probabilitas dan
dampaknya sebagai High, Medium atau Low. Dengan item tersebut,
13
“Manajemen Resiko Software Engineering”
Tanti Kristanti
setidaknya terdapat 1 dimensi resiko dengan rate High dan perlu diperhatikan
terlebih dahulu.
3. Risk avoidance
Merupakan salah satu cara untuk berhubungan dengan resiko, dimana resiko
dihindari dengan tidak melaksanakan proyek tertentu dan hanya melaksanakan
proyek yang pasti.
4. Risk control
Merupakan proses mengatur resiko untuk mencapai outcome yang
dikehendaki. Merencanakan manajemen resiko akan menghasilkan rencana
untuk berhubungan dengan setiap resiko yang signifikan, termasuk mitigasi
pendekatan, kepemilikan dan timeline. Resolusi resiko merupakan eksekusi
rencana yang berkaitan dengan tiap resiko. Dimana pada akhirnya, risk
monitoring akan membantu melacak perkembangan pemecahan tiap resiko.
Mengidentifikasi resiko proyek secara sederhana tidaklah cukup karena
resiko tersebut perlu didokumentasikan guna memudahkan komunikasi nature dan
status resiko pada komunitas project stakeholder selama proyek berjalan. Tabel 3
menunjukkan form untuk mendokumentasikan resiko. Daftar resiko dapat
disertakan sebagai bagian dokumentasi dari rencana proyek software atau menjadi
dokumen yang berdiri sendiri. Sebagai alternatif, form pada Tabel 4 dapat
digunakan untuk mendokumentasikan faktor resiko individual secara detail.
Saat mendokumentasikan statemen resiko, gunakanlah format conditionconsequence yang menyatakan situasi/kondisi resiko yang diperhatikan, diikuti
dengan setidaknya satu outcome yang kurang potensial (consequence) jika resiko
tersebut berubah menjadi masalah. Seringkali, orang-orang menyatakan resiko
sebagai condition (“konsumen tidak menyetujui requirement produk tertentu”)
atau consequence (“kita hanya dapat memuaskan satu atau sejumlah besar
konsumen”). Yang baik adalah menggabungkan struktur condition-consequence
(“Konsumen tidak menyetujui requirement produk tertentu, sehingga kita hanya
mampu untuk memuaskan satu atau sejumlah besar konsumen”).
14
“Manajemen Resiko Software Engineering”
Tanti Kristanti
Kolom P, L dan E pada Tabel 3 menyediakan tempat untuk menangkap
probabilitas materialisasi resiko menjadi masalah (P), kegagalan yang dapat
terjadi akibat resiko (L), dan semua risk exposure (P dikali L). Resiko dapat
diurutkan secara descending, sehingga resiko dengan prioritas utama berada pada
daftar yang teratas. Perhatikan semua daftar resiko dengan menggunakan
mekanisme prioritas resiko untuk mempelajari dimana harus memfokuskan
pengontrolan resiko. Tentukan tujuan (goal) untuk menentukan kapan setiap
resiko dikontrol secara baik. Untuk beberapa resiko, strategi mitigasi dapat
difokuskan pada pengurangan probabilitas, sementara pendekatan untuk daftar
resiko lain dapat mengurangi dampak tersebut.
Pada kolom berikutnya dalam form, dokumentasikan hasil observasi yang
dapat mendasari adanya indikator pertama bahwa suatu faktor resiko akan
menjadi masalah saat ini. Dengan memonitor indikator pertama ini, akan
memberikan peringatan awal bahwa pendekatan manajemen resiko yang lebih
agresif
diperlukan.
Kolom
Risk
Mitigation
Approches
diperuntukkan
mengidentifikasi aksi-aksi untuk menjaga agar resiko tetap terkendali.
Tabel 3. Risk Documentation Form [processimpact.com]
ID
Risk
P
L
E
Description
First
Risk
Indicator
Mitigation
Who
Due
Assign
each risk
mitigation to
an
individual.
State a
date by
which the
mitigation
approach
is to be
implemented.
Approach
List each major
risk facing the
project. Describe
each risk in the
form "condition
– consequence".
Example:
"Subcontractor’s
staff does not
have sufficient
technical
expertise, so
their work is
delayed for
training and
slowed by
*P
*L
*E
 For
each
risk,
describe
the
earliest
indicato
r or
trigger
conditio
n that
might
indicate
that the
risk is
turning
into a
problem
 For each
risk, state
one or
more
approache
s to
control,
avoid,
minimize,
or
otherwise
mitigate
the risk.
 Risk
mitigation
approache
s should
yield
15
“Manajemen Resiko Software Engineering”
Tanti Kristanti
ID
Risk
P
L
E
Description
First
Risk
Who
Indicator
Mitigation
Due
Approach
learning curve."
Tabel 4. Form Lain
[processimpact.com]
Risk ID: <sequence number>
.
untuk
demonstra
ble results,
so you can
measure
whether
the risk
exposure
is
changing.
Dokumentasi
Classification: <risk category,
e.g., from SEI taxonomy>
Individual
Risk
Item
Report Date: <date this risk
report was last updated>
Description: <Describe each risk in the form "condition – consequence".>
Probability: <What’s the
likelihood
of
this
risk
becoming a problem?>
Impact: <What’s the damage if
the risk does become a
problem?>
Risk Exposure: <Multiply
Probability times Loss to
estimate the risk exposure.>
First Indicator: <Describe the earliest indicator or trigger condition that might indicate that the
risk is turning into a problem.>
Mitigation Approaches: <State one or more approaches to control, avoid, minimize, or
otherwise mitigate the risk. Mitigation approaches may reduce the probability or the impact.>
Date Started: <State the date
the
mitigation
plan
implementation was begun.>
Date to Complete: <State a
date by which the mitigation
plan is to be implemented.>
Owner: <Assign each risk
mitigation action to an
individual for resolution.>
Current Status: <Describe the status and effectiveness of the risk mitigation actions as of the
date of this report.>
Contingency Plan: <Describe the actions that will be taken to deal with the situation if this risk
factor actually becomes a problem.>
Trigger for Contingency Plan: <State the conditions under which the contingency plan will
begin to be implemented.>
15. Kesimpulan
Berdasarkan pada pembahasan pada bagian sebelumnya, dapat ditarik
beberapa kesimpulan sebagai berikut :
16
“Manajemen Resiko Software Engineering”
Tanti Kristanti
1. Manajemen resiko menjadi penting untuk industri perangkat lunak untuk
mengurangi surprise factor.
2. Manajemen resiko merupakan proses untuk mengindentifikasi, memberikan
arah, dan mengeliminasi potensi masalah sebelum dapat merusak proyek.
3. Manajemen resiko proaktif bukan berarti menghindari proyek yang memiliki
resiko tingkat tinggi, karena manajemen resiko bertujuan membuka mata para
pengembang sehingga dapat mengetahui apa yang akan berakibat fatal, dan
melakukan yang terbaik untuk memastikan faktor tersebut tidak akan
mencegah kesuksesan proyek.
4. Mengidentifikasi resiko proyek secara sederhana tidaklah cukup karena resiko
tersebut perlu didokumentasikan guna memudahkan komunikasi diantara
komunitas project stakeholder selama proyek berjalan.
Daftar Pustaka
[1] http://www.baz.com, diakses pada 09 Maret 2007 pukul 09.52
[2] http://www.wikipedia.org, diakses pada 09 Maret 2007 pukul 09.52
[3] http://www.processimpact.com, diakses pada 09 Maret 2007 pukul 09.52
[4] Boehm, Barry W, Software Risk Management, Los Alamitos, Calif.: IEEE
Computer Society Press, 1989.
[5] Jones, Capers, Assessment and Control of Software Risks, Englewood Cliffs,
N.J.: PTR Prentice-Hall, 1994.
[6] Karolak, Dale Walter, Software Engineering Risk Management, USA :
Computer Society Press, 1996.
[7] McConnell, Steve, Rapid Development: Taming Wild Software Schedules,
Redmond, Wash.: Microsoft Press, 1996.
17
Download