Tiga Mata Uang Universal: Cara Melihat Karier dan Proyek Software dengan Lebih Jernih
· 8 min

Dalam kehidupan, setiap keputusan bukan hanya soal uang. Resources, Time, dan Flexibility adalah tiga mata uang universal yang membantu kita memahami trade-off dalam programming, karier, dan juga bisnis.
Ketika berbicara tentang pekerjaan, bisnis, atau karier di bidang teknologi, kita sering mengukur keberhasilan dengan satu hal: uang.
Berapa gaji seorang Software Engineer? Berapa nilai kontrak sebuah proyek? Berapa omzet SaaS yang kita bangun?
Padahal uang bukan satu-satunya hal yang kita tukarkan.
Dalam The Personal MBA, Josh Kaufman memperkenalkan konsep Three Universal Currencies atau Tiga Mata Uang Universal: Resources, Time, dan Flexibility.
Hampir setiap keputusan bisnis maupun karier sebenarnya merupakan pertukaran antara ketiga hal tersebut. Konsep ini juga sangat relevan untuk dunia IT dan pemrograman.
1. Resources — Apa yang Kita Miliki #
Resources adalah sumber daya yang dapat kita gunakan untuk mencapai suatu tujuan. Uang adalah salah satunya, tetapi bukan satu-satunya.
Dalam dunia software, resources dapat berbentuk banyak hal.
- Uang
- Server dan infrastructure
- Komputer
- Software berbayar
- Data
- Library dan framework
- API
- Anggota tim
- Pengetahuan teknis
- Reputasi
Bayangkan sebuah perusahaan ingin membuat sistem ERP internal. Mereka mempunyai pilihan untuk membangun semuanya dari awal atau memanfaatkan platform yang sudah ada seperti ERPNext lalu melakukan customization.
Jika semuanya dibangun dari awal, perusahaan mungkin harus mengeluarkan resource untuk authentication, accounting, permissions, workflow, database structure, dan berbagai fitur dasar lainnya.
Dengan memanfaatkan software open-source yang sudah matang, tim dapat menggunakan resources yang telah dibuat oleh komunitas dan memusatkan tenaga pada bagian yang benar-benar unik bagi bisnis mereka.
Programmer pemula sering bertanya: bagaimana cara membuat ini? Programmer berpengalaman juga bertanya: apakah saya benar-benar perlu membuat ini?
Kemampuan menemukan dan menggunakan resource yang sudah tersedia merupakan salah satu bentuk leverage dalam software engineering.
2. Time — Resource yang Tidak Bisa Dikembalikan #
Ada sesuatu yang berbeda dari waktu. Server bisa ditambah, uang yang hilang masih mungkin dicari kembali, dan developer yang keluar bisa digantikan. Tetapi satu jam yang sudah lewat tidak bisa dibeli kembali.
Karena itu, Time merupakan salah satu mata uang paling berharga.
Dalam programming, kita terus-menerus menukarkan waktu. Bayangkan ada bug yang membutuhkan tiga jam untuk diperbaiki secara manual, tetapi tersedia library seharga Rp500.000 yang dapat menyelesaikannya dalam 15 menit.
Pertanyaannya bukan hanya: kenapa harus membayar kalau saya bisa membuat sendiri? Pertanyaannya adalah: apakah Rp500.000 lebih berharga daripada tiga jam waktu saya?
Jawabannya bergantung pada situasi. Untuk developer yang sedang belajar, tiga jam membangun sendiri mungkin merupakan investasi pengetahuan. Untuk engineer yang sedang mengerjakan masalah bisnis bernilai besar, waktu tersebut mungkin lebih baik digunakan untuk pekerjaan dengan impact lebih tinggi.
Automation sebagai Pertukaran Waktu #
Misalnya setiap hari seorang developer harus mengambil data dari ERP, memasukkannya ke spreadsheet, membersihkan data, membuat laporan, lalu mengirimkannya melalui email.
Proses tersebut membutuhkan 30 menit setiap hari. Kemudian dia menghabiskan 6 jam untuk membuat automation yang dapat menjalankan seluruh proses secara otomatis.
Jika pekerjaan tersebut dilakukan selama 200 hari kerja, maka 30 menit dikalikan 200 hari sama dengan sekitar 100 jam.
Kita menukarkan 6 jam hari ini untuk mendapatkan kembali hampir 100 jam di masa depan.
Inilah salah satu alasan automation sangat powerful. Kita menggunakan sedikit Time sekarang untuk mendapatkan lebih banyak Time di masa depan.
3. Flexibility — Kemampuan untuk Mengubah Keputusan #
Mata uang ketiga sering kali paling tidak terlihat: Flexibility.
Flexibility adalah kemampuan untuk mengubah keputusan, berpindah arah, bereksperimen, meninggalkan sesuatu, atau mengambil kesempatan baru.
Dalam software engineering, flexibility sangat erat hubungannya dengan technical decisions.
Bayangkan sebuah startup baru mempunyai 100 pengguna. Tim kemudian membangun arsitektur microservices yang sangat kompleks karena berharap suatu hari mempunyai jutaan pengguna.
- Kubernetes
- Message queue
- Banyak service
- Distributed tracing
- Infrastructure yang kompleks
Secara teknis keputusan tersebut mungkin terlihat mengesankan. Tetapi sekarang setiap perubahan produk membutuhkan koordinasi banyak service dan infrastructure.
Startup tersebut telah mengorbankan Flexibility untuk kebutuhan scalability yang sebenarnya belum mereka miliki.
Pada tahap awal bisnis, kemampuan untuk berubah dengan cepat sering kali jauh lebih berharga daripada kemampuan menangani jutaan pengguna yang belum ada.
Solusi yang lebih sederhana sering memberikan flexibility lebih besar karena biaya untuk berubah masih murah.
Ketiga Mata Uang Ini Selalu Saling Ditukar #
Hal menarik dari Three Universal Currencies adalah kita hampir tidak pernah mendapatkan semuanya sekaligus. Biasanya selalu ada trade-off.
Resources → Time #
Anda bisa mengerjakan sebuah proyek sendirian selama enam bulan atau membayar beberapa developer agar proyek selesai dalam dua bulan. Dalam situasi tersebut, kita menukarkan Resources untuk mendapatkan Time.
Time → Resources #
Anda dapat membeli SaaS berbayar atau menghabiskan beberapa hari mencari dan mengonfigurasi alternatif open-source. Dalam kasus kedua, kita menukarkan Time untuk menghemat Resources.
Resources → Flexibility #
Menggunakan managed cloud service mungkin lebih mahal dibandingkan mengelola semuanya sendiri, tetapi kita mendapatkan kemudahan untuk scaling, mengganti region, menambah resource, atau menghapus infrastructure dengan cepat.
Flexibility → Resources #
Sebuah perusahaan mungkin menawarkan bonus besar dengan kontrak kerja beberapa tahun. Kita memperoleh Resources lebih besar dengan mengorbankan sebagian Flexibility.
Tidak ada pertukaran yang otomatis benar atau salah. Hal terpenting adalah menyadari mata uang apa yang sedang kita keluarkan dan apa yang kita dapatkan sebagai gantinya.
Contoh: Membangun Produk SaaS #
Misalnya kita ingin membangun SaaS untuk membantu perusahaan mengelola inventori.
Pilihan A — Build Everything From Scratch #
Kita membangun authentication, database, billing, dashboard, notification, deployment, dan monitoring sendiri.
Biaya berupa uang mungkin terlihat lebih rendah jika kita mengerjakan semuanya sendiri, tetapi biaya Time menjadi sangat besar.
Pilihan B — Menggunakan Banyak SaaS #
Kita menggunakan authentication service, managed database, payment gateway, email service, dan cloud hosting.
Resources berupa uang meningkat, tetapi sebagai gantinya kita memperoleh Time dan Flexibility sehingga produk dapat diluncurkan lebih cepat.
Pilihan C — Kombinasi #
Pendekatan yang sering lebih masuk akal adalah menggunakan solusi yang sudah tersedia untuk masalah umum dan membangun sendiri bagian yang menjadi competitive advantage.
- Authentication → gunakan solusi yang sudah ada
- Payment → gunakan payment gateway
- Email → gunakan provider
- Inventory algorithm → bangun sendiri jika menjadi keunggulan produk
- ERP integration → bangun sendiri jika menjadi core capability
- Business workflow → bangun sesuai kebutuhan unik bisnis
Jangan menghabiskan Resources dan Time untuk membangun sesuatu yang bukan keunggulan utama bisnis Anda.
Tiga Mata Uang dalam Karier Programmer #
Three Universal Currencies tidak hanya berguna untuk software architecture. Konsep ini juga sangat berguna ketika menentukan arah karier.
Bayangkan Company A menawarkan gaji lebih tinggi, tetapi sering lembur, harus datang ke kantor, menggunakan teknologi yang sangat spesifik, dan menyisakan sedikit ruang untuk proyek lain.
Company B menawarkan gaji sedikit lebih rendah, tetapi remote, mempunyai jam kerja lebih fleksibel, memberikan banyak kesempatan belajar, dan memungkinkan kita membangun side project.
Jika satu-satunya ukuran adalah uang, Company A mungkin terlihat lebih baik. Tetapi jika Resources, Time, dan Flexibility diperhitungkan, keputusan tersebut menjadi jauh lebih kompleks.
Flexibility dari Company B dapat memberikan kesempatan untuk membangun SaaS, mengembangkan open-source project, mempelajari teknologi baru, mengambil freelance project, atau membangun bisnis sendiri.
Jangan Hanya Mengoptimalkan Uang #
Salah satu jebakan terbesar dalam karier adalah mengoptimalkan satu mata uang sambil mengabaikan dua lainnya.
Seorang programmer dapat memiliki gaji sangat tinggi tetapi hampir tidak mempunyai waktu. Seorang freelancer mungkin mempunyai lebih banyak waktu tetapi pendapatan tidak stabil. Seorang founder mungkin memiliki financial upside besar tetapi kehilangan flexibility selama bertahun-tahun karena harus terus menjalankan perusahaan.
Tidak ada kombinasi yang selalu terbaik. Yang ada adalah kombinasi yang paling sesuai dengan tujuan kita pada fase kehidupan tertentu.
Sebuah Mental Model untuk Mengambil Keputusan #
Ketika mengambil keputusan dalam programming, proyek, bisnis, atau karier, jangan hanya bertanya: berapa harganya?
Gunakan tiga pertanyaan berikut sebagai mental model.
- Resources: Berapa banyak resource yang harus saya keluarkan atau dapatkan?
- Time: Berapa banyak waktu yang harus saya korbankan atau dapatkan kembali?
- Flexibility: Apakah keputusan ini membuat pilihan saya di masa depan semakin banyak atau semakin sedikit?
Pertanyaan tentang Flexibility sering kali paling mudah dilupakan, padahal dunia teknologi berubah sangat cepat. Framework berubah, AI berkembang, business requirement berubah, dan kebutuhan customer berubah.
Kesimpulan #
Dalam dunia software, kita sering terobsesi dengan optimasi. Kita mengoptimalkan query, server, bundle size, biaya cloud, dan performance.
Tetapi ada sesuatu yang lebih penting untuk dioptimalkan: bagaimana kita menggunakan Resources, Time, dan Flexibility dalam hidup dan pekerjaan.
Resources membantu kita melakukan sesuatu. Time menentukan berapa banyak hal yang bisa kita lakukan. Flexibility menentukan seberapa bebas kita memilih apa yang akan kita lakukan berikutnya.
Programmer yang baik bukan hanya seseorang yang mampu menulis kode. Engineer yang matang memahami bahwa hampir setiap keputusan teknis pada akhirnya merupakan sebuah trade-off.
Mata uang apa yang sedang saya keluarkan, dan mata uang apa yang sebenarnya saya dapatkan sebagai gantinya?