Seorang Analis Harus Bijak dalam Mengambil Asumsi
“Tolong buatkan saya teh donk”
“Kita janjian ketemu besok di Mall A ya”
“Untuk mengakses aplikasi yang dibuat di project ini, harus login dulu. Jadi tolong dibuatkan fiturnya.”
Dalam keseharian kita, pastilah sering menghadapi permintaan atau pernyataaan yang abstraksinya tidak mendetail seperti di atas. Namun, apakah kita pernah mengevaluasi berapa kali pula kita salah dalam mengambil asumsi terhadap pernyataan-pernyataan tersebut? Setiap orang memiliki sudut pandang dan pengetahuan yang berbeda-beda. Sekadar “teh” saja, setiap orang memiliki bayangan “teh ideal”-nya masing-masing. Ada yang “panas manis dan kental”, ada yang “panas tanpa gula”, ada juga misalnya yang “pakai es dan manis”.
Sama halnya dengan “besok di Mall A”, banyak pertanyaan turunan yang perlu dijawab. Besok jam berapa? Di Mall A sebelah mana? Kalau hujan apakah tetap jadi pertemuannya? Dan lain-lain. Ketika seluruh pihak yang terlibat dalam pertemuan itu sudah saling memahami satu sama lain, bisa jadi mereka memiliki asumsi yang sama. Misal pertemuan sudah dilakukan berkali-kali dan di jam serta tempat yang sama. Itupun tidak menjamin karena ada banyak resiko yang bisa mengganggu asumsi tersebut, misal tempat pertemuannya sudah tidak ada kursi yang tersedia.
Dalam mengembangkan suatu aplikasi pun begitu. Tidak bisa kita dengan kata-kata “perlu fitur login”, langsung berasumsi klien maunya login seperti begini, dan tim programmer juga akan membuat login seperti begini. Jika dalam pengembangan suatu sistem menggunakan framework, login ini menjadi bagian yang given, trivial, seperti tidak penting, pasti begitu-begitu saja. Padahal, banyak sekali pertanyaan yang perlu dijawab terkait fitur ini, misal:
1. Apakah perlu captcha?
2. Field apa yang dijadikan sebagai “username”-nya? Apakah username, email, nomor handphone, atau apa?
3. Apa algoritma yang digunakan sebagai pengaman password?
4. Berapa sesi maksimal untuk satu akun yang digunakan di beberapa device?
5. Apakah perlu dibuat sebagai/menggunakan SSO?
6. dll
Seorang analis harus mampu mendefinisikan seluruh pertanyaan terkait sebuah fitur sampai sedetail-detailnya. Meskipun kliennya adalah langganan yang sudah berkali-kali kerjasama dengannya, ataupun tim programmer adalah senior yang sudah banyak pengalaman, tugas analislah yang menentukan mau dibuat seperti apa setiap fitur di aplikasi. Tidak boleh seorang analis main lempar saja ke tim sekadar “fitur login” dengan asumsi tim pasti mengerti yang dimaksud klien. Apalagi sampai tidak mengerti sama sekali maksud fiturnya apa — yang penting lempar aja.
Lalu, bagaimana caranya seorang analis melatih kemampuan analisisnya?
1. Banyak mencari tahu. Ketika seorang analis kebingungan tentang suatu fitur, dia harus mencari tahu. Tidak boleh dia menggunakan asumsi tanpa konfirmasi. Ketika sudah tahu pun dia harus tetap mencari tahu “apakah yang saya rancang ini sudah sesuai dan bagus?”. Sering-seringlah diskusi dengan analis lain atau tim untuk mendapatkan feedback terkait rancangan yang sudah dibuat. Selain itu, bisa juga dengan mencari tahu keluar, misal membandingkan dengan aplikasi lain yang mirip.
2. Peduli akan hal teknis. Seorang analis harus paham bagaimana sebuah fitur akan diimplementasikan. Karena dengan begitu, dia bisa langsung on the spot memberikan feedback kepada klien terkait fitur yang diminta. Misalnya klien meminta login harus menggunakan akun Facebook. Padahal, pendaftaran untuk aplikasi developer Facebook sudah ditutup (misal). Kalau dia tidak paham lalu langsung mengiyakan, akan bermasalah di belakang ketika klien menagih lalu baru disampaikan bahwa integrasi tersebut tidak mungkin dilakukan.
3. Selalu bertanya “Kenapa perlu fitur X? Apakah sesuai dengan tujuan utama aplikasi?”. Ketika sebuah fitur ingin dibuat, pastikan dulu bahwa semua pihak menyepakati alasan dibuatnya fitur X. Misal aplikasi yang dibuat adalah semua web profil perusahaan untuk kebutuhan pemasaran dan publikasi perusahaan. Ketika klien meminta fitur login sebelum user bisa melihat profil dan publikasi perusahaan, tentu kita tolak karena jelas akan merepotkan user jika dia harus registrasi dulu sebelum bisa melihatnya.
Sebagai penutup, saya kutip kata-kata dari Isaac Asimov dengan harapan setiap kita mau menghilangkan sedikit demi sedikit asumsi-asumsi yang ada di diri kita, supaya bisa menerima informasi baru dari luar.
“Your assumptions are your windows on the world. Scrub them off every once in a while, or the light won’t come in.”
― Isaac Asimov