GitHub profilimde bir itiraf gizli: Private (gizli) repolarımın arasında, tam olarak sayamadığım kadar yarım kalmış proje var. Bir to-do uygulaması (evet, dünyanın milyonuncu to-do uygulaması). Bir kişisel finans takip aracı. Bir Pomodoro zamanlayıcısı. Bir Markdown editörü. Bir CLI aracı. Bir blog motoru (evet, kendi blog motorumu yazacaktım, şu anda başka birinin yazdığı motoru kullanıyorum). Bir hava durumu uygulaması. Bir müzik çalar. Liste böyle uzayıp gidiyor.

Bu projelerin her birinin bir başlangıç hikayesi vardır ve hepsi aynı şekilde başlar: Duş alırken, yürüyüş yaparken veya gece yatağa uzandığımda aklıma "muhteşem" bir fikir gelir. Heyecanlanırım. Hemen yataktan fırlar, terminali açar ve mkdir super-proje && cd super-proje && git init yazarım. İlk gece çılgınlar gibi kodlarım. İkinci gece de devam ederim. Üçüncü gece hızım düşer. Dördüncü gece "yarın devam ederim" derim. Ve o "yarın" asla gelmez.

Yıllarca kendimi bu döngü yüzünden suçladım. "Disiplinsizim", "Tembel", "Hiçbir şeyi bitiremiyorum" diye kendime kızdım. Ta ki bu kalıbın (pattern) arkasındaki psikolojiyi anlayana kadar.

Bir projenin en heyecanlı anı, başlangıcıdır. Boş bir dosyaya ilk satırı yazmak, mimariyi kafanızda kurmak, teknoloji yığınını (tech stack) seçmek... Bu aşama tamamen yaratıcılıktır ve beyniniz sizi dopaminle ödüllendirir. Ancak proje ilerledikçe, o parlak yaratıcılık aşaması yerini sıkıcı detaylara bırakır. Form validasyonları, hata yönetimi (error handling), responsive tasarım, edge case'ler, testler, deployment konfigürasyonları... İşin %20'si fikir ve mimaridir, %80'i ise o çekici olmayan, sıkıcı detaylardır. Ve beyniniz tam o %80'lik kısma girdiğinizde, size yeni ve çok daha parlak bir fikir fısıldar: "Bırak bunu, şu yeni projeye başlasak çok daha havalı olur!"

Bu, nörolojik olarak bir bağımlılık döngüsüdür. Yeni başlangıçların verdiği dopamin patlamasına bağımlı olursunuz ve hiçbir projenin "sıkıcı orta bölümünü" (messy middle) geçemezsiniz.

Bu döngüyü kırmayı öğrenmem yıllarımı aldı. Bugün uyguladığım kural şu: Aklıma yeni bir fikir geldiğinde hemen kodlamaya başlamıyorum. O fikri bir not defterine yazıyorum ve en az bir hafta bekliyorum. Eğer bir hafta sonra hâlâ o fikirle ilgili heyecan duyuyorsam, o zaman başlıyorum. Ve başladığımda, projenin kapsamını (scope) acımasızca küçültüyorum. "Bir müzik çalar" değil, "Sadece bir oynat/durdur butonu olan, tek bir MP3 dosyası çalan uygulama." Bitti. Deploy. Sonra iterasyon (iteration) ile büyütürüm.

Side project mezarlığı her yazılımcının ortak sırrıdır. Utanmayın, ama o mezarlıktan ders çıkarın. Bir projeyi bitirmek, on projeye başlamaktan her zaman daha değerlidir.