Kenapa Sistem ‘Nampak Simple’ Selalu Jadi Punca Projek Rosak (Realiti Dunia Programmer vs ‘Template Developer’)
Published:
Updated:
Realiti Dunia Programmer vs "Template Developer"
Aku pernah terdengar satu sesi sembang dekat coffeehouse. Ringkas tapi sangat biasa dalam dunia software.
“Ini kan simple je, payment split RM500 jadi RM200, baki RM300.”
Dan dari situ terus keluar ayat:
“Programmer ni tak faham benda simple.”
Masalahnya bukan pada ayat itu.
Masalahnya adalah
apa yang mereka tak nampak di belakang sistem tu.
Bila kau dah lama bina system from scratch, kau akan sedar satu benda:
yang nampak simple selalunya paling banyak perangkap.
Mereka bukan menilai kompleksiti, mereka sedang bercakap tentang keyakinan
Orang luar tak evaluate sistem.
Mereka evaluate siapa yang lebih yakin.
Bila someone kata “ini simple je”, itu bukan technical statement.
Itu statement ego.
Realiti sistem financial:
- race condition
- data inconsistency
- partial payment state
- rollback scenario
- audit trail
Tapi semua itu tak kelihatan dalam sembang 30 saat.
Simplification itu cara orang luar survive kompleksiti
Orang bukan tech akan compress semua benda jadi “setting je”.
Bukan sebab mereka ada kebodohan.
Tapi sebab otak manusia memang tak boleh simulate full system design dalam kepala.
Contoh:
- wallet system = “topup & bayar”
- ledger = “duit masuk keluar”
- queue system = “process lambat sikit”
Tapi untuk builder, setiap “simple label” itu sebenarnya satu ecosystem.
Sistem yang bagus memang nampak mudah sampai dia gagal
Ini paradoks paling penting.
Kalau sistem kau nampak:
- smooth
- simple
- user tak confuse
Itu tanda kau sedang sembunyikan complexity dengan betul.
Tapi bila system design lemah:
- bug mula muncul bila user ramai
- data drift berlaku
- payment mismatch
- transaction duplicate
Dan masa itu semua orang mula tanya:
“Kenapa boleh jadi macam ni?”
Jawapan sebenar: sebab dari awal ia bukan simple.
Template system selalu menang di awal, tapi kalah di real production
Ini realiti.
Template system memang nampak hebat:
- cepat siap
- murah
- UI dah cantik
- flow dah ready
Tapi masalah dia:
Ia dibina untuk “average use case”, bukan real business edge cases.
Bila masuk production:
- payment flow ada exception
- business rules berubah
- scaling berlaku
- integrasi API luar tak konsisten
Di sinilah template mula runtuh.
Bukan sebab template itu “tak bagus”
tapi sebab ia tak pernah direka untuk real chaos dunia bisnes.
Kenapa ‘template developer’ dapat reputasi MIA (Missing In Action)
Ini yang orang jarang cakap.
Template developer biasanya:
- deliver cepat
- deploy cepat
Tapi bila system mula bermasalah:
- tak boleh debug edge case
- tak faham architecture asal
- tak tahu kenapa data corrupt
- tak ada ownership penuh sistem
Akhirnya client rasa:
“Dah hilang. Tak boleh contact.”
Bukan sebab mereka jahat.
Tapi sebab mereka tak bina sistem tu dari fundamental.
Sebab bila kau tak faham root architecture, kau tak boleh maintain chaos.
Kesimpulan: Kenapa semua ini penting untuk kita sebagai system builder
Realiti paling penting dalam dunia software:
Orang yang nampak “simple” selalu bukan orang yang tanggung complexity itu.
Dan orang yang betul-betul develop system:
- tak banyak bercakap
- tak overclaim
- tapi akan sentiasa muncul bila system mula “crash di dunia realiti”
barulah nampak ayat
Kalaulah jumpa awak dari awal
Kalau kau builder:
jangan terlalu peduli siapa kata apa.
Sebab dalam production:
- ego tak scale
- template tak selalu survive
- tapi sistem yang betul akan terus jalan walaupun semua orang tak faham kenapa ia kompleks
