Tips Memilih Solusi Teknologi yang Tepat dalam Membangun Sebuah Proyek IT

Ridwan Fajar 17 Januari 2017

Tips Memilih Solusi Teknologi yang Tepat dalam Membangun Sebuah Proyek IT

Dilematis memilih suatu tools memang dapat menjadi penyebab perdebatan di dalam sebuah tim pengembang perangkat lunak. Menemukan solusi yang tepat kadang sulit karena terdapat pilihan yang agak subjektif. Namun memilih solusi yang objektif pun harus diutamakan agar solusi tersebut dapat berjalan lebih panjang. Objektivitas ini dapat dipengaruhi oleh berbagai aspek mulai dari pasca eksplorasi dokumentasi atau menelusuri pendapat komunitas.

Untuk kamu yang sedang mengerjakan tugas besar akhir semester atau baru menggarap sebuah proyek, beberapa poin berikut mungkin akan bermanfaat dalam menentukan keputusan. Tentu saja poin - poin ini hanya sebagian kecil dari sekelumit pertimbangan yang dilakukan dalam tim yang sudah berpengalaman lebih jauh.

##1. Ukur Biaya

Dalam menentukan sebuah stack tentu saja ada biaya yang harus ditanggung. Mungkin kita ingin menggunakan Microsoft SQL Server atau Oracle Enterprise tapi hanya digunakan untuk proyek tingkat kecamatan. Bila kecamatan mempunyai dana sebesar itu yah tidak masalah, tapi bila sampai harus tidak membayar lisensi tentu akan ada akibat yang ditanggung.

Selain itu kita juga harus menentukan apakah kita akan menggunakan managed service atau mengelola semuanya sendiri. Tentu saja ada pro dan kontra bila kita memilih salah satunya. Kita harus mempertimbangkan masalah biaya ini dengan pemberi proyek. Jangan sampai kita mendapatkan proyek yang under budget.

##2. Lihat Apa yang Didukung oleh Alat Tersebut

Kasus 1:

Misal kamu sudah memilih database untuk aplikasi penerimaan mahasiswa baru yang bernama X dan hanya tiga bahasa pemrograman yang didukung, sudah pasti kita tidak perlu mengambil langkah terlalu jauh untuk menggunakan bahasa pemrograman yang tidak didukung database tersebut. Karena selain makan waktu, ada besar kemungkinan kita harus membuat driver sendiri untuk bahasa pemrograman tersebut. Kecuali kalau kita memang ada misi untuk membuat driver dalam bahasa pemrograman yang tidak didukung oleh database itu.

Kasus 2:

Dimisalkan kembali, kamu kebagian proyek tugas mengerjakan sebuah aplikasi mobile untuk device Android yang dapat mengenali wajah seseorang. Cari tahu lebih dahulu bahasa pemrograman apa yang didukung oleh device tersebut. Android mendukung bahasa pemrograman Java, C++, dan Javascript (ReactNative, TitaniumSDK, Ionic, NativeSDK, dan lainnya). Selanjutnya cari library yang dapat kita gunakan untuk kasus tugas tersebut. Kita ambil misalnya library OpenCV yang mendukung untuk mengenali wajah seseorang. OpenCV diasumsikan mendukung Java dan C++. Di sini kita jelas agak sulit menggunakan Javascript, bila Javascript belum mempunyai library yang dapat mengakses fungsionalitas OpenCV

##3. Pertimbangkan Learning Curve

Kasus 1:

Misal database yang kamu pilih antara MySQL, PostgreSQL atau MongoDB untuk menangani infrastruktur aplikai penerimaan mahasiswa tersebut. Disini kita harus mempertimbangkan apakah salah satu database yang kita pilih cocok dengan bahasa pemrograman yang akan kita gunakan? Misalkan kita akan menggunakan Node.js. Kemudian kita harus cari melihat juga bagaimana desain aplikasi dan paradigma yang digunakakn dalam membangun aplikasi ini, masih berorientasi kepada relasional atau menginginkan adanya struktur yang bebas dan dinamis.

Bila menginginkan struktur informasi yang bebas dan dinamis kamu dapat menggunakan MongoDB, atau PostgreSQL dengan mengandalkan JSON field. MySQL belum dapat menyimpan teks struktur JSON sebagaimana PostgreSQL. Kemudian kita harus memilih lagi apakah tim kita siap untuk mempelajari query tanpa SQL atau masih harus SQL. Bila harus masih SQL tentu kita harus memilih PostgreSQL karena kita menginginkan struktur informasi yang bebas dan dinamis disertai masih ingin mengandalkan SQL.

Salah satu alasan yang dikuatkan adalah dengan menggunakan SQL, tim masih bisa belajar lebih cepat karena sebelumnya menggunakan SQL di database serupa dan bahan belajar pun cukup banyak. Di kasus ini diharapkan tim bisa belajar dengan cepat.

Kasus 2:

Pada kasus proyek mengenal aplikasi mengenal wajah untuk smartphone Android. Kamu dihadapkan pada memilih bahasa pemrograman Java dan C++ sedangkan tim sudah menguasai bahasa pemrograman Java. Bila menggunakan bahasa pemrograman Java, kamu dapat mencari dengan mudah bahan belajar tentang OpenCV dan pengenalan wajah namun untuk kasus tertentu banyak fitur yang dibatasi.

Sedangkan dengan menggunakan bahasa pemrograman C++ selain menjamin kamu mendapatkan performa aplikasi yang lebih tinggi, kamu dapat melihat berbagai fungsionalitas yang lebih banyak dalam pengenalan wajah serta bertebaran library yang siap digunakan dalam C++.

Mana yang akan kamu pilih? semua tergantung kasus, bila kamu harus masuk ke fitur yang cukup advance kamu bisa menggunakan Java dengan membuat fungsionalitas itu sendiri dan learning curve lebih pendek. Sedangkan bila kamu menggunakan C++ kamu tidak perlu membuat salah satu fungsionalitas pengenalan wajah tersebut namun kamu harus lebih bersabar ketika berhadapan dengan C++.

##4. Pertimbangkan Kemampuan Tim

Bagaimanapun alat yang dipilih, tetap yang akan mengerjakan adalah manusia. Anggota tim harus kita telaah lebih detail bagaimana kemampuannya terhadap penguasaan atau adopsi suatu teknologi. Bila stack yang akan kita gunakan mayoritas cocok dengan anggota tim, bukan masalah besar yang harus dihadapi. Tapi bila mayoritas tim belum mengenal sepenuhnya stack yang akang digunakan, mau tidak mau kita ganti stack tersebut atau menggiring anggota tim untuk menguasai stack tersebut.

Terlebih bila keputusan diberikan oleh pemberi proyek. Bila kita dipatok menggunakan alat tertentu, sudah pasti anggota tim harus mengejar. Mendepak anggota tim pun bukan suatu keputusan yang baik bila salah satunya tidak menguasai stack yang diperlukan. Kita harus memberinya kesempatan terlebih dahulu untuk mengejar pekerjaan yang diharapkan.

##5. Bicarakan Dengan Pemberi/Pemilik Proyek

Setelah perjalanan panjang memilih stack yang akan digunakan. Tentu kamu harus menceritakan dan berkonsultasi dengan pemberi proyek. Disana kamu dapat menceritakan bagaimana learning curve, biaya, dan kemungkinan kesulitan yang akan dihadapi.

Setelah melewati pembicaraan ini, biasanya keputusan terbaik akan didapat agar proyek selesai sesuai dengan kondisi terbaik yang ada.

(rfs)