(Saya mencoba menulis lagi setelah 2 bulan blog ini belum di-update juga :-D ).

Ceritanya, saya sudah mulai ditugaskan dalam proyek, meskipun masih proyek internal. Saya dipercaya menjadi technical leader (karena memang satu-satunya orang technical dalam tim :-D ) untuk proyek pengembangan aplikasi CRM milik perusahaan. Perusahaan saya selama ini menggunakan SugarCRM yang telah dikustomisasi. Ada beberapa hal yang ingin saya ceritakan dari proyek ini, yaitu:

Mempelajari Sesuatu yang Baru

Dalam suatu proyek, tim teknis selalu mendapatkan pertanyaan berikut dari project manager:

  • Dapatkah suatu kebutuhan klien dipenuhi?
  • Berapa lama suatu kebutuhan klien bisa diimplementasikan solusinya?

Permasalahannya adalah: ketika dalam proyek tersebut digunakan teknologi yang baru bagi tim teknis (bahasa pemrograman, DBMS, library, framework, dan sebagainya), maka pertanyaan-pertanyaan tadi menjadi sulit untuk dijawab. Hal yang sama juga dialami oleh tim fungsional jika proyek tersebut mengandung proses bisnis yang baru bagi mereka.

Hal itulah yang saya alami dalam proyek ini. Saya harus mempelajari terlebih dahulu mengenai SugarCRM, bagaimana arsitekturnya dan bagaimana saya bisa melakukan kustomisasi agar sesuai dengan kebutuhan klien. Penting juga untuk diperhatikan bahwa kustomisasi yang saya lakukan diharapkan sesuai dengan mekanisme yang dianjurkan oleh SugarCRM (tanpa memodifikasi core source code dari SugarCRM). Hal tersebut dilakukan agar kustomisasi tersebut bersifat upgrade safe. Yang dimaksud upgrade safe adalah ketika suatu perangkat lunak di-upgrade, maka kustomisasi yang dilakukan pada perangkat lunak tersebut tetap berjalan.

Selain masalah ketidakpastian mengenai bisa tidaknya suatu kebutuhan klien diimplementasikan berikut berapa lama waktu implementasinya, proses mempelajari teknologi baru tentu saja memerlukan waktu. Banyaknya ketidakpastian tersebut tentu saja menimbulkan banyak resiko pula bagi proyek (jadwal molor, overbudget). Oleh karena itu, ketidakpastian harus diminimalkan dengan menjalankan lebih banyak effort untuk mempelajari teknologi baru yang digunakan, dimulai sejak hari pertama proyek dimulai.

Bingung dengan Adanya Beberapa Alternatif Solusi

Ironis, sebelumnya kita sama sekali tidak memiliki bayangan mengenai bagaimana suatu solusi untuk kebutuhan klien bisa diimplementasikan. Setelah kita mempelajari teknologi baru kita memiliki gambaran bagaimana solusi untuk kebutuhan klien. Seringkali terdapat lebih dari satu alternatif solusi untuk melakukan hal yang sama. Kita harus mampu memutuskan mana solusi yang terbaik untuk diterapkan.

Error yang “Aneh”

Hal ini adalah hal yang sangat menyebalkan bagi tim teknis. Bayangkan, nampaknya segala sesuatunya telah dijalankan dengan benar: instalasi server, impor basisdata, konfigurasi sistem; namun tetap saja ada suatu hal yang menyebabkan program tidak berjalan dengan benar.

Keanehan pertama yang saya alami adalah SugarCRM tidak mau berjalan dengan benar ketika diinstal di laptop saya. Padahal basisdatanya sudah diimpor ke server lokal, konfigurasi juga telah disesuaikan, namun tetap saja SugarCRM tidak mau berjalan. Setelah dicoba berbagai macam cara, dan berkat ide dari Bobby, akhirnya ditemukan akar permasalahannya: versi PHP yang digunakan terlalu tinggi. SugarCRM yang digunakan adalah versi 4.5, yang hanya kompatibel dengan versi PHP paling tinggi 5.2.0. Akhirnya saya terpaksa menggunakan versi PHP 5.2.0.

Keanehan lain dalam proyek ini (yang hingga sekarang masih menjadi misteri) adalah: ketika saya menjalankan SugarCRM di kantor segalanya berjalan normal. Namun, ketika saya jalankan di kos, SugarCRM tidak mau terkoneksi ke basisdata. Setelah bertanya pada Google akhirnya saya menemukan bahwa pustaka PHP yang digunakan untuk berhubungan dengan DBMS Microsoft SQL Server telah tidak didukung lagi oleh Microsoft. Pustaka PHP yang lama (mssql) telah digantikan dengan pustaka sqlsrv. Namun tetap saja hal tersebut tidak menjawab misteri mengapa SugarCRM mau berjalan di kantor tetapi tidak di kos :-D .

Related posts:

  1. Sebuah Jawaban Atas “Misteri Proyek Rekayasa Perangkat Lunak”