Saya menghabiskan masa berbulan-bulan membina jadual perbandingan sebelum saya menyedari bahawa pangkalan data saya sedang menipu saya.
Antaramuka kelihatan baik. Baris yang kemas, tanda semak yang rapi, tanda X merah di mana sesuatu alatan tidak mencukupi. Pelawat menatal melaluinya dan sesekali mengklik. Namun di sebalik permukaan, skema tersebut secara senyap merosakkan setiap kesimpulan. Saya telah membina UI yang cantik di atas data yang buruk.
Perangkap Boolean
Halaman perbandingan biasanya bermula dengan corak yang jelas. Anda mencipta grid di mana baris adalah ciri-ciri, lajur adalah produk, dan setiap sel memegang nilai boolean. True bermaksud alatan itu memilikinya. False bermaksud ia tidak memilikinya. Untuk seketika, ini terasa teratur. Kemudian anda cuba membandingkan dua alatan pengurusan projek, atau tiga pangkalan data awan, atau empat gerbang API, dan grid tersebut mula memberontak.
Sel boolean tidak dapat membawa nuansa. Apabila sel menunjukkan false, ia boleh bermaksud lima perkara yang berbeza sama sekali. Mungkin alatan itu benar-benar kekurangan keupayaan tersebut. Mungkin ia menyelesaikan masalah yang sama melalui mekanik yang berbeza. Mungkin ciri itu wujud tetapi terhad di sebalik tembok berbayar (paywall) perusahaan. Mungkin ia memerlukan pemalam (plugin) yang anda tidak perasan. Atau mungkin anda sekadar terlupa untuk mengesahkannya, dan tanda X merah itu hanyalah pengganti bagi ketidakpastian anda sendiri.
Ini penting kerana pengguna mempercayai grid perbandingan untuk membuat keputusan yang melibatkan kos tinggi. Apabila anda menandakan alatan berasaskan CLI sebagai tidak mempunyai kolaborasi masa nyata, anda mungkin bermaksud ia tidak mempunyai perkongsian kursor secara langsung. Namun, alatan yang sama mungkin menggunakan aliran kerja berasaskan cawangan (branch-based workflows) dan barisan semakan (review queues) untuk mencapai hasil yang sama tepat. Menandakannya sebagai false merendahkan pilihan reka bentuk menjadi satu kecacatan. Lakukan perkara itu pada dua puluh ciri dan anda bukan lagi membandingkan dua alatan. Anda telah mengisytiharkan salah satunya rosak.
Skema boolean juga melatih anda untuk berfikir dalam kosa kata vendor dan bukannya keperluan pengguna. Jika baris anda meminjam nama daripada peneraju kategori, anda akhirnya akan bertanya sama ada setiap pesaing mempunyai Workspaces kerana Notion memanggilnya Workspaces. Alatan lain memanggilnya Projects. Alatan ketiga tidak mempunyai bekas (container) khusus sama sekali, tetapi membenarkan anda memberikan kebenaran pada fail individu sehingga anda mencapai pengasingan yang sama. Nama baris anda memaksa setiap produk masuk ke dalam model mental peneraju, yang mana ia memudahkan gergasi pasaran tetapi tidak adil kepada orang lain.
Kosa Kata yang Lebih Baik untuk Status
Penyelesaiannya bermula dengan jenis data itu sendiri. Berhenti menyimpan boolean. Simpan medan status dengan kosa kata yang eksplisit.
Pertimbangkan enam keadaan ini.
Full bermaksud alatan tersebut mengendalikan tugas tanpa jalan pintas atau pembelian tambahan.
Partial bermaksud ia mengendalikan sebahagian daripadanya, atau mengendalikannya hanya selepas anda mengkonfigurasi sesuatu yang rumit. Di sinilah kebanyakan perbandingan menyembunyikan ketidaktepatan. Alatan yang menawarkan penyulitan (encryption) tetapi hanya semasa data tidak aktif (at rest) layak mendapat Partial, bukan Full.
Different Model bermaksud masalah tersebut diselesaikan, cuma bukan dengan cara yang dilakukan oleh peneraju kategori. Alatan CLI dengan cawangan (branches) dan semakan (reviews) tergolong di sini. Begitu juga dengan pangkalan data yang menggunakan replika bacaan (read replicas) dan bukannya sambungan tunggal berpusat (single pooled connection). Keadaan ini mengekalkan kebijaksanaan reka bentuk produk dan bukannya menghukumnya kerana tidak meniru pesaing.
Not Applicable bermaksud konsep itu sendiri tidak terpakai untuk jenis alatan ini. Platform fungsi tanpa pelayan (serverless function platform) tidak memerlukan storan tempatan yang kekal seperti mana mesin maya (virtual machine). Memaksa nilai false di situ adalah kekeliruan kategori.
Absent bermaksud anda telah menyemak, dan keupayaan tersebut memang tiada. Tiada jalan pintas, tiada pemalam, tiada aliran kerja alternatif. Jurang itu benar-benar wujud.
Unknown bermaksud anda belum mengesahkannya
