Hari ini saya terlibat pada sebuah diskusi yang sedikit lucu, aneh, sekaligus menyita beberapa jam waktu saya, di salah satu mailing list milik Client terbesar saya selama ini. Tentu saja ini terkait dengan Aplikasi Web. Topik tersebut terkait dengan bidang Web Development. 🙂
Jadi, saya coba simpulkan apa isi diskusi tersebut. Intinya, ada sebuah Aplikasi Web yang dibangun oleh rekan-rekan saya (kebetulan saya tidak terlibat di dalamnya), yang memiliki business-logic sedikit bertele-tele (saya katakan “sedikit” untuk memperhalus saja). Mengapa saya katakan bertele-tele, karena jika ada kondisi User yang logout otomatis karena idle atau tidak melakukan kegiatan selama sekian menit tertentu, maka User tersebut harus melapor kepada Manajer-nya.
Setelah saya ikuti diskusi itu lebih dalam lagi, ternyata tujuan dari User tersebut harus melapor ke Manajer-nya, supaya user Manajer tadi yang harus membebaskan status login si User. Tentu saja, setelah dibebaskan, si User bisa login seperti biasa.
Sekilas mungkin tidak ada yang salah dengan prosedur itu. Tapi, semakin saya mengikuti diskusi tersebut, makin terungkaplah bahwa yang dimaksud dengan kondisi “bertele-tele” itu adalah, si User harus melapor ke Manajer-nya demi untuk dibebaskan status login-nya. Parahnya, kondisi ini ternyata menyebabkan sebuah masalah baru. Mulai dari ketika si Manajer tidak berada di tempat, sampai kepada repot-nya si User yang harus berjalan cukup jauh ke meja si Manajer hanya untuk minta supaya dibebaskan status loginnya yang masih menggantung.
Kalau berteriak tentu tidak mungkin. Si User harus bersikap sopan ketika menghadapi Pelanggan atau Masyarakat. Jadi, si User harus mendatangi si Manajer. Tidak mungkin mengharapkan si Manajer tahu sendiri. Sudah bisa dipastikan, bahwa hampir semua User pemakai Aplikasi Web tersebut akhirnya mulai mengeluhkan kondisi itu. Mereka mengusulkan supaya kondisi ini seharusnya bisa dicarikan solusinya.
Setelah cukup lama saya membaca-baca komentar di diskusi tersebut, akhirnya saya mulai angkat bicara. Saya memberikan pandangan, bahwa untuk mengatasi kondisi itu sebenarnya cukup sederhana saja. Si Web Developer sebaiknya harus bisa mengubah sedikit saja business-logic yang tadinya mengharuskan si User melapor dulu ke si Manajer supaya dibebaskan status login yang “menyangkut” tadi, menjadi dibebaskan status loginnya secara otomatis oleh sistem.
Jadi, kalau secara teknis yang terjadi di Aplikasi Web adalah seperti ini. Setiap kali User login, maka sistem harus memeriksa apakah status session login si User tersebut sedang aktif atau tidak. Jika session-nya sedang aktif, maka sistem akan langsung membersihkan session-nya saat itu. Selanjutnya sistem akan menampilkan pesan kepada si User yang menyatakan bahwa status login sudah dibebaskan, disertai instruksi untuk silahkan mencoba login kembali.
Dengan cara ini, maka baik si User maupun si Manajer sama-sama nyaman. Si User tidak lagi panik karena harus mendatangi terlebih dulu si Manajer, dan si Manajer tidak lagi menjadi terbebani dengan pekerjaan membebaskan status login User tersebut. Bayangkan jika ada banyak User yang merupakan staf-nya mengalami hal yang sama, dan di saat waktu yang hampir bersamaan pula!
Tujuan akhir dari diubahnya business-logic tadi pun jelas. Demi kelancaran pekerjaan si User yang harus melayani Pelanggan dengan menggunakan Aplikasi Web tersebut. Selain itu, dampaknya pun pasti terasa juga buat si Manajer. Dia menjadi tidak terbeban lagi harus menunggui atau stand-by terus di mejanya, meskipun bisa saja dia mengakses Aplikasi Web tersebut secara mobile dari gadget-nya. Tapi tetap saja ini akan tetap merepotkan si Manajer tadi. Bayangkan juga jika si Manajer memiliki pekerjaan lainnya!
Daripada mengerjakan hal-hal teknis yang sebenarnya bisa diatasi secara otomatis oleh sistem, maka sebaiknya si Manajer tidak perlu lagi disibukkan dengan pekerjaan membebaskan status login User atau Staf-nya yang logout otomatis tadi.
Selain itu, saya juga memberikan saran dan rekomendasi, bahwa tidak semua hal itu harus dibuat seketat mungkin hanya demi alasan Keamanan Sistem. Artinya, ada hal-hal tertentu yang bisa dibuat fleksibel, tapi tanpa harus mengabaikan faktor Keamanan Sistem itu sendiri. Dalam contoh di atas, pembebasan status login secara otomatis sama sekali tidak melanggar faktor Keamanan Sistem.
Nah, di sini sekaligus saya ingin menitip pesan kepada Anda wahai para Web Developer. Belajar dari pengalaman saya di forum diskusi tadi, saya berharap supaya sejak sekarang Anda membangun Aplikasi Web yang tidak mepersulit Pengguna yang mengoperasikan Aplikasi Web Anda tersebut. Jangan pernah sekalipun Anda membangun Aplikasi Web yang bertele-tele dan atau mempersulit Pengguna Anda!
Selain itu, Anda juga harus kritis dengan memberikan hasil analisis disertai saran/rekomendasi solusi yang terbaik, jika Client Anda menginginkan fitur yang bertele-tele seperti di atas tadi. Ingatlah, bahwa tidak semua Client paham secara teknis hal-hal yang terjadi di Aplikasi Web yang Anda bangun. Oleh karena itu, sudah sewajarnya jika Anda sebagai Web Developer berperan juga sebagai Konsultan Teknis bagi Client Anda.
Pengajaran yang baik dan patut ditiru.. 🙂
Terima kasih bimbingan dan masukannya
Sama-sama. 🙂
kalau ada contoh projects phpmakernya om. yg versi 11 gimana dapat serial number nya ??
terima kasih om
Salah satu contoh project bisa Anda download melalui artikel ini: A Case Study: Creating Provinces, Cities, Subdistricts Dynamic Selection in Websites that Generated by PHPMaker 9.1.0.
Contoh-contoh project PHPMaker lainnya (beserta Database-nya) bisa Anda ikuti melalui artikel berikut:
– Mudahnya Memasukkan Data yang Terpilih di Aplikasi Web dari PHPMaker
– Mudahnya Menjumlahkan Nilai di Kolom Baru di Aplikasi Web dari PHPMaker
Sedangkan untuk mendapatkan serial number PHPMaker 11, silahkan Anda beli PHPMaker secara resmi melalui link berikut: http://www.hkvstore.com/purchase.asp?prodid=11.