Klien seringkali tidak pernah dipaksa untuk benar-benar memikirkan domainnya secara terstruktur, apalagi menjelaskannya secara detail kepada developer yang tidak tahu apa-apa tentang domain tersebut. Seringkali, klien tidak memiliki definisi yang jelas untuk konsep yang digunakan bisnis mereka sehari-hari, atau memiliki banyak istilah untuk konsep yang sama.
Pengembang mengalami nasib yang lebih buruk lagi. Mereka juga cenderung memiliki konsep yang kabur dan memiliki banyak nama untuk hal yang sama. Tergantung di mana Anda melihat kode atau dokumen (jika tersedia), Anda mungkin melihat: “bank account”, “account”, “bank_account”, “bankAccount”, “BankAccount”. Lebih buruk lagi: “BA”, “bank_acc”, “acnt”. Dalam hal penyimpanan, Anda akan menemukan “Proyek”, “Baris”, “Catatan”, dan “Model”. Ada juga sekumpulan kata untuk sekumpulan rekening bank: “daftar”, “array”, “koleksi”, “rekening bank”, “acntset”… Anda mengerti.
Bahkan pada proyek kecil sekalipun, hal ini dapat menghambat komunikasi. Pengembang, manajer proyek, klien, dan pihak lain yang terlibat dalam proyek perlu berkomunikasi tentang bidang ini, namun setiap orang menggunakan terminologi yang berbeda namun sama-sama kabur.
bahasa umum
Untuk mengatasi masalah ini, Anda harus mulai membangun bahasa yang ada di mana-mana sejak Anda mulai berbicara dengan pelanggan Anda. Penggunaan satu istilah untuk mewakili satu konsep, baik itu benda, hubungan, atau tindakan. Gunakan terminologi yang sama persis dalam kode, file, dan ucapan, dan eja dengan ketat, hingga huruf besar dan kecil. Itu selalu “rekening bank”, bukan “rekening bank”. Jangan gunakan singkatan karena akan membuat semuanya sulit dibaca (kecuali singkatan yang sangat umum seperti “ISBN”).
Anda harus disiplin dalam hal ini dan mengharapkan semua orang yang terlibat untuk mengikuti aturan yang sama: mengoreksi pelanggan ketika dia menggunakan kata yang berbeda, memperbaiki ejaan ketika seseorang membuat kesalahan, dan membuat perubahan pada kode orang lain. Beberapa orang mungkin merasa terganggu dengan desakan Anda pada awalnya, namun mereka akan segera terbiasa menggunakan bahasa ini.
Pertahankan bahasa yang meresap ini sepanjang proyek. Ketika konsep berubah, atau pemahaman Anda tentang domain berubah, sesuaikan bahasanya untuk memastikan bahasa tersebut berfungsi di mana saja dan memberitahu semua orang.
keuntungan
Anda akan segera menyadari bahwa komunikasi antara semua orang di proyek akan menjadi lebih mudah. Jika ada yang kurang jelas, Anda dapat merujuk ke dokumentasi. Bagi pendatang baru di proyek ini, akan lebih mudah untuk memulai. Kode menjadi lebih mudah dibaca dan dipahami karena konsepnya lebih sedikit dan didefinisikan dengan jelas. Aplikasi ini tidak terlalu rentan terhadap regresi dan perubahan atau pemfaktoran ulang sangatlah mudah.