Ada beberapa perubahan yang harus saya hadapi ketika berganti status dari mahasiswa menjadi karyawan sebuah perusahaan TI.

Dari Open Source Software ke Propietary Software

Waktu masih mahasiswa dulu, saya dengan penuh idealisme menggunakan perangkat lunak open source. Sebelum punya laptop sendiri, karena komputer di rumah penggunannya bukan hanya saya, saya memang masih menggunakan Windows bajakan. Namun, saya waktu itu berprinsip untuk minimal menggunakan development tools yang legal. Jadi, untuk mengerjakan tugas-tugas kuliah, saya lebih memilih menggunakan Java, Netbeans, Eclipse, Dev-C++, MySQL dan bukan Delphi, Visual Studio, MatLab, atau SQL Server. Ketika bekerja paruh waktu di PPTIK pun, development tools yang digunakan juga open source (PHP, CakePHP, MySQL).

Setelah memiliki laptop sendiri, saya mulai menggunakan Ubuntu Linux secara dominan. Mulai dari membaca e-book, berinternet, development, nonton film, hingga memutar musik sudah cukup nyaman dilakukan di Ubuntu. Hanya saja, di laptop masih ada ruang kecil untuk Windows. Hal tersebut saya lakukan karena untuk masalah mengetik masih lebih enak menggunakan Microsoft Word :-D .

Saat ini, laptop saya sudah saya wariskan ke adik saya. Sekarang, saya menggunakan laptop dari kantor, yang mana dalam laptop tersebut sudah terinstal Microsoft Windows 7 dan Microsoft Office 2003. Tentu saja kedua perangkat lunak tersebut legal. Lebih dari itu, development tools yang saya gunakan sekarang pun adalah Microsoft Visual Studio, Microsoft SQL Server, dan Oracle DBMS (meskipun Eclipse, Notepad++, dan XAMPP masih terpakai).

Saya biasanya memberikan solusi dengan tools yang bersifat open source ketika mendapatkan proyek TI. Namun, perusahaan tempat saya bekerja saat ini memberikan solusi yang hampir semuanya merupakan propietary software. Oracle E-Business Suite, Oracle Data Warehouse, dan Microsoft Dynamics adalah beberapa di antaranya. Tentu saja hal ini membuat saya harus lebih meluaskan pandangan lagi mengenai solusi yang bisa diberikan bagi klien. Kalau dulu saya mungkin akan memberikan solusi FrontAccounting untuk aplikasi akuntansi, maka sekarang saya juga akan mempertimbangkan Oracle Financial Management. Untuk aplikasi CRM, selain SugarCRM, saya juga akan mempertimbangkan Microsoft Dynamics CRM dan SalesForce. Demikian juga untuk DWBI, selain Pentaho saya juga memiliki pilihan Oracle Warehouse Builder dan Oracle Business Intelligence.

Dari Klien UKM ke Enterprise

Ketika masih mahasiswa, saya biasanya mendapatkan proyek dari sektor UKM atau instansi pemerintah kecil. Aplikasi komputer yang dibangun untuk UKM umumnya hanya menangani sedikit pengguna dan ukuran basisdatanya relatif kecil. Sementara itu, perusahaan TI tempat saya bekerja sekarang memiliki klien dari golongan perusahaan menengah ke atas (atau istilah kerennya: enterprise). Tentu saja jumlah pengguna aplikasi dan ukuran basisdata yang ditangani oleh aplikasi jauh lebih besar dibanding aplikasi untuk UKM. Ada banyak faktor yang sebelumnya tidak terlalu diperhitungkan untuk aplikasi UKM seperti performa, keamanan, dan audit trail, yang menjadi isu penting bagi aplikasi untuk kelas enterprise.

Perubahan yang kedua ini berhubungan dengan perubahan yang pertama: klien dengan level enterprise tentu saja mampu membeli lisensi produk-produk propietary. Sementara itu bagi perusahaan dengan level UKM, menggunakan aplikasi propietary hampir bukan merupakan pilihan.

Better Software Process

Inilah yang menjadi alasan saya untuk bekerja di perusahaan saya sekarang: mempelajari bagaimana proses perangkat lunak yang lebih baik. Tidak seperti dulu ketika masih mahasiswa, di mana programmer adalah Superman yang mengerjakan hampir semua hal dalam proses perangkat lunak mulai dari requirement analysis, application design, coding, testing, hingga delivery.

Di perusahaan saya sekarang, setiap proyek dibagi ke dalam fase-fase (initiation, planning, user requirement, prototyping, design, development, testing, production). Dalam setiap fase terdapat tasks dan deliverables tertentu. Setiap task dan deliverable di-assign kepada orang atau tim tertentu.

Setiap proyek memiliki organisasi proyek, yang terdiri dari steering committee, project manager, quality assurance, key users, functional team, dan technical team. Functional team bertanggung jawab untuk hal-hal yang berkaitan dengan proses bisnis, sementara technical team bertanggung jawab untuk hal-hal yang berkaitan dengan teknologi. Di sini terlihat bahwa ada pembagian yang tegas antara aspek functional dan technical, tidak seperti dulu ketika programmer adalah Superman yang mengurusi keduanya.

Hal penting lain adalah untuk setiap deliverable document seperti Business Requirement Document/User Requirement Document, Functional Specification, Technical Specification, dan sebagainya harus di-review dan ditandatangani terlebih dahulu oleh klien. Hal ini dilakukan agar dokumen-dokumen tersebut dapat dijadikan pegangan ketika terjadi perbedaan pandangan atau perselisihan mengenai project scope.

Mungkin terlalu singkat apabila saya menuliskan bagaimana better software process dalam tulisan ini. Mudah-mudahan saya bisa menuliskannya secara lebih detail dalam tulisan-tulisan berikutnya.

Related posts:

  1. Antara Bor dan Lubang