01
Oct
07

Faktor-Faktor Penyebab Kegagalan Proyek Perangkat Lunak

Hampir semua proyek perangkat lunak (PL) dapat dikatakan mengalami kegagalan, walaupun hanya di bagian tertentu saja. Hal ini dikarenakan, hanya sedikit saja proyek yang dapat memenuhi semua target yang ditetapkan baik dari sisi harga, jadwal waktu penyelesaian, kualitas maupun kebutuhan yang diinginkan pengguna (user).        

Hanya saja yang masih menyisakan pertanyaan, mengapa kebanyakan  proyek yang gagal tidak pernah dikaji lebih lanjut, bahkan oleh lembaga yang mengalaminya sendiri ? Seandainya hal tersebut dilakukan mungkin akan dianggap sebagai suatu petualangan yang tidak akan membuahkan hasil (pemborosan), sehingga sedikit yang mau menginvestasikan waktu dan uangnya untuk mengumpulkan data dan menganalisanya. Bahkan data yang telah berhasil dikumpulkannya mungkin juga hanya berhasil disusun saja, kemudian disembunyikan untuk melindungi karir dan reputasi lembaga tersebut. Walhasil pemilik informasi tentang kegagalan-kegagalan proyek sering kali berat untuk mempublikasikannya walau untuk tujuan tertentu (yang baik).       

Sekali lagi, yang dimaksud dengan kegagalan disini adalah proyek perangkat lunak yang mengalami pembengkakan harga, penyelesaiannya molor atau kualitasnya bermasalah (challenged project) maupun yang mengalami pembatalan secara tiba-tiba (failed project).  Dan uraian berikut ini akan menjelaskan beberapa penyebab kegagalan yang sering terjadi dalam pengembangan proyek perangkat lunak. 

 1.  Poor User Input

 Masukan penting yang diperlukan untuk membangun perangkat lunak (PL) adalah bagaimana sistem yang dibuat tersebut akan dipakai di lapangan. Sedangkan yang berkompeten memberikan masukan dalam hal ini adalah klien (user) itu sendiri. Hanya saja yang sering terjadi , bahwa user kurang terbuka dalam menyatakan kebutuhannya, padahal hal itu sangat berdampak pada pekerjaan software developer. Akibatnya, pihak developer harus bekerja keras untuk memahami apa saja yang menjadi bisnis user, sehingga bisa memprediksi fasilitas apa saja yang diperlukan. Hal tersebut sering berkelanjutan hingga proses development selesai. 

  2.  Stakeholder Conflichts

 Stakeholder bekerja di bawah ilusi bahwa semua orang harus mendapatkan apa yang mereka inginkan. Akibatnya sejumlah alternatif yang berbeda dipersiapkan untuk mengakomodasi semua permintaan yang mungkin timbul. Perbedaan tersebut selanjutnya diekspos oleh developer dan mengakibatkan sistem menjadi ambigu. Konflik dalam stakeholder ini bisa menjadi biang utama kegagalan sebuah proyek, karena pihak developer tidak dapat memahami apa yang sesungguhnya diinginkan oleh stakeholder.  

3.  Vague Requirement

Perlu bekerja keras untuk mempelajari apa yang akan terjadi ketika sebuah proyek mulai dikerjakan pada saat kebutuhan yang diinginkan belum jelas. Bisa jadi untuk setiap step yang diambil kemudian perlu mundur tiga langkah ke belakang. Biaya proyek dan kualitas hasil yang berubah cepat bisa lepas dari kontrol, sehingga perusahaan bisa dipersalahkan bahkan bisa kehilangan kontrak untuk menyelesaikan proyek tersebut.Seperti yang sering terjadi pada sejumlah proyek gagal, bahwa lingkup permasalahan yang tidak cukup sempit tidak bisa memberi peluang yang masuk akal untuk sukses. Oleh karenanya perlu memastikan kebutuhan yang diinginkan user sebelum pekerjaan tersebut dimulai. Kendati demikian, kenyataannya perkembangan kebutuhan masih saja terjadi. Permasalahan ini bisa diatasi bila arsitektur dan prosesnya dibuat mampu mengakomodasi perubahan atau setidaknya dibuat ketentuan jelas bagaimana dan kapan requirement bisa ditambahkan, dilepas dan diimplementasikan, termasuk siapa yang akan menanggung biaya perubahan tersebut. 

4.  Poor Cost and Schedule Estimation  

Sebenarnya tidak fair menuduh setiap proyek PL pasti mengalami kegagalan, jika tidak mengaitkan antara biaya yang dikeluarkan dengan tujuan yang diinginkan. Sama seperti yang lain, setiap proyek PL juga memiliki jadwal dan biaya minimal yang dapat dicapai. Permasalahan bisa muncul kapan saja manakala orang  yang membuat jadwal tidak mendengarkan masukan orang yang biasa mengerjakannya. Misalnya untuk menyelesaikan sebuah program biasanya diperlukan 5 orang selama setahun, jelas berbeda seandainya hanya dikerjakan 4 orang selama 8 bulan, baik dilihat dari sisi desain maupun quality-check-nya.   

  5.  Skills That Do Not Match The Job

Pengerjaan proyek dengan teknologi tinggi memerlukan seorang manajer dengan kemampuan teknik yang hebat. Penanggung jawab proyek harus bisa menempatkan orang yang memahami dampak dari resiko teknik yang diambil. Namun demikian, seorang teknolog yang baik tidak perlu diseimbangkan dengan manager yang baik, karena kemampuan manajemen dan pemrograman tidak bisa dipertukarkan.Pada proyek yang lebih besar membutuhkan orang-orang yang cakap dalam planning, oversight, organization dan communication skill; sementara seorang teknolog yang brilian tidak perlu memiliki keahlian tersebut.Sebuah team yang beranggotakan orang-orang dengan gaji lebih besar namun memiliki kemampuan spesialisasi yang baik, akan lebih pantas dipilih daripada sebuah kelompok yang terdiri dari orang-orang dengan gaji rendah yang masih memerlukan berminggu-minggu bahkan berbulan-bulan untuk mempelajari sebuah proses atau teknologi baru sebelum mereka mulai mengerjakannya. 

6.  Hidden Cost of  Going “Lean and Mean”

Sejumlah kegagalan akan dipandang sebagai hasil langsung dari kinerja yang buruk, meskipun sesungguhnya kinerja yang buruk tidak menunjuk pada faktor yang signifikan dalam kegagalan pada kebanyakan proyek. Kegagalan sebuah proyek tidak bisa terlepas dari rencana tujuan yang ingin dicapai.  Hal lain yang juga pantas dicermati adanya perbedaan kecenderungan yang terjadi dalam sebuah organisasi. Pada level yang lebih rendah, seorang developer akan sibuk menghitung pengeluaran mereka yang mahal, hasil kerja pegawai, update software dan pekerjaan-pekerjaan lainnya, sedangkan pada tingkatan yang lebih tinggi hal tersebut akan dikerjakan oleh seorang spesialis yang memadai. Kebanyakan software developer akan menghabiskan setengah dari jam kerja mereka untuk berlama-lama dalam mengerjakan tugas yang diberikan dengan tanpa melakukan apapun terhadap pekerjaan tersebut. Orang-orang demikian ini sangat tidak berkemampuan dan menjadi isu produktifitas yang sangat serius. 

7.  Failure to Plan

Banyak orang bekerja keras, tapi tak seorangpun yang memiliki rencana, karena tidak ada yang merasa perlu membuat rencana. Seorang manajer proyek sering tidak membuat rencana, karena banyak rencana yang diserahkan bersamaan dengan berlalunya waktu.  Mereka mengira waktunya akan habis untuk melakukan hal-hal seperti planning, design, requirement dan inspection.   Kebanyakan dari mereka berpendapat bahwa hal-hal tersebut bisa dilakukan bersamaan dengan pekerjaan sesungguhnya, seperti pada saat coding dan testing. Pandangan ini umumnya datang dari kalangan programmer yang mengisukan bahwa hal tersebut dapat dilakukan ketika perangkat lunak diimplementasikan, padahal jelas ada perbedaan antara speed dan progress. Kita perlu memberi penghargaan pada orang-orang yang tidak menganut pandangan itu sehingga terlepas dari misi bunuh diri tersebut. 

 8.  Communication Breakdown

Sejumlah problema yang timbul pada proyek berskala besar biasanya jika orang yang mengerjakannya berasal dari bagian yang berbeda. Dalam banyak kasus proyek yang bermasalah, tidak ada seorang pun yang memiliki pandangan yang menyeluruh pada proyek tersebut, khususnya bila proyeknya berskala besar. Untuk itu perlu kiranya menginvestasikan waktu tambahan secara periodik agar semua orang di setiap posisi bersedia mempelajari gambaran besar proyek tersebut. Hal ini sejalan dengan sementara orang yang berpendapat bahwa seorang yang mengerjakan kepingan-kepingan kecil sebuah puzzle perlu mengetahui bagaimana sebuah keping bisa masuk ke dalam arsitektur gambar keseluruhan.   

9.  Poor Architecture

 Desain perangkat lunak sebaiknya dapat dikonfigurasi ulang untuk mendukung sebuah fungsi baru. Sebuah arsitektur PL seharusnya bisa mengikuti organisasi dan misi yang berubah, setidaknya harus memperhitungkan keterbatasan jangka panjang, tingkat kesulitan dan harganya. Arsitektur PL harus dipandang seperti bangunan rumah, dimana penambahan pipa dan kabel  harus bisa dilakukan untuk fasilitas yang belum terpikirkan sebelumnya. Begitupun ketika sebuah PL mengalami perubahan kebutuhan atau bisnis yang tidak diantisipasi sebelumnya, harus dapat ditambah atau dimodifikasi tanpa harus membuat PL yang baru. 

10    Late Failure Warning Signals

Lamanya waktu penyelesaian dan besarnya biaya pembuatan PL sangat dipengaruhi oleh  sinyalemen orang yang mana kita takut mengatakan “tidak” kepadanya. Kedengarannya hal ini tidak baik secara politik dikarenakan  mengatakan atau menunjukkan perkiraan yang jauh dari yang dapat dijalankan. Memang kenyataannya tak seorangpun bisa mengetahui bencana yang mendekat karena sering kali tak terlihat gejala awalnya. Dalam dunia nyata, sama seperti orang yang levelnya lebih rendah dapat meyakinkan manajer level atasnya bahwa proyek tersebut sesungguhnya tidak dapat dikerjakan sedemikian rupa hingga jatuh kepadanya.  


0 Responses to “Faktor-Faktor Penyebab Kegagalan Proyek Perangkat Lunak”



  1. Leave a Comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: