6.5 Business Capability vs Technical Component
Setelah mengenal building block, kita perlu membedakan mana yang bersifat teknis dan mana yang merupakan kemampuan bisnis. Ini bukan sekadar permainan kata. Ini soal cara Anda berbicara dengan pemangku kepentingan yang berbeda.
Bayangkan Anda sedang rapat dengan kepala bagian penjualan. Dia bilang, "Kita perlu kemampuan untuk mengelola pesanan pelanggan dengan lebih baik." Anda sebagai arsitek mungkin langsung berpikir tentang order service API, database pesanan, dan antarmuka input data. Tapi bagi dia, yang dimaksud adalah kemampuan bisnis: proses menerima pesanan, memeriksa ketersediaan barang, mengonfirmasi ke pelanggan, dan melacak status pengiriman.
Di sinilah banyak arsitek muda terjebak. Mereka mendengar "mengelola pesanan" dan langsung membayangkan komponen teknis. Padahal, kepala bagian penjualan tidak peduli apakah pesanan disimpan di PostgreSQL atau MongoDB. Dia peduli pada hasil: pesanan masuk, diproses, dan pelanggan puas.
Business capability adalah kemampuan yang bisa dilihat dan dirasakan oleh pengguna atau organisasi. Sifatnya stabil dan tidak bergantung pada teknologi tertentu. Contohnya: mengelola pesanan pelanggan, memproses permintaan layanan, atau menghitung gaji karyawan. Capability ini akan tetap ada meskipun aplikasi yang mendukungnya berganti.
Technical component adalah cara teknis untuk mewujudkan capability tersebut. Sifatnya lebih konkret dan bisa berubah seiring waktu. Order service API, database pesanan, antarmuka input data, dan logika validasi adalah technical component. Mereka adalah building block yang membentuk aplikasi.
Kebingungan antara keduanya sering menyebabkan kesalahan strategis. Organisasi berkata, "Kita butuh aplikasi CRM baru," padahal yang sebenarnya mereka butuhkan adalah capability mengelola hubungan pelanggan yang lebih baik. Aplikasi CRM hanyalah salah satu cara mewujudkannya. Mungkin capability itu bisa dipenuhi dengan memperbaiki integrasi antara sistem yang sudah ada, tanpa perlu aplikasi baru.
Saat memetakan building block, tanyakan pada diri sendiri: apakah ini sesuatu yang dilihat pengguna sebagai kemampuan, atau ini cara teknis untuk mewujudkannya? Jika Anda bicara dengan direktur operasi, gunakan bahasa capability. Jika Anda bicara dengan engineer, gunakan bahasa technical component. Keduanya benar, tetapi untuk audiens yang berbeda.
Implikasinya untuk pekerjaan Anda sebagai arsitek: jangan pernah menyamakan aplikasi dengan capability. Aplikasi adalah wadah teknis. Capability adalah kemampuan organisasi. Satu capability bisa diwujudkan oleh beberapa aplikasi. Satu aplikasi bisa mendukung beberapa capability. Memahami perbedaan ini membuat Anda bisa berkomunikasi dengan bisnis tanpa terjebak detail teknis, dan sebaliknya, menjelaskan ke tim teknis tanpa kehilangan arah bisnis.
Setelah Anda bisa membedakan mana capability dan mana technical component, langkah selanjutnya adalah memetakan building block ke pengguna, proses, dan data yang terkait. Sebab, building block tidak berdiri sendiri. Mereka hidup dalam konteks organisasi.
Sebagai gambaran visual, perhatikan diagram berikut yang membandingkan kedua konsep tersebut.
