note / complexity-earns-place

Complexity has to earn its place

Aku tidak anti kompleksitas. Aku hanya ingin tahu apa yang benar-benar dibeli olehnya.

kind
thought
written
themes
systems · simplicity · engineering

Aku suka teknologi yang menarik. Itu justru masalahnya.

Mudah sekali melihat distributed system, orchestration, message broker, service mesh, runtime baru, atau bahasa yang sedang naik lalu merasa sebuah project akan lebih serius kalau memakai semuanya.

Tapi produksi mengajariku hal yang kurang glamor: setiap layer baru adalah sesuatu yang suatu hari harus dipahami ketika sedang error.

Karena itu aku mulai memperlakukan complexity seperti anggaran.

Complexity membeli apa?

Aku lebih tenang menambah kompleksitas ketika jawabannya konkret:

  • mengurangi failure domain;
  • memberi isolation yang memang dibutuhkan;
  • menghapus pekerjaan manual yang berulang;
  • membuat batas tanggung jawab lebih jelas;
  • menangani skala yang benar-benar sudah ada;
  • memberi observability yang sebelumnya tidak mungkin.

Kalau jawabannya hanya “lebih scalable” tanpa beban yang memang perlu diselesaikan, biasanya aku memilih menunggu.

Sederhana bukan berarti sedikit teknologi

Sistem sederhana bisa punya banyak komponen. Yang penting hubungan dan alasan keberadaannya dapat dijelaskan.

Sebaliknya, aplikasi dengan tiga dependency saja bisa terasa kompleks kalau tidak ada orang yang tahu mengapa keputusan-keputusan di dalamnya dibuat.

Aku tidak sedang mencari arsitektur paling kecil.

Aku mencari arsitektur yang setiap kerumitannya bisa mempertanggungjawabkan dirinya sendiri.