Memilih Tech Stack untuk Tim Kecil
Ketika tim saya masih kecil — beberapa orang saja mengurus backend, frontend, dan infrastruktur sekaligus — keputusan soal tech stack terasa jauh lebih berisiko dibanding di perusahaan besar. Kalau tim besar salah pilih stack, masih ada cukup orang untuk menambal kekurangannya. Di tim kecil, satu keputusan yang keliru bisa membebani satu-dua orang selama bertahun-tahun. Karena itu saya belajar bahwa memilih stack bukan soal "teknologi apa yang paling keren", tapi soal tiga hal yang jauh lebih membosankan: kematangan ekosistem, ketersediaan talenta, dan biaya perawatan jangka panjang.
Kematangan Ekosistem Lebih Penting daripada Performa di Atas Kertas
Framework atau bahasa baru sering menjanjikan performa lebih kencang atau sintaks lebih elegan. Tapi untuk tim kecil, pertanyaan yang lebih relevan adalah: kalau saya stuck jam 11 malam, apakah ada dokumentasi resmi yang jelas, komunitas yang aktif, dan paket pihak ketiga yang sudah teruji untuk masalah saya? Ekosistem yang matang — banyak paket siap pakai untuk autentikasi, admin panel, antrian job, dan sebagainya — berarti tim kecil tidak perlu membangun ulang hal-hal dasar dari nol.
Contohnya, kombinasi seperti Laravel dengan Filament untuk admin panel memungkinkan satu-dua orang membangun CRUD dan dashboard operasional dalam hitungan hari, bukan minggu, karena sebagian besar pola umum sudah disediakan lewat konvensi:
php artisan make:filament-resource Pasien --generate
Ini bukan promosi satu framework tertentu, tapi ilustrasi prinsipnya: makin banyak "pekerjaan berulang" yang sudah diselesaikan komunitas, makin sedikit waktu tim kecil habis untuk hal yang bukan nilai inti produk.
Ketersediaan Talenta di Pasar
Stack yang canggih tapi langka penggunanya adalah risiko tersembunyi. Saya pernah melihat sendiri bagaimana ketergantungan pada satu orang yang menguasai teknologi niche bisa jadi titik rapuh — begitu orang itu resign atau cuti panjang, tim lain kesulitan melanjutkan. Untuk tim kecil, memilih stack yang cukup populer di pasar kerja lokal punya nilai strategis: lebih mudah merekrut, lebih mudah onboarding, dan lebih mudah mencari bantuan lepas (freelancer atau konsultan) saat dibutuhkan mendadak.
Ini bukan berarti selalu memilih yang paling mainstream. Tapi sebelum mengadopsi teknologi baru, saya biasa bertanya: kalau saya harus merekrut orang untuk maintain ini dalam dua tahun ke depan, seberapa besar kemungkinan saya menemukannya?
Biaya Maintenance, Bukan Hanya Biaya Membangun
Banyak keputusan stack dibuat dengan fokus pada kecepatan membangun versi pertama, padahal biaya sesungguhnya baru terasa setelah aplikasi berjalan bertahun-tahun: upgrade versi, patch keamanan, ketergantungan pada layanan pihak ketiga, dan kompleksitas deployment. Sebagai ilustrasi, stack yang butuh banyak layanan terpisah untuk berjalan (database, cache, message broker, masing-masing dengan versi dan konfigurasi sendiri) akan lebih berat dirawat oleh tim kecil dibanding stack yang bisa dijalankan dengan lebih sedikit komponen bergerak.
Menggunakan container juga membantu, bukan karena "wajib pakai Docker", tapi karena ia membuat environment produksi dan development konsisten, sehingga masalah "jalan di laptop saya tapi tidak di server" jauh berkurang. Struktur sederhana seperti berikut sudah cukup untuk banyak kasus tim kecil:
services:
app:
build: .
db:
image: mysql:8
Yang penting bukan seberapa canggih orkestrasinya, tapi seberapa mudah satu orang baru memahami dan menjalankannya tanpa harus bertanya ke siapa-siapa.
Takeaway
Kalau harus diringkas: pilih stack yang ekosistemnya matang sehingga tim tidak perlu membangun ulang hal dasar, yang talentanya cukup tersedia sehingga tim tidak bergantung pada satu orang, dan yang biaya rawatnya rendah dalam jangka panjang, bukan hanya cepat dibangun di awal. Stack "paling modern" jarang menjadi pilihan terbaik untuk tim kecil — stack yang paling bisa dipertahankan biasanya menang.