Jurnal Basis Data, ICT Research Center UNAS Vol.4 No.1 Mei 2009
ISSN 1978-9483
PENINGKATAN KEBUTUHAN AKAN SOFTWARE QUALITY SEBAGAI FAKTOR PENDORONG PENERAPAN CMM-SW Firman Anindra, Ina Agustina Jurusan Sistem Informasi, Fakultas Teknologi Komunikasi dan Informatika, Universitas Nasional Jl. Sawo Manila, Pejaten Pasar Minggu No.61, Jakarta 12520 E-mail
[email protected] I. PENDAHULUAN Pada saat ini banyak bermunculan software house (pengembangan perangkat lunak) di Indonesia. Perkembangannya semakin meningkat seiring dengan adanya kebutuhan pengolahan data melalui Teknologi Informasi yang terdapat aplikasi di dalamnya. Pengembangan aplikasi melalui suatu proyek pengembangan telah mengalami beberapa fase perubahan. Berawal dari idealisme akademisi yang kemudian terus menyesuaikan dengan tuntutan pasar, maka proses pengembangan aplikasi perangkat lunak semakin beragam, menyesuaikan dengan proyek yang ada. Kebanyakan proyek pengembangan perangkat lunak yang dipesan memiliki tingkat kerumitan yang tinggi dibandingkan dengan perangkat lunak yang telah ada di pasaran. Untuk itu, setiap software house mau tidak mau harus menyeimbangan dua proses besar yaitu riset dan pengembangan, sehingga mereka tidak akan melanggar aturan/idealisme akademisi. Software house tanpa disadari telah berada pada posisi yang dapat dikatakan lebih dari sekedar software house sederhana. Dengan banyaknya proyek, tak heran bila karyawan yang bekerja pada sebuah software house akan bekerja secara simultan. Hal ini menjadikan adanya dinamika yang cukup berkembang secara cepat dalam proses hubungan antar karyawan. Dinamika yang terjadi dapat pula dikatakan sebagai cepatnya pertukaran –keluar/masuk – nya karyawan di suatu software house. Bila hal ini tidak ditangani dengan baik maka dapat berakibat fatal, yaitu terjadinya software crisis, seperti gagalnya fungsi-fungsi pada aplikasi, terlambatnya penyerahan hasil dan membengkaknya pengeluaran dari estimasi yang telah dibuat sebelumnya. Sistem yang tepat sangat dibutuhkan untuk memberikan jaminan kepada seluruh klien dan calon klien yang akan menggunakan jasa software house, bahwa proyek yang mereka berikan dapat diselesaikan sesuai dengan perjanjian yang dibuat, tepat aplikasi, tepat waktu dan tepat biaya.
II. LANDASAN TEORI Software , sebuah industri yang khas Dunia perangkat lunak memang tidak dapat disamakan dengan dunia industri lainnya. Meskipun hasil produksinya tidak dapat diabaikan begitu saja, karena memiliki nilai yang cukup besar pula dalam roda perindustrian secara umum. Tantangan yang dihadapi adalah standarisasi proses pengembangan perangkat lunak, karena di dalam proses ini terasa lebih mendekati pada dunia seni daripada sebuah pengetahuan ilmiah atau rekayasa (McConnell, 2001), maka dikenal pula istilah ”The Art of Computer Programming”. Perangkat lunak 66
Jurnal Basis Data, ICT Research Center UNAS Vol.4 No.1 Mei 2009
ISSN 1978-9483
dibangun dari ide dan konstruksi yang abstrak, tidak berasal dari obyek fisik sebagaimana pada industri lainnya, dan tidak mungkin pula menciptakan suatu produk perangkat lunak yang berkualitas tanpa menyelesaikan permasalahan yang ada. Tim pengembangan biasanya terdiri dari orang-orang yang kreatif dan sangat sulit untuk menyeragamka n atau menstandarkan aktifitas mereka. Setiap perangkat lunak biasanya memiliki error, dan ini tidak dapat ditolak. Maka hal inilah yang menjadi tantangan dalam pengembangan perangkat lunak yang memiliki kualitas yang baik. Dalam dunia pengembangan perangkat lunak yang juga menjadi masalah adalah bahwa programming mengalami pertumbuhan yang lambat, karena faktor manusia yang menghasilkan produk perangkat lunak memiliki keterbatasan. Hal ini juga menjadi pembeda yang jelas dengan dunia industri lainnya yang dapat memproduksi hasil produksinya secara besar-besaran. Maka perangkat lunak memiliki ciri khas yang berbeda dengan dunia industri lainnya. Hal ini tentunya membutuhkan penanganan yang khas pula agar hasil produksi yang dicapai dapat sesuai dengan tujuan yang telah ditetapkan oleh perusahaan.
Proses IDEAL Salah satu proses untuk mengatasi permasalahan diatas adalah dengan sebuah framework yang dikenal sebagai pendekatan IDEAL. Pendekatan IDEAL merupakan rekomendasi dari Software Engineering Institute (SEI) dalam peningkatan suatu pengembangan perangkat lunak. Pendekatan Ideal terdiri dari 5 fase : - inisiating - diagnosing - acting - establishing - learning Proses apraisal merupakan bagian yang terintegrasi dari fase diagnosing dalam model ideal ini. Proses diawali dengan proses inisiasi. Proses ini menjadi penting karena sangat menentukan semua proses sesudahnya. Sebelum proses ini selesai proses persetujuan (appraisal) tidak boleh dilakukan. Sebuah organisasi dapat disetujui untuk pertama kalinya atau bisa juga dilakukan persetujuan ulang terhadap proses yang dilakukannya sebelum melanjutkan pada proses sesudahnya. Pendekatan IDEAL mengasumsikan bahwa persetujuan akan diikuti dengan dokumentasi rekomendasi hasil persetujuan dan proses pengembangan. Secara garis besar proses perangkat lunak dibuat bersandarkan pada hasil persetujuan dan rekomenasi serta prioritas yang ada pada form hasil persetujuan yang berisikan hal-hal yang perlu dilakukan. Aktifitas inilah yang akan didokumentasikan pada sebuah rencana kegiatan dalam proses perbaikan aktifitas pengembangan perangkat lunak. Untuk melakukan sebuah proses pengembangan , masing-masing software house biasanya memformulasikan minimal requirement yang dibutuhkan untuk membuat suatu produk perangkat lunak. Misal salah satu contoh minimum requirement yang buat oleh software house sebagai berikut :
67
Jurnal Basis Data, ICT Research Center UNAS Vol.4 No.1 Mei 2009
ISSN 1978-9483
Gambar 2.1 Struktur Lingkungan Proses Maka jelaslah bahwa proses utama dari pengembangan perangkat lunak harus pula melakukan proses kontrol administrasi. Pembuatan infrastruktur, managemen konfigurasi, peningkatan kualitas audit, pelatihan karyawan dan lain sebagainya.
Standar kualitas Untuk menjaga kualitas hasil produksi suatu software house , saat ini dikenal berbagai standarisasi yang kesemuanya bertujuan sama yaitu mempertahankan mutu terbaiknya bagi setiap produk yang dihasilkan. Ada beberapa standar yang biasa digunakan seperti : ISO 9001 MSF (Microsoft Solutions Framewarok) CMM (Capability Maturity Model) dan SPICE (Software Process Improvement Capabilities and dEtermination) a. ISO 9001 Standar ini terkenal dan sudah biasa digunakan di dunia industri. Namun kenyataannya aplikasi yang menggunakan standar ISO 9001 ini masing jarang membawa hasil yang memuaskan, hal ini disebabkan terlalu formalnya requirement yang ada dan hanya merupakan pembuatan dokumentasi alur untuk proses manufaktur. Standar ini sesungguhnya telah memperbaiki ’status quo’ dari proses standarisasi yang telah ada. Perbaikannya pun telah berhasil memperbaiki beberapa point 68
Jurnal Basis Data, ICT Research Center UNAS Vol.4 No.1 Mei 2009
ISSN 1978-9483
substansial untuk perbaikan hasil produksi. ISO 9001 juga tidak terdapat requirement yang jelas tentang proses pengembangan perangkat lunak, karena pada mulanya di desain untuk aplikasi yang beragam, termasuk didalamnya pengembangan produk, sistem atau service. Terlalu fleksibel nya inilah yang menjadi sebab sulitnya pengimplementasian standar ISO 9001. b. Microsoft Solutions Framework (MSF) MSF cukup berguna organisasi yang sedang melakukan proses pengembangan perngakat lunak dengan pengelompokkan group, karena MSF terdiri dari kumpulan prosedur yang efektif dan telah di desain dengan baik untuk merencanakan, pengembangan, pengujian dan implementasi dari suatu produk perangkat lunak. Namun dalam perkembangannya , standar yang dihasilkan oleh Microsoft ini tidak dapat diterapkan pada semua jenis organisasi, karena MSF tidak menyediakan alat/perangkat atau penghubung antara departemen yang independen di dalam suatu organisasi/perusahaan yang besar. Dengan demikian MSF lebih tepat digunakan sebagai batu loncatan untuk maju pada standar yang lebih paripurna. Implementasi MSF pada perusahaan kecil atau sebuah departemen di dalam suatu perusahaan besar sepertinya menjadi menarik untuk dilakukan, namun sebagai kelanjutannya harus pula memperhatikan integrasi dengan stanadar yang lebih besar dan general. c. Capability Maturiy Model (CMM) CMM merupakan sebuah framework yang menggambarkan bagian-bagian kunci dari suatu proses perangkat lunak secara efektif. CMM menggambarkan proses perbaikan secara evolusioner mulai dari ad hoc, belum matang menjadi matang, serta suatu proses secara disiplin. CMM meliputi langkah-langkah yang ”best practice” untuk melakukan perencanaan, rekayasa dan managemen pengembangan dan pemeliharaan perangkat lunak. Bila diikuti satu per satu langkahnya, tanpa disadari telah membawa organisasi bergerak menghasilkan produk dengan ketepatan pada biaya, jadwal, fungsi dan kualitas yang baik. Standar-standar yang di kenal sebagai key process area (KPA) tidak hanya baik untuk identifikasi dan untuk pemeliharaan proses yang sedang berlangsung. CMM memiliki 3 komponen utama : Maturity Levels Process capability Key process area Maturity level merupakan suatu langkah-langkah yang tersususn denga n baik untuk mendapatkan proses perangkat lunak yang mature. Ke lima tingkat dalam maturity level berfungsi sebagai struktur utama dari CMM. Process capability menggambarkan batasan dari hasil yang diinginkan yang dapat diperoleh melalui proses perangkat lunak. Process capability ini memungkinkan adanya prediksi hasil akhir dari proyek yang akan dikerjakan sesudahnya. Setiap key process area menggambarkan aktivitas yang dikerjakan pada masing-masing level. Bila dapat dilakukan secara sempurna maka proses pencapaian tingkat mature akan semakin dekat untuk dicapai. 69
Jurnal Basis Data, ICT Research Center UNAS Vol.4 No.1 Mei 2009
ISSN 1978-9483
Saat ini sesungguhnya ide penggunaan lebih dari satu standar dalam proses pengembangan software bukan lah menjadi hal yang aneh. Paling tidak hal ini akan meminimalkan resiko gagalnya pengembangan perangkat lunak, selain dapat juga untuk meningkatkan aktivitas proses pengembangan serta mewakili cara praktis untuk mendapatkan keuntungan baik jangka pendek maupun jangka panjang bagi sebuah software house. Dan dari ”best practise” yang ada saat ini CMM menjadi pilihan software house dalam proses pengembangan perangkat lunak, karena beberapa kelebihan yang telah disebutkan sebelumnya.
III. IMPLEMENTASI Sebagaimana biasanya setiap proses pengimplementasian hal baru seperti sistem akan menga lami proses penolakan karena berbagai sebab. Demikian pula halnya untuk penerapan CMM di lingkungan software house. Kebiasaan yang sudah menjadi rutinitas dilakukan oleh sebuah software house akan mengalami perubahan yang cukup besar, terlebih bila kurang terbiasanya pendokumentasian proses/ aktivitas yag dilakukan. Permasalahan internal ini tentu akan mengganggu proses pencapaian maturity yang akan di capai Pengaruh klien juga ikut mempengaruhi proses pencapaian maturity level suatu software house, karena sebagaimana yang kita pahami bersama bahwa satu-satunya sumber yang paling valid dalam memberikan informasi adalah klien itu sendiri. Salah satu strategi yang digunakan biasanya dengan adanya join development atau proses proyek yang jangka panjang, sehingga memberikan keleluasaan lebih bagi para pengembang untuk mendapatkan informasi/ data yang dibutuhkan. Hal penting lainnya adalah penyusunan perhitungan anggaran proyek. Tanpa dasar dari proyek yang telah dikerjakan sebelumnya tentu akan menjadi sulit untuk memperkirakan besarnya setiap bagian dari proses pengembangan serta kesulitan argumentasi dari besaran nilai yang dicantumkan di setiap aktivitas. Misalnya orang akan menolak adanya penambahan karyawan baru untuk melakukan pembuatan weekly report atau daily report meskipun proses ini akan sangat membantu dalam perbaikan proses pengembangan.
IV. PENUTUP Software house sebagai ”pabrik” industri perangkat lunak, perlu menyiasati segala permasalahan yang ada dalam proses pengembangan perangkat lunak. Penggunaan standarisasi yang telah ada saat ini pada prinsipnya akan mempermudah software house itu sendiri untuk mencapat tingkat maturitynya. Perangkat lunak yang berkualitas baik tentunya akan diperoleh melalui serangkaian proses yang tidak pendek. Capability Maturity Model (CMM) memberikan jalan untuk mencapai tingkat maturity yang diinginkan secara tersusun, terstruktur dan terorganisasi dengan baik. Kepedulian klien terhadap kualitas produk perangkat lunak yang dihasilkan akan memberikan dorongan yang kuat bagi software house untuk menerapkan CMM dalam setiap proses pengembangan perangkat lunak yang dilakukan.
70
Jurnal Basis Data, ICT Research Center UNAS Vol.4 No.1 Mei 2009
ISSN 1978-9483
DAFTAR PUSTAKA [1] Mark C.P., Charles V.W., Suzanne M.G., Mary BC, Marilyn B., Technical Report : Key Practices of the Capability Maturity Model ver 1.1. SEI, (Februari 1993) [2] Emam, K., Drouin, J.-N., and Melo, W., (editors) Spice: The Theory and Practice of Software Process Improvement and Capability Determination. IEEE Computer Society Press, Los Alamitos, California, U.S.A., 1997 [3] Paulk, M., Curtis, B., Chrissis, M., and Weber, C., Capability Maturity Model for Software, Version 1.1 . CMU/SEI-93-TR-24, Software Engineering Institute, Carnegie Mellon University, Pittsburgh, Pennsylvania, U.S.A., 1993 [4] Paulk, M., Weber, C., Garcia, S., Chrissis, M., and Bush, M., Key Practices of the Capability Maturity Model for Software, Version 1.1 . CMU/SEI-93-TR-25, Software Engineering Institute, Carnegie Mellon University, Pittsburgh, Pennsylvania, U.S.A., 1993 th
[5] Sobha Renaissance., Case Study on SSE-CMM Assessment.India, Jan 27 2005.
71