Apa pernah terpikirkan bahwa salah seorang dari tim Anda yang paling mengetahui produk secara teknis pergi meninggalkan perusahaan Anda? Atau Anda khawatir bahwa hasil rekrutmen developer tidak memberikan hasil yang Anda harapkan? Pada dasarnya pengembangan software bersifat knowledge-intensive, artinya pemahaman yang mendalam secara teknis atas suatu produk sangat krusial. Oleh karena itu mengelola product knowledge secara efektif dapat menjadi tantangan yang besar bagi perusahaan. Dalam artikel ini kami akan membahas lebih jauh mengenai strategi transfer knowledge dalam pengembangan software dalam perusahaan.
Di Badr Interactive kami telah menerapkan strategi transfer knowledge untuk lebih dari 300 proyek yang kami kerjakan mulai dari industri pendidikan, kesehatan, hingga retail. Proses dokumentasi dan transfer knowledge proyek yang terencana, membantu kami menghindari berbagai permasalahan yang mungkin muncul dan mempertahankan pengetahuan teknis atas produk dalam perusahaan meskipun tingkat rotasi karyawannya cukup tinggi.
Secara khusus, artikel ini akan memberikan penjelasan detail mengenai proses transfer knowledge kepada tim pengembangan software dan mendeskripsikan metode transfer knowledge yang efektif untuk perusahaan Anda.
Daftar Isi
- Kenapa Transfer knowledge pada pengembangan software sangat penting?
- Bagaimana mempersiapkan rencana transfer knowledge pada pengembangan software
- Sepuluh metode transfer knowledge untuk tim Development
- Kesimpulan
Kenapa Transfer knowledge pada pengembangan software sangat penting?
Sekali lagi, pemahaman teknis atas suatu produk adalah hal yang sangat krusial dalam pengembangan software. Ketika pengetahuan teknis ini tidak tersebar secara merata ke semua tim IT perusahaan Anda, maka hal ini akan mempengaruhi kualitas pengembangan produk kedepan. Secara bisnis, permasalahan ini akan membawa pada kerugian secara finansial kepada perusahaan. Oleh karena itu manajemen knowledge akan sangat bermanfaat bagi seluruh pihak yang terlibat dalam proses development. Berikut ini beberapa manfaat transfer knowledge yang baik untuk tim development IT perusahaan:
Menghemat Waktu dan Biaya
Product knowledge yang terdistribusi dengan baik akan membantu tim development untuk mengurangi pekerjaan-pekerjaan yang terulang dan menyelesaikan issue dengan lebih cepat. Terlebih lagi jika ada seorang karyawan yang paling mengerti teknis produk meninggalkan perusahaan, manajemen tidak perlu menghabiskan waktu yang lama untuk membangun kembali pengetahuan proyek dari awal.
Memberikan Fondasi Pengetahuan Proyek yang Kuat
Perusahaan akan mengakumulasi seluruh pengetahuan dan best practice dari pengalaman selama ini dalam proses development. Hal ini mencakup berbagai kesalahan yang pernah dialami, strategi optimasi, serta use case yang pernah dikerjakan. Transfer pengetahuan yang efektif akan memungkinkan rekan satu tim menggunakan kembali pengetahuan tersebut untuk strategi pengembangan kedepan dan tidak mengulangi kesalahan yang sama.
Mencegah Risiko
Manajemen pengetahuan yang baik antar anggota tim development akan mengurangi kemungkinan keterlambatan memenuhi deadline yang ditentukan. Hal ini karena tim tahu apa yang akan mereka hadapi kedepan dan berapa banyak waktu yang dibutuhkan untuk mengerjakan setiap tugas berdasarkan pengetahuan yang sudah dimiliki. Transfer pengetahuan juga akan mengajarkan anggota tim untuk berkolaborasi dalam mengerjakan tugas secara efisien.
Mendorong Perbaikan secara Berkelanjutan
Membuat setiap knowledge yang dimiliki terdokumentasi dengan baik dan dapat diakses dengan mudah akan membuat seluruh tim dapat bekerja secara mandiri dan meningkatkan keterampilan mereka dalam mengerjakan proyek.
Meningkatkan Kepuasan Karyawan
Ketika keterampilan tim development meningkat melalui dokumentasi knowledge material yang terdistribusi dengan baik, maka hal ini secara langsung akan meningkatkan potensi karir mereka. Saat mereka merasakan adanya peningkatan kapasitas maka mereka akan lebih bangga kepada diri mereka yang berimplikasi pada kepuasan kerja yang lebih tinggi.
Memudahkan dalam Mencari Solusi
Dokumentasi pengetahuan proyek yang baik akan membantu developer untuk mencari penyebab dari permasalahan yang dihadapi. Dengan demikian, pencarian solusi akan lebih cepat.
Sederhananya, transfer knowledge yang tidak efektif ibarat bangunan dengan pondasi besi yang sudah berkarat. Korosi pada besi akan menghancurkan daya tahan bangunan dan membuat bangunan runtuh. Kurangnya transfer knowledge akan menggerogoti sumber daya terpenting yaitu pengetahuan. Sehingga pada akhirnya produk software akan kesulitan untuk dikembangkan lebih lanjut.
Bagaimana Mempersiapkan Rencana Transfer Knowledge pada Pengembangan Software
Ada dua jenis pengetahuan dalam software development:
- Explicit Knowledge biasanya direkam, diurutkan, dan mudah ditransmisikan—termasuk standar pengkodean dan best practices, pola pemrograman, teknik, dan dokumentasi.
- Tacit Knowledge, disisi lain, bersumber dari pengalaman pribadi developer, skills yang dimiliki, cara berpikir, dan lain sebagainya yang tidak terdokumentasi dalam kertas.
Rencana transfer knowledge yang efektif harus mencakup kedua jenis pengetahuan tersebut. Berikut ini adalah beberapa langkah yang bisa dilakukan untuk merencanakan transfer knowledge untuk tim Anda:
Langkah 1: Menganalisa Situasi Pengembangan Saat ini
Untuk menciptakan perencanaan transfer pengetahuan yang baik, sebaiknya Anda memulai dengan melihat posisi Anda saat ini. Bagaimana penyebaran pengetahuan saat ini? Seberapa lengkap dokumentasi yang ada? Apakah semua proses development sudah dipahami oleh seluruh tim development?
Cara terbaik untuk mengatasi kesenjangan pengetahuan (lack of knowledge) antar tim adalah dengan langsung menanyakan kepada mereka. Tanyakan kepada mereka apa yang mereka rasakan selama proses development, apa yang menjadi kesulitan mereka, apakah mereka bergantung pada satu orang tertentu dalam menyelesaikan tugas? Apakah bagi orang baru yang masuk kedalam tim akan sulit untuk catch up dalam proses development? Apakah mereka merasa masih bisa melakukan yang lebih baik lagi?
Jangan sungkan untuk menanyakan hal tersebut kepada tim Anda. Transparasi dalam proses development adalah hal yang sangat penting untuk memastikan pengembangan produk berjalan lancar. Tim Anda akan menjadi aset yang berharga karena dapat berkontribusi aktif dan memberikan berbagai masukan selama proses development.
Langkah 2: Pilih Metode Transfer Knowledge yang Paling Sesuai
Langkah berikutnya adalah memilih metode transfer yang paling sesuai dengan perusahaan Anda. Informasi yang Anda kumpulkan pada langkah pertama akan membantu Anda mengidentifikasi metode mana yang paling baik. Mengenai metode ini, akan dibahas pada sesi berikutnya.
Langkah 3: Agendakan satu hari dedicated training
Menerapkan rencana transfer pengetahuan secara efektif tidak mungkin dapat dilakukan tanpa pemahaman yang komprehensif dari tim development tentang urgensi transfer knowledge. Oleh karena itu Anda perlu mengkomunikasikan mengenai pentingnya hal ini sehingga mereka dapat lebih termotivasi. Beri tahukan kepada tim Anda, apa yang Anda harapkan dari mereka, apa yang harus mereka lakukan, dan apa peran mereka dalam perencanaan transfer knowledge ini.
Langkah 4: Monitoring efektivitas dari transfer knowledge
Ada kemungkinan bahwa metode transfer pengetahuan yang Anda lakukan tidak efektif dan efisien untuk tim Anda. Dalam hal ini, coba identifikasi apa yang salah dan praktik yang tidak sesuai dengan harapan Anda. Jangan lupa bahwa pengelolaan product knowledge adalah proses yang berkelanjutan. Sehingga jika satu metode tidak efektif, Anda bisa memilih untuk menggunakan metode yang lain.
Sepuluh Metode Transfer Knowledge untuk Tim Development
Ketika Anda sudah memutuskan untuk merencanakan proses transfer pengetahuan kepada tim development Anda, lalu bagaimana cara terbaik melakukannya? Apa sebenarnya yang perlukan untuk menjaga pengetahuan mengenai produk dapat dimiliki oleh seluruh tim secara merata?
1. Dokumentasi Proyek
Dokumentasi adalah cara paling umum untuk merekap seluruh pengetahuan atas suatu proyek. Dokumentasi yang dibuat harus dapat diakses oleh seluruh stakeholder terkait sehingga dapat mempercepat proses pembelajaran bagi orang baru yang masuk kedalam tim. Selain itu dokumentasi juga membantu dalam melihat rekam jejak proses pengembangan produk. Dokumentasi yang komprehensif bukan hanya penting bagi developer tapi juga bagi klien. Jika Anda berada di tengah proyek development, maka dokumentasi adalah salah satu deliverables terpenting dalam agenda serah terima proyek. Berikut ini kami lampirkan beberapa dokumentasi yang perlu Anda dapatkan saat proses serah terima:
2. Code Reviews
Memberikan umpan balik / feedback atas pekerjaan tim yang lain akan membantu developer untuk meningkatkan kemampuan mereka dan mengatasi kekurangan yang mereka miliki. Melakukan review code antar tim developer akan memberikan pandangan yang lebih komprehensif atas kualitas kode yang dibuat. Bukan sekedar menghighlight potensi bug dan kode yang tidak efektif, namun developer juga bisa mendapatkan ide implementasi yang lebih efisien untuk proyek mereka. Review code juga dapat membantu dalam standarisasi gaya pengkodean di seluruh proyek dan berbagi pengalaman pada spesifik proyek tertentu.
Selain itu, aktivitas review code juga akan membantu anggota tim baru untuk langsung melihat best practices yang dilakukan dalam membuat code dan bagaimana membuat code yang baik. Hal ini akan memberikan insight berharga dan pembelajaran yang cepat bagi developer yang baru masuk kedalam tim Anda.
3. Code Comment
Beberapa orang mungkin menganggap bahwa komentar pada kode yang dibuat merepresentasikan kode yang kurang bagus. Namun sebenarnya, komentar pada kode akan menjadi sangat penting sebagai informasi tambahan dan membuat kode menjadi lebih mudah dibaca oleh developer.
4. Tools Kolaborasi
Saat ini dimana tren bekerja dilakukan secara remote, maka komunikasi yang intens antar tim memerlukan tools kolaborasi yang efektif. Dalam hal ini penggunaan berbagai tools penunjang kolaborasi seperti zoom meeting, slack, trello dan lain sebagainya menjadi sangat penting. Idealnya apapun kondisinya, seluruh tim harus dapat berkomunikasi secara efektif baik antar tim development ataupun dengan user atau klien.
5. Hackathon
Hackathon akan sangat efektif untuk menghasilkan ide-ide baru dalam memecahkan permasalahan yang sulit. Biasanya hackathon adalah event dimana karyawan bekerja dalam tim kecil untuk memecahkan tantangan tertentu. Di akhir, setiap tim akan mempresentasikan solusi mereka yang akan menambahkan pengetahuan untuk seluruh partisipan. Hackathon memang kompetitif, namun dapat mengakselerasi penambahan pengetahuan antar tim. Hal ini karena tim akan dituntut untuk lebih kreatif, melihat permasalahan dari sudut pandang yang berbeda, serta belajar menggunakan teknologi dan pendekatan yang baru.
6. Daily/Weekly Meeting
Anda dapat mengatur agenda untuk melakukan pertemuan antar tim baik secara harian atau pekanan. Pertemuan ini bisa disetup secara offline ataupun online sesuai dengan kondisi setiap perusahaan. Dalam sesi ini, Anda dapat bertukar pikiran dengan tim terkait progress development yang dikerjakan. Setiap anggota tim dapat menjelaskan bagaimana mereka memecahkan suatu issue atau solusi praktis yang mereka kerjakan. Sesi ini dapat dimanfaatkan sebagai forum tanya jawab antar anggota tim yang akhirnya membawa keterbukaan dalam proses development.
7. System Analyst untuk Developer
Dalam teknik ini, ada seorang System Analyst atau bisa dibilang sebagai senior developer yang memiliki pengalaman jauh lebih banyak dan pemahaman yang lebih dalam secara teknis dalam pengembangan produk. System Analyst (SA) akan menjadi supervisor yang akan memantau proses development oleh para developer. Mereka akan memberikan masukan, membimbing serta menjawab pertanyaan-pertanyaan teknis yang ditanyakan oleh developer. Peran System Analyst juga untuk memastikan bahwa kualitas kode yang dikerjakan sudah sesuai standar yang ditetapkan. Hal ini akan membantu developer untuk memiliki standar kualitas yang lebih baik dengan supervisi yang rutin oleh System Analyst.
8. Sesi Transfer Knowledge Rutin
Sesi transfer knowledge yang dibuat dalam satu agenda khusus adalah momen yang baik sebagai sarana sharing pengalaman serta pembelajaran dari aktivitas development yang dilakukan selama ini. Biasanya sesi transfer knowledge dilakukan dengan waktu yang lebih lama dibandingkan daily/weekly meeting. Hal ini karena fokus utama dari transfer knowledge adalah sharing terkait kompetensi/skill tertentu, sedangkan daily/weekly meeting berfokus pada progress pekerjaan saat ini.
9. Writing Test
Developer menulis skrip pengujian secara otomatis (automated testing) untuk memastikan software berfungsi dengan baik sesuai dengan yang diharapkan. Pengujian dapat memeriksa berbagai hal, mulai dari efektivitas kode yang digunakan hingga hal lain yang lebih kompleks. Script testing ini bukan sekedar mengkomunikasikan hasil yang diharapkan namun juga meningkatkan pengetahuan mengenai logika dari bisnis pada sistem yang dibangun.
10. Grup Diskusi
Grup diskusi antar tim yang memiliki skillset atau keterampilan yang sama dalam teknologi tertentu akan membantu mereka untuk saling bertukar pikiran. Grup diskusi akan menjadi ajang sharing knowledge yang baik atas penyelesaian dari suatu issue yang dihadapi dalam proses development.
Kesimpulan
Transfer knowledge merupakan hal yang kompleks sehingga sering diabaikan oleh perusahaan ketika mengembangkan suatu produk. Bahkan sering sekali perusahaan yang datang kepada kami dan menyerahkan seluruh proses development tanpa memiliki tim teknis internal. Sehingga ketika proyek selesai, tidak ada tim internal yang mengerti secara teknis atas sistem yang sudah dibuat.
Kita tidak bisa bergantung hanya pada satu orang untuk memahami secara utuh tentang sistem yang dibangun karena tidak ada yang menjamin bahwa dia akan selamanya ada di perusahaan Anda. Pemahaman mengenai sistem harus dimiliki oleh seluruh tim teknis dan dapat ditransfer kembali dengan mudah kepada siapapun orang baru yang masuk kedalam tim.
Oleh karena itu proses distribusi pengetahuan atas suatu produk sangat penting baik untuk vendor yang mengerjakan proyek IT ataupun untuk perusahaan yang membangun produk software mereka.
Di Badr Interactive, kami menjamin memberikan dokumentasi yang dibutuhkan oleh klien melalui proses development yang kolaboratif. Hal ini membantu klien untuk mengembangkan sistem yang dibangun secara mandiri tanpa perlu bergantung kepada software house yang mengembangkan sistem tersebut.
Anda dapat membaca berbagai artikel lain terkait dengan proses development, project management serta insight business dalam blog kami.