Di Balik Sebuah Project, Ada Banyak Hal yang Tidak Terlihat
Sebuah aplikasi yang sudah selesai hanya memperlihatkan sebagian kecil dari pekerjaan di balik proses pengembangannya.
Kalau melihat sebuah aplikasi yang sudah selesai, biasanya yang paling mudah diperhatikan adalah tampilannya.
Ada dashboard, form, tabel, laporan, dan berbagai fitur yang bisa digunakan.
Tetapi di balik aplikasi tersebut, ada banyak pekerjaan yang tidak terlihat oleh pengguna.
Mulai dari memahami kebutuhan, menyusun alur, memeriksa data, memperbaiki masalah, sampai menyesuaikan hal-hal yang baru diketahui ketika project sudah berjalan.
Dan justru bagian-bagian seperti ini yang sering memberikan banyak pelajaran.
Kebutuhan awal belum tentu menggambarkan semuanya
Ketika sebuah project dimulai, biasanya sudah ada gambaran mengenai aplikasi yang ingin dibuat.
Misalnya sistem untuk mengelola kegiatan, keuangan, atau administrasi.
Dari diskusi awal, kita mulai menyusun fitur dan proses yang dibutuhkan.
Tetapi ketika masuk lebih dalam, sering ditemukan kondisi yang sebelumnya belum dibicarakan.
Ada proses yang berbeda antar bagian, aturan yang hanya diketahui oleh pengguna tertentu, atau kebiasaan kerja yang ternyata memiliki pengaruh besar terhadap sistem.
Hal seperti ini cukup wajar.
Tidak semua kebutuhan bisa langsung diketahui dalam satu atau dua kali pertemuan.
Karena itu, memahami kebutuhan biasanya menjadi proses yang terus berjalan selama pengembangan.
Yang terlihat sederhana belum tentu sederhana
Ada fitur yang kelihatannya hanya membutuhkan satu tombol.
Misalnya tombol untuk menyetujui sebuah pengajuan.
Dari sisi pengguna, prosesnya terlihat sederhana: buka pengajuan, periksa, lalu klik setujui.
Tetapi dari sisi sistem, kita mungkin perlu memikirkan banyak hal.
Siapa yang boleh menyetujui? Apakah pengajuan bisa dibatalkan? Apa yang terjadi setelah disetujui? Apakah perlu mengirim notifikasi? Bagaimana jika ada perubahan data setelah proses persetujuan?
Belum lagi jika proses tersebut melibatkan beberapa tingkatan pengguna.
Satu tombol bisa mewakili cukup banyak aturan bisnis.
Karena itu, memahami proses di balik sebuah fitur sering lebih penting daripada langsung membuat tampilannya.
Data lama punya ceritanya sendiri
Pada project yang melibatkan sistem existing, data lama sering menjadi salah satu tantangan.
Kadang kita menemukan data yang tidak lengkap, struktur yang berbeda, atau informasi yang selama ini dicatat dengan cara tertentu.
Masalahnya, data tersebut mungkin sudah digunakan selama bertahun-tahun.
Kita tidak bisa langsung menghapus atau mengubahnya tanpa memahami dampaknya.
Perlu ada proses pemeriksaan, pemetaan, dan validasi sebelum data dipindahkan atau digunakan dalam sistem baru.
Pekerjaan seperti ini mungkin tidak terlihat dalam tampilan akhir aplikasi.
Tetapi pengaruhnya sangat besar terhadap apakah sistem bisa digunakan dengan baik.
Testing sering membuka hal yang tidak terpikirkan
Ketika sebuah fitur selesai dikembangkan, bukan berarti pekerjaan langsung selesai.
Fitur tersebut masih perlu diuji.
Dan saat pengujian, sering muncul kondisi yang sebelumnya tidak terpikirkan.
Misalnya pengguna melakukan proses dengan urutan berbeda, mengisi data yang tidak sesuai perkiraan, atau menjalankan fitur dalam kondisi tertentu.
Hal-hal seperti ini membantu kita melihat apakah sistem sudah cukup siap digunakan.
Testing juga bukan hanya mencari error.
Kadang dari proses pengujian, kita justru menemukan bahwa alur yang dibuat masih terlalu panjang atau membingungkan pengguna.
Artinya, yang perlu diperbaiki bukan selalu kode programnya.
Bisa jadi cara kerja fiturnya yang perlu disesuaikan.
Komunikasi punya pengaruh besar
Dalam sebuah project teknologi, kemampuan teknis tentu penting.
Tetapi komunikasi juga memiliki peran yang tidak kalah besar.
Programmer perlu memahami kebutuhan pengguna.
Pengguna perlu memahami bagaimana sistem akan bekerja.
Sementara pihak yang mengambil keputusan perlu mengetahui perkembangan, kendala, dan konsekuensi dari perubahan yang diminta.
Kalau komunikasi tidak berjalan dengan baik, sebuah fitur bisa saja selesai secara teknis tetapi ternyata tidak sesuai dengan kebutuhan.
Karena itu, diskusi, konfirmasi, dan dokumentasi menjadi bagian penting dari pekerjaan.
Walaupun terkadang terlihat seperti pekerjaan tambahan.
Tidak semua masalah harus diselesaikan dengan fitur baru
Ketika pengguna menemukan kendala, salah satu permintaan yang sering muncul adalah menambahkan fitur.
Padahal, tidak semua masalah membutuhkan fitur baru.
Kadang cukup memperbaiki alur yang sudah ada.
Kadang masalahnya ada pada informasi yang kurang jelas.
Ada juga kondisi ketika pengguna sebenarnya membutuhkan pelatihan atau penyesuaian proses kerja.
Menambahkan fitur tanpa memahami masalahnya justru bisa membuat aplikasi semakin rumit.
Karena itu, penting untuk melihat masalah dari sisi pengguna dan proses bisnis, bukan hanya dari sisi teknis.
Project selesai, pembelajaran tetap berjalan
Setiap project memiliki tantangannya sendiri.
Ada yang kompleks karena proses bisnisnya. Ada yang membutuhkan integrasi dengan banyak sistem. Ada juga yang menantang karena data lama atau kebutuhan yang terus berkembang.
Tidak semuanya berjalan persis seperti rencana awal.
Tetapi dari situ kita belajar bagaimana menyusun kebutuhan dengan lebih baik, membuat keputusan teknis, berkomunikasi dengan pengguna, dan menangani kondisi yang tidak selalu ideal.
Pada akhirnya, membangun aplikasi bukan hanya tentang menulis kode sampai semua fitur selesai.
Ada banyak pekerjaan di baliknya yang ikut menentukan apakah teknologi tersebut benar-benar membantu orang yang menggunakannya.