Rabu, 26 Mei 2010

Peranan Knowledge Management dalam Software Engineering


1. Knowledge management mendukung proses inti aktivitas software engineering .
Dalam hal ini, knowledge management bertindak sebagai pendukung kegiatan inti (core task ), yaitu pengembangan software. Kegiatan-kegiatan yang dilakukan dalam pengembangan software , tidak lepas dari dokumentasi dan bahkan hampir semua hasil kerjanya adalah dokumen, baik berupa code , manual, dokumen bantuan, atau yang lain. Karena itu, aktivitas yang selalu dilakukan adalah pembuatan dokumen, penyuntingan, koreksi dan aplikasi dokumen tersebut. Untuk mengatur dokumen tersebut, diperlukan sebuah tool yang dikenal dengan document management . Tool ini digunakan sebagai fondasi dasar knowledge management dalam software engineering . Kebanyakan organisasi yang melakukan software engineering mempunyai beberapa lokasi workshop (software house ) yang terletak pada lokasi yang berbeda. Oleh karena itu, pasti terjadi proses distribusi dokumen yang telah dibuat di masing-masing workshop . Proses distribusi informasi tersebut juga memerlukan penanganan khusus yang dikenal dengan istilah manajemen informasi, yang dapat dilakukan dengan berbagai tool seperti email, kalender, groupware dan lain-lain.
2.   Manajemen dan distribusi dokumen.
Knowledge management mendukung proses dokumentasi yang biasanya dilakukan menggunakan aplikasi document management. Makanya, dokumen dapat dengan mudah dirunut mengacu pada versinya. Selain itu, beberapa aplikasi document management juga dapat memberikan versi secara otomatis atau memungkinkan sebuah dokumen disunting secara simultan. Dalam software engineering yang melibatkan tim yang cukup besar, mungkin diperlukan juga mekanisme workflow untuk beberapa proses di dalamnya, seperti review atau uji coba software .
3.  Manajemen kompetensi.
Manajemen kompetensi ini dilakukan untuk tetap menjaga semua aset knowledge tacit sehingga bisa diketahui dan tercatat, “siapa yang mengetahui apa”. Pada software house skala kecil, biasanya dengan mudah seseorang dapat mengetahui knowledge yang dimiliki oleh rekannya. Jadi, “siapa yang mengetahui apa” dalam organisasi tersebut dapat dengan mudah diingat. Tetapi, semakin besar organisasi yang berarti juga semakin melibatkan banyak orang, “siapa yang mengetahui apa” semakin sulit dilakukan (not knowing what other people know ). Untuk mengatasinya, diperlukan manajemen kompetensi. Manajemen kompetensi dilakukan untuk membantu menempatkan seseorang yang mempunyai skill yang sesuai dengan proyek yang akan ditangani. Saat ini, manajemen kompetensi digunakan oleh beberapa perusahaan sebagai acuan untuk mengembangkan kompetensi pegawainya.
4.  Pendekatan secara perlahan ke arah knowledge management .
Pendekatan perlahan ini dimaksudkan agar dapat melakukan knowledge management dengan lebih baik, bersamaan dengan waktu kerja, tidak mengubah cara bekerja, namun bisa menjadi bagian dari aktivitas harian. Contohnya adalah perubahan pada helpdesk ke seeking help, di mana pada awalnya setiap ada permasalahan selalu langsung diselesaikan oleh helpdesk . Ketika diubah, permasalahan tidak lagi langsung ke helpdesk, tetapi terlebih dulu mencari jawabannya pada dokumen FAQ yang sudah disediakan. Jika jawaban tidak ditemukan, baru kemudian melakukan request ke helpdesk .
5.  Daya ingat organisasi (Organizational Memory ).
Belajar dari pengalaman, perlu memori yang kuat untuk mengingatnya kembali. Karena daya ingat individu mustahil mampu mengingat semuanya, maka yang harus dilakukan adalah menjadikannya sebagai explicit knowledge . Dengan demikian, setiap kegiatan dapat tercatat dan dirunut dengan mudah dan cepat. Terdapat minimal tiga bentuk organizational memory , yaitu;
A.    Memori terdiri dari kegiatan dokumentasi dan kegiatan lain yang mendukung pengembangan program.
B.     Memori terdiri dari entitas yang dikembangkan khusus untuk mendukung daya ingat organisasi
C.     Gabungan keduanya.
6.   Paket pendukung aplikasi knowledge management.
Paket Knowledge yang mendukung aplikasi knowledge , kebanyakan berupa aplikasi yang digunakan dalam software engineering . Aplikasi knowledge management dalam software engineering biasanya adalah hasil pengalaman dari kegiatan dalam beberapa proyek yang pernah digarap.
7. Tool berbasis knowledge management berdasarkan aktivitas software engineering yang didukungnya:
A.    Interactive Domain Understanding Tools
Tool ini bertujuan membantu menyamakan persepsi antara user dengan desainer aplikasi, atau dengan kata lain melakukan transfer knowledge tentang sistem yang akan dibangun dari user ke desainer/developer. Seringkali hal tersebut dianggap remeh, sehingga ketika sebuah aplikasi dideliver , aplikasi tersebut berbeda jauh dari harapan user sehingga harus dilakukan pembongkaran total atau malah dibuang begitu saja. Dengan adanya understanding tools ini, diharapkan akan membantu memahami kondisi user atau aplikasi yang akan dikembangkan.
B.     Intelligent Requirements Assistants
Digunakan untuk membantu memperoleh gambaran dan melakukan analisis kebutuhan user atas aplikasi yang sedang dikembangkan dalam bentuk yang formal.
C.     Knowledge-based Program Designers
Tool dalam kategori ini digunakan untuk melakukan konversi dari fase requirement ke fase desain, termasuk di dalamnya obyek-obyek yang akan digunakan dalam pengembangan.
D.    Knowledge-based Code Generators
Membantu membuat code program dari desain tingkat tinggi (high-level design ) sehingga akan sangat membantu pembuatan program. Code program yang dihasilkan akan sangat bergantung terhadap desain yang dijadikan sebagai input pada saat membuat code -nya.
E.     Smart Code Analysis Tools
Untuk melakukan analisa code program, diperlukan kemampuan pemrograman yang cukup tinggi dan pengetahuan tentang manajemen kualitas software. Tool ini akan membantu melakukan analisa, testing dan pengujian kualitas program, dengan membandingkan style program yang diuji dengan style program yang diset sebagai acuan standar yang dianggap mempunyai good structure berdasarkan pengalaman sebelumnya.
F.     Documentation Generators
Untuk membantu melakukan dokumentasi semua aktivitas dalam software engineering, seperti spesifikasi dan desain aplikasi. Documentation generator ini membantu mengubah tacit knowledge ke explicit knowledge.
G.    Software Maintenance Tools
Tool ini membantu melakukan transfer knowledge dari desainer dan developer ke seseorang yang akan melakukan maintenance aplikasi. Salah satu contohnya adalah dengan membuat code yang konsisten antara aplikasi yang sudah dideliver dan update -nya.
H.    Predictive Models and Best Practices
Dalam setiap proyek yang ditanganinya, Project Leader dapat dipastikan akan melakukan berbagai aktivitas seperti memberikan perencanaan dan berbagai keputusan. Selain itu, pengalaman juga dapat berupa situasi-situasi yang pernah dialami, cerita kesuksesan dan kegagalan, serta berbagai masalah yang dihadapi dan solusi yang dilakukan. Apabila pengalaman tersebut terdokumentasi dengan baik, maka akan sangat bermanfaat dalam proyek-proyek selanjutnya, terutama membantu mengambil keputusan dan memprediksi kemungkinan-kemungkinan yang terjadi jika sebuah keputusan telah diambil. Dokumentasi tersebut bisa dalam format teks, indexed cases, semantic networks , matriks, flowchart atau bentuk-bentuk lain yang disesuaikan dengan informasinya.
I.     Process Design
Process design yang dimaksud adalah melakukan desain sebuah proses standar dalam pengembangan aplikasi berdasarkan pengalaman yang pernah dialami. Kemudian, proses standar tersebut akan digunakan dalam pengembangan aplikasi yang terus mengalami perbaikan.
8. Tool berbasis knowledge management berdasarkan fase life cycle knowledge yang didukungnya:
A.  Knowledge Deployment/Application Tools
Dimaksudkan untuk membagi knowledge dalam sebuah organisasi ke setiap pegawai yang membutuhkan, pada saat proses software engineering dilakukan. Knowledge dalam sebuah organisasi dipisahkan dan didistribusikan sesuai dengan domain dari setiap task dalam software engineering , seperti desain, pengembangan dan dokumentasi.
B.   Knowledge Organization Tools
Organization tools digunakan untuk memelihara knowledge , menambahkan hubungan pada setiap item knowledge ke item knowledge lainnya yang digunakan selama pengembangan aplikasi berbasis knowledge , menambahkan meta data dalam knowledge item, dan menggambarkan hubungan antara generalisasi dan spesialisasinya.
C.   Knowledge Acquisition Tools
Membantu mentransfer dan mengubah pengalaman dari sumber knowledge yang bersifat tacit ke dalam gambaran knowledge yang explicit sehingga knowledge dapat digunakan secara lebih efektif.

Tidak ada komentar:

Posting Komentar