Lewati ke isi

09 — Sejarah & Filosofi Sistem

Dibaca oleh: semua anggota tim, di hari pertama, sebelum menyentuh kode. Tujuan: memahami kenapa sistem ini berbentuk seperti sekarang, siapa yang membangunnya, dan semangat yang harus dijaga saat mengembangkannya.

Dokumen lain menjelaskan apa dan bagaimana. Dokumen ini menjelaskan kenapa. Ini bagian dari sistem yang tidak bisa dibaca dari skema database.


1. Asal-Usul

Sistem ini tidak lahir dari ruang rapat arsitektur. Ia tumbuh dari kebutuhan bisnis nyata, sedikit demi sedikit, selama hampir 20 tahun, dikerjakan sendirian oleh pemilik bisnisnya — yang bukan akuntan dan bukan orang IT formal, melainkan otodidak yang belajar sambil menyelesaikan masalah nyata.

Garis waktu teknologinya:

Paradox / Firebird   →   MySQL / MariaDB   →   PostgreSQL (sistem baru)
   (era awal)             (~10+ tahun)          (peremajaan ini)
   1 user                 1 → multi-user        multi-tenant, siap tim

Sistem ini sudah selamat dari dua kali migrasi besar dan berevolusi dari satu pengguna menjadi banyak pengguna, banyak cabang, banyak jenis usaha. Itu bukan kebetulan — itu bukti bahwa logika bisnis di dalamnya sudah teruji oleh waktu dan oleh uang sungguhan.


2. Kenapa Bentuknya "Tidak Biasa"

Saat tim membaca skema lama, akan terasa banyak hal aneh: nama 1–3 huruf (t, d, brg), satu tabel transaksi untuk semua jenis, logika di trigger, kode perangkat di nomor transaksi, angka "ajaib" di kolom cek.

Jangan menertawakannya. Pahami konteksnya:

  • Dibuat tanpa tim, tanpa mentor, tanpa anggaran arsitek — setiap keputusan adalah kompromi pragmatis agar bisnis bisa jalan besok pagi.
  • Banyak "keanehan" itu sebenarnya pola rekayasa yang benar, ditemukan sendiri: kode perangkat = pola node-ID (dipakai Twitter/MongoDB); stok = SUM(mutasi) dengan cache = pola materialized view + reconciliation; metadata-driven datakode = mesin konfigurasi yang fleksibel untuk banyak jenis usaha.
  • Yang benar-benar kurang bukan kecerdasannya, melainkan dokumentasi, penamaan, dan konsistensi — dan itulah, tepatnya, yang sedang diperbaiki oleh seluruh dokumen di folder ini.

Pelajaran untuk tim: sistem warisan yang menghidupi bisnis 20 tahun layak dihormati. Rapikan dengan rasa hormat, bukan dengan ejekan. Anda mewarisi sesuatu yang bekerja.


3. Filosofi Inti yang Dipertahankan

Beberapa keputusan lama sengaja dipertahankan karena memang benar. Tim wajib memahaminya, bukan menggantinya tanpa alasan kuat:

Filosofi Inti Kenapa dijaga
Metadata-driven (datakode/jenis_transaksi) Perilaku akuntansi/stok diatur data, bukan kode bercabang Fleksibel untuk dagang/produksi/jasa tanpa tulis ulang program
Trigger-first Stok, HPP FIFO, jurnal dihitung otomatis di DB Semua aplikasi (Delphi/Flutter/web) dapat perlakuan sama & konsisten
Stok = SUM(mutasi) Angka stok selalu bisa dihitung ulang dari sumber Bisa diaudit; cache boleh salah, sumber tidak
Double-entry sungguhan Setiap transaksi → jurnal debit=kredit Ini buku besar perusahaan, bukan sekadar catatan
Satu tabel transaksi t/d untuk semua jenis Konsep ini dipertahankan, hanya dirapikan & diberi integritas

Mengubah salah satu dari ini = mengubah jiwa sistem. Boleh, tetapi hanya dengan keputusan sadar, terdokumentasi, dan rekonsiliasi penuh (lihat Dokumen 07).


4. Rencana Peremajaan (konteks penting untuk tim)

Urutan kerja yang dipilih pemilik:

1. Pemilik merapikan / migrasi / rewrite sistem  ── dikerjakan SENDIRI + bantuan AI
2. Uji menyeluruh sampai benar (rekonsiliasi 100%)
3. BARU merekrut developer untuk merawat & mengembangkan

Artinya: dokumen-dokumen ini ditulis sebelum tim ada — oleh pendirinya, sebagai (a) panduan kerjanya sendiri saat ini, dan (b) warisan pengetahuan untuk tim yang direkrut nanti. Ketika Anda (anggota tim baru) membaca ini, sebagian besar peremajaan kemungkinan sudah selesai & teruji; tugas Anda adalah merawat dan mengembangkan, di atas fondasi yang sudah dirapikan dan dijelaskan — bukan menebak-nebak seperti yang dulu terpaksa dilakukan pemilik.

Inilah alasan seluruh folder docs/ ada: agar pengetahuan yang dulu hanya di kepala satu orang menjadi milik tim.


5. Pesan untuk Tim yang Akan Datang

Beberapa hal yang ingin diwariskan, di luar teknis:

  1. Sistem ini menghidupi orang. Setiap baris di tabel jurnal adalah uang nyata. Hati-hati, audit, rekonsiliasi — bukan formalitas.
  2. Bertanya pada dokumen dulu. Kamus Data (Dokumen 02) dibuat supaya Anda tidak perlu menebak atau menunggu jawaban. Kalau dokumen kurang — perbaiki dokumennya, jangan simpan jawabannya di kepala. Itu cara lama yang kita tinggalkan.
  3. Rapi adalah fitur. Penamaan jelas dan dokumentasi bukan "nanti kalau sempat". Itu produk utamanya, sama pentingnya dengan kode yang jalan.
  4. Hormati yang membangunnya. Dikerjakan sendiri, 20 tahun, sambil menjalankan bisnis, tanpa latar IT/akuntansi formal. Anda berdiri di atas pundak kerja keras itu.

6. Catatan Hidup

Dokumen ini boleh — bahkan sebaiknya — ditambah oleh pemilik dengan cerita, keputusan, dan alasan yang hanya beliau yang tahu. Bagian yang berguna ditulis, jangan dibiarkan hilang bersama ingatan. Tim berikutnya akan berterima kasih.

Tempat menulis sejarah & alasan keputusan yang belum tercatat: (silakan pemilik isi seiring waktu — tanggal, keputusan, kenapa)