Besok jadi hari terakhir gw kerja di sini. Gw selalu membenci saat-saat seperti ini. Ngucapin perpisahan sama orang2 yang dah lama kerja, mengulang2 alasan berhenti kerja dan menjelaskan tempat kerja baru.
Yah urusan sopan-sopanan, trivial , tetapi perlu. Biar bagaimana kita ini manusia, kan mahluk sosial. You'll never know what will happen in the future :)
Di perusahaan gw ini, pelajaran yang paling gw inget adalah, gak cukup untuk hanya membuat 'a good software'. Aspek-aspek non teknis berpengaruh besar, apalagi pada tahap maintenance. Mungkin bagi orang-orang yang terbiasa dengan sistem proyek doang bakal kelewatan hal-hal seperti ini. Dan itu juga yang membuat orang-orang proyek rentan dengan sindrom 1.0 :P
Ada beberapa point penting berdasarkan pengalaman gw :
1. Lu harus memblokade sistem lu sebaik mungkin.Sistem biasanya dibuat berdasarkan asumsi-asumsi, soalnya kalo dibatesin dengan asumsi-asumsi ini domainnya bisa terlalu besar dan sistemnya gak kelar-kelar dikerjain. Nah yang jadi pitfall-nya , kadang-kadang asumsi itu sekedar ada di kepala developernya, di dalam dokumentasi, atau bahkan di first generation user aja.
Somewhere along the way, pasti ada aja user yang miss tentang asumsi itu. Nah kalo sistem-nya tidak menjaga asumsi-asumsi itu dengan ketat. Di saat terjadi masalah itu, membetulkan data yang salah akan lebih merepotkan daripada berusaha menjaganya.
Biasanya problem seperti ini muncul setelah sistem berjalan 3-6 bulan. Orang-orang yang tadinya disiplin dan menuruti aturan, jadi careless :) Biasanya orang akan saling menyalahkan, karena memang menyalahi prosedur. Tetapi pendekatan gw dalam masalah ini, selalu berusaha mengupdate sistem baru untuk mencegah hal ini terulang. Faktor terberat dalam problem ini memang masalah resiko kestabilan sistem dan kemalasan developer. But its worthed, because this problem may keep reappearing and haunt you in the future.
2. Dokumentasi tak layak tayang.Pekerjaan dokumentasi memang pekerjaan yang paling membosankan bagi developer. Alhasil terkadang dokumentasi yang begitu tebal terkadang kita sendiri ogah membacanya. Jika kita saja malas bagaimana dengan user? Bagi mereka mungkin dokumentasi itu seperti kitab dari planet alien, yang penuh dengan kata-kata teknis dan penjelasan yang hanya dimengerti oleh penulisnya :P
Akibat hal ini, jika bertemu masalah user lebih cenderung bertanya ke orang lain dari pada membaca dokumentasinya. Karena hal itu, menurut gw sebaiknya dokumentasi yang tradisional itu sebaiknya di ubah. Kita lebih memakai pendekatan kenyamanan user.
Dokumentasi itu sebaiknya terbagi menjadi 2. Yang pertama tutorial berdasarkan flow akses, misalnya dari login ke halaman A, terus ke halaman B, terus bisa bercabang ke C jika kondisinya X atau ke D jika kondisinya Y.
Yang kedua adalah dokumentasi yang strukturnya terbagi atas domain yang jelas. Sehingga user dapat dengan cepat mencari solusi dari problemnya.
Yang menjadi kunci utama dari dokumentasi ini adalah, dokumentasi sebaiknya bukan di print seperti biasanya . Tetapi diletakkan di sebuah internal web server sebagai sebuah website. Sehingga user dapat memanfaatkan fasilitas search dan juga dokumentasi dapat di update dengan mudah.
3. Generasi PertamaUser Generasi pertama adalah sebuah bom waktu. Mereka adalah orang yang pertama pertama kali berinteraksi dengan yang sistem yang telah selesai. Biasanya para pengguna pertama ini adalah termasuk kalangan sial. Karena sistem belum stabil dan pelatihannya pun masih perlu di perbaiki sana sini, seiring berjalannya pelatihan.
Terkadang ini menyebabkan sedikit kebingungan bagi mereka, karena penjelasan masih mengambang, yang dijelaskan dan di praktekkan bisa berbeda karena terjadi update di sistem, dan terkadang pertanyaan-pertanyaan mereka dijawab dengan 'saya cari tahu dulu yah, besok saya kabari'.
Mereka ini berperan penting, karena merekalah yang biasanya mengajarkan bagi pengguna-pengguna berikutnya, bagaimana cara menggunakan sistem dengan benar. Apalagi jika yang mengajarkan dilanjutkan secara turun temurun. Generasi 1 mengajarkan generasi 2, generasi 2 mengajarkan generasi 3, dst.
Kalau hal ini terjadi di tiap generasi akan terjadi sebuah gap, belum lagi kalau dalam 1 generasi diajarkan oleh orang yang berbeda-beda, lebih kacau lagi.
Oleh karena itu , memberikan dokumen yang konsisten dan mudah di akses menjadi sangat penting. Dan orang-orang dari generasi pertama itu harus sering di update. Karena merekalah yang dapat memudahkan developer untuk menjadi corong bagi generasi-generasi yang lain.
4. Complaint and ExplanationComplain tentu menjadi hal yang menyebalkan bagi developer, karena itu berarti ada masalah dalam program yang dibuatnya dan itu berarti... extra work :( Tapi ada komplain yang lebih menyebalkan, yaitu komplain dari user yang salah persepsi atau malas membaca dokumentasi.
Apapun komplain itu menurut gw tidak cukup kita hanya bilang, 'selesai , sudah di perbaiki'. Terkadang kita perlu juga menjelaskan pokok permasalahan, dan penyelesaiannya. Terutama bagi-bagi user yang interest terhadap sistem. Dengan mendidik user seperti itu, di suatu saat mereka sampai ke tahap dimana mereka memiliki kemampuan untuk menyelesaikan problem sistem dengan cara mereka sendiri. Dan ini invaluable bagi kerja lu sebagai developer.
Tapi tentu saja ada user yang memang seakan-akan tidak punya waktu untuk mendengarkan penjelasan lu. Tipe user ini memang sudah lost dan gak perlu di maintain dengan informasi-informasi tentang sistem. Fix their problem dan tempatkan complaint mereka di prioritas terendah, that should do the trick :P
Epilogue*duh kayak harpot aja pake epilogue*
Bagi orang-orang yang masih punya kekuatan dalam menentukan kebijaksanaan perusahaan, mungkin informasi ini dapat berguna untuk meningkatkan stabilitas sistem. Dengan kata lain semakin sedikit complaint bagi yang memaintain, it should do you good more than harm.
Bagi gw sendiri yang kemungkinan bakal terjebak dalam sebuah sistem yang sudah baku. Mungkin ini hanya sebuah wacana lalu untuk dikenang, hehehe :D