içeriğe atla

Plan dokümanı taahhüt değil, niyettir

Bir projenin planlama dokümanında hedef mimari olarak Redis, Elasticsearch, GraphQL, SignalR, Kubernetes, PostgreSQL, Material-UI, Redux Toolkit gibi bir liste sayılmış. Gerçek kodda ise SQL Server, Tailwind CSS, düz useState/useApi hook’ları var — Redux yok, React Query yok.

İlk bakışta bu bir tutarsızlık gibi görünebilir, “plana uyulmamış” diye okunabilir. Ama tersini savunmak daha doğru: bir planlama dokümanı, ölçek büyüdüğünde nereye gidilebileceğinin haritası. Bugünün ihtiyacı için Redis kurmak, henüz o ölçekte olmayan bir sistem için erken karmaşıklık eklemek olurdu.

Bunu neden önemsiyorum: plan dokümanlarını okurken “bu yazılmış, o yüzden yapılmalı” varsayımına kolayca düşülüyor. Oysa bir plan dokümanının işi, ölçeklendirme ihtiyacı gerçekten doğduğunda “bu ihtimali daha önce düşünmüştük, işte o zamanki gerekçe” diye geri dönülecek bir referans olmak — bugünden taahhüt almak değil. Aradaki fark, dokümanı “yapılacaklar listesi” gibi mi yoksa “olası yönler” gibi mi okuduğunla ilgili. Bir mimari kararı, ihtiyaç ortaya çıkmadan almak genelde erken optimizasyonun başka bir adı oluyor.