Memilih Framework untuk Perusahaan

Sekarang ini banyak sekali framework di ekosistem PHP yang bermunculan. Setiap framework memiliki kelebihan dan kekurangannya masing-masing. Namun bila kita berbicara dari sudut pandang Perusahaan, maka sebaiknya point-point berikut menjadi pertimbangan ketika memutuskan menggunakan sebuah Framework.

1. Stabilitas

Perusahaan tidak pernah mau tau apa yang Anda gunakan untuk membangun sistem mereka, mereka hanya peduli bahwa sistem yang Anda bangun harus stabil dan mudah digunakan. Disisi lain, Anda harus menjamin bahwa framework yang Anda gunakan aman.

Salah satu untuk menjamin keamanan adalah dengan update dependencies dari framework tersebut atau bahkan dengan meng-upgrade framework tersebut. Masalah yang sering terjadi adalah ketika ada rilis baru semisal dari versi X.Y.Z ke versi X.Y1.Z1, yang Anda dapati bukan aplikasi yang up to date justru error terjadi dimana-mana dikarenakan API yang berubah (dihapus) dari framework yang Anda gunakan. Padahal Anda masih menggunakan base version yang sama yaitu versi X.

Perubahan API yang tidak ter-maintain dengan baik seperti ini menunjukkan bahwa framework yang Anda gunakan belum stabil dan hanya akan menimbulkan masalah dikemudian hari terutama jika terdapat celah keamanan yang mengharuskan Anda meng-upgrade framework. Waktu Anda yang sebenarnya dapat Anda gunakan untuk mengembangkan fitur dan optimasi aplikasi, justru habis untuk membetulkan error dikarenakan memilih framework yang belum stabil.

2. Dokumentasi

Salah satu pertimbangan utama dalam memilih framework adalah dokumentasi. Dokumentasi akan sangat membantu dalam produktifitas dan kemudahan dalam implementasi. Semakin lengkap dokumentasi suatu framework maka semakin mudah pula framework tersebut untuk dipelajari.

Selain dari Dokumentasi, dukungan forum seperti stackoverflow, google groups, dan lain-lain juga akan memberikan nilai tambah tersendiri ketika kita memutuskan untuk menggunakan Framework.

3. Komunitas

Semakin banyak orang yang mengembangkan dan menggunakan sebuah framework semakin mudah pula kita dalam mendapatkan support jika terjadi kebuntuan. Selain itu, komunitas yang aktif akan menjaga keberlangsungan framework tersebut.

Komunitas yang besar dan aktif akan berdampak pada produktifitas, dimana sebagian pekerjaan kita mungkin telah dikerjakan oleh komunitas berupa third party sehingga kita tinggal meng-integrasikan kedalam project kita saja.

4. Reputasi

Booming atau Populer saja tidak cukup untuk menjadikan alasan Anda memilih framework. Kita ingat beberapa tahun lalu, salah satu framework populer di Indonesia justru harus “gulung tikar” dan mencari “rumah baru” demi keberlangsungan hidupnya. Bahkan salah satu framework besar pada masanya, sekarang pun entah tak terdengar namanya dan ditinggalkan oleh para developernya dan sekarang (di github) hanya dimaintain oleh 12 orang dengan 0 (NOL) PR dan total hanya didownload 4 ribuan kali di packagist.

Dari sini kita dapat mengambil pelajaran bahwa populer saja tidak cukup untuk membuat sebuah framework survive. Reputasi yang baik di ekosistem akan menjaga keberlangsungan sebuah framework tersebut. Semakin banyak project besar yang memakai sebagaian atau keseluruhan framework tersebut menunjukkan reputasi yang baik dari framework itu.

5. Dukungan Third Party

Seperti yang sudah disinggung sebelumnya, komunitas dan third party adalah dua hal yang tidak bisa dipisahkan. Dukungan komunitas yang besar dengan membuat third party akan sangat memudahkan dan mempercepat proses development.

Common Business seperti Login, User Management, Role Management atau Access Control List, CRUD Automation, Session Management dan Menu Management adalah pekerjaan yang membosankan yang seharusnya sudah tercover oleh third party sehingga kita bisa fokus pada solusi bisnis.

6. Integrasi dengan Teknologi Lain

Sekarang ini hampir semua teknologi dapat saling berkomunikasi baik melalui low level integration maupun high level integration. Tidak hanya itu, saat ini hampir semua layanan dan aplikasi di seluruh dunia telah menggunakan Web API baik menggunakan HTTP Call (traditional web service) ataupun REST API.

Disini sekali lagi, komunitas memegang peranan penting dalam menyediakan third party untuk dapat berkomunikasi dengan teknologi ataupun service lain. Semakin mudah mengintegrasikan teknologi lain diluar ekosistem, akan semakin meningkatkan produktifitas.

7. Resources yang mudah

Kemudahan dalam mendapatkan resources adalah salah satu point penting. Semakin mudah mendapatkan resources, semakin Anda tidak bergantung pada satu main power.

Resources disini adalah orang yang dapat menggunakan framework baik dia entry level maupun expert.

Kesimpulan

“Tidak semua yang berkilauan adalah emas” — Spongebob Squarepant