UDEHA
İcra

Erken Optimizasyon: Henüz Var Olmayan Kullanıcılar İçin İnşa Etmek

Gerçekte nasıl görünür

Mimarini ayrıntısıyla anlatabiliyorsun. Devralma senaryosu, kuyruk, önbelleğin neden orada durduğu, bir işçi süreç iş ortasında ölünce ne olduğu. İyi bir tasarım. Bundan memnun olmakta haklısın.

Müşterini aynı ayrıntıyla anlatamıyorsun. Kim olduğunu bir cümleyle, belki iki cümleyle söyleyebilirsin ve o cümle beş aydır değişmedi, çünkü onu değiştirecek hiçbir şey olmadı.

Geçen haftayı bir kod yolunu hızlandırmakla geçirdin. O yol günde yaklaşık on bir kez çalışıyor ve yavaş değildi. İki gerçeği de biliyorsun. Yine de yaptın ve uzun zamandır geçirdiğin en verimli hafta gibi hissettirdi.

Uygulamanla bir servis sağlayıcı arasında, sonradan sağlayıcıyı değiştirebilmen için bir soyutlama katmanı var. İkinci sağlayıcıyı seçmedin. Fiyatını almadın. Hiçbir şey ona ihtiyacın olacağını ima etmedi.

Demoya bir hafta var ve sen veri katmanını yeniden yazıyorsun, çünkü mevcut hâli "dayanmaz". Tam olarak neye dayanmayacağı, henüz bir sayıya bağlamadığın bir soru — üstelik sen her şeyi sayıya bağlayan birisin.

Ve işin içinde belirgin bir rahatlama var. Editörü altyapı problemi üzerinde açtığında göğsünde bir şey yerine oturuyor. Bunu, yirmi olası müşteriye yazman gereken sekmeyi açmanın nasıl hissettirdiğiyle karşılaştır.

Bu kimlerin başına gelir

Bu, ölçeğin gerçek olduğu bir yerden gelen mühendislerde sık görülür.

Kötü bir sorgunun koca bir bölgeyi düşürdüğü bir şirkette yıllar geçirdiysen, içgüdülerin tam da şimdi korunmaya çalıştığın şeyi cezalandıran bir ortamda şekillendi. O içgüdüler orada doğruydu. Şimdi de yanlış değil — erken, ki bu farklı bir sorundur ve içeriden hissedilmesi çok daha zordur, çünkü erken olmak hazırlıklı olmakla birebir aynı görünür.

Pazara açılma işinden rahatsız olan kurucularda sıktır. İnşa etmek, yetkin olduğun ve ölçütü kendinin koyduğu yerdir. Satmak, herkesin gözü önünde acemi olduğun yerdir. Listesinde ikisi de olan bir gün verildiğinde, hemen hemen herkes zaten iyi olduğu odaya doğru yürür.

Ve zanaatı ciddiye alan insanlarda sıktır — yazılımın nasıl kurulması gerektiğine dair gerçek görüşleri olan, kestirmelerin on sekiz aylık faiz ödemesine dönüştüğünü görmüş insanlarda. O deneyimin değeri vardır. Aynı zamanda "önce düzgün yapalım" cümlesini tartışılamaz kılan inancın ta kendisidir.

Onu ne tetikler

Büyük altyapı hamlesine başlamadan bir gün önce ne olduğuna bak.

Çoğu zaman pazarla geçen zor bir temastır. Cevapsız kalan bir e-posta turu. Kibarca hiçbir yere varmayan bir görüşme. Fiyat hakkında o cümleyi kuran bir müşteri. Felaket değil — yalnızca birkaç saatlik kanıt: güvendiğin talep henüz kendini göstermedi. Altyapı işi, bu hissi kesmenin en erişilebilir yoludur.

Bazen bir hikâyedir. Bir olay raporu, yük altında çöken bir lansman hakkında bir başlık, sunucuları eridiği için anını kaçıran bir şirket. Hikâye doğrudur ve kullanıcıları zaten olan bir şirket hakkındadır. Dersi aldın, ön koşulu atladın.

Bazen de yaklaşan lansmanın kendisidir. Ya tutarsa. Bu düşüncenin motive etmesi beklenir; belirli bir titizlikteki insanda tersini yapar: herkesin gözü önünde, ölçekte başarısız olmanın canlı bir resmini üretir ve bir haftalık sağlamlaştırma, o resmi durdurma biçimidir.

Üçünün de altında tek bir koşul var. Müşteri tarafında bir sonraki adımın belirsiz ve reddedilebilir. Altyapı tarafında bir sonraki adımın net, tamamen senin kontrolünde ve bir veritabanı şemasını kimse reddedemez.

Neden devam eder

Mekanizma, tek başına kapatabildiğin bir geri bildirim döngüsüdür.

Altyapı işinin dürüst ve anlık bir ödülü vardır: test geçer, ölçüm iyileşir, diyagram sadeleşir. Ölçütü sen koyarsın, sen karşılarsın, karşıladığını bilirsin. Müşteri işi bunun hiçbirini sunmaz. E-postayı gönderir, beklersin. Sinyal yavaş, gürültülü ve çoğu zaman kendi yorumlaman gereken bir sessizliktir. Elindeki iki emek türünden biri, "yetkinim" hissini güvenilir biçimde öder; diğeri çoğunlukla ödemez.

Sonra asıl para kaybettiren kısım gelir: zamanlama. Ölçek problemleri kazanılır. Yalnızca bir şey zaten çalışıyorsa var olurlar. Onları önceden çözerek, en kıt kaynağını — kalan aylarını — gelmeyi kabul etmemiş bir geleceğe karşı savunmaya harcarsın. Talep konusunda yanılıyorsan altyapı bedavaya kuruldu ve değersizdi. Talep konusunda haklıysan, yük için yeniden yazmak bir kurucunun karşılaşabileceği en iyi sorundur ve o yeniden yazımı finanse edecek geliri de olurdu.

Açıkça söylenmeye değer bir bilgi sorunu da var. Gerçek yük altında neyin kırılacağına dair bilgi henüz hiçbir yerde yok. Bir yazıda değil, tasarımından da türetilemez. Onu yalnızca gerçek trafik üretir. Yani şu an yaptığın optimizasyon bir tahmindir — ölçmenin araçları, titizliği ve özgüveniyle yapılan bir tahmin. Bu kadar ikna edici olmasının nedeni de budur.

Çerçeve de işi mühürler. Bu iş, tanıyabileceğin hiçbir biçimde erteleme değildir; çünkü kendi ürününde, iyi yapılmış, gerçek mühendisliktir. Kaçınma olarak bu kadar iyi çalışmasının sebebi tam olarak budur. Sen dahil kimse, umursamaz görünmeden ona "boşa geçmiş bir hafta" diyemez.

Gerçekten ne işe yarar

Bir sonraki mimari kararla arana tek bir soru koy: bu, sahip olduğum bir sorun mu, yoksa hayal ettiğim bir sorun mu? Görmezden gelemeyeceğin bir yere yaz ve editörü açmadan önce yüksek sesle cevapla. Çoğu zaman dürüst cevap anında gelir ve kendini söylerken duymak yeterlidir.

Sonra hayal edilen soruna bir sayı ver. Mevcut sürüm hangi noktada kırılıyor — kaç kullanıcı, kaç istek, ne kadar veri? Sayıyı yaz, yanına da bugünün sayısını yaz. Bugünün sayısı eşiğin yüzde biriyse bir yargıda bulunmuş olmazsın; öğrenmiş olursun. İkiliyi depoda tut ki gelecekteki sen, eşiğin gerçekten aşıldığı anı görebilsin.

Elindeki yük için çalışan en küçük şeyi kur ve önlem yerine tel tuzağı yerleştir. Tek makine, basit sorgu, apaçık yaklaşım — artı varsayımın geçerliliğini yitirdiğinde sana haber veren tek bir uyarı. O uyarı, soyutlama katmanından daha değerlidir, bir saat sürer ve bir tahmini omzuna dokunacak bir şeye dönüştürür.

Müşteri adımını aynı gün öne al. Bir sonraki altyapı oturumundan önce ertelediğin şeyi yap: yirmi e-postayı gönder, görüşmeyi ayarla, sayfayı yayınla. Altyapı önemsiz olduğu için değil; hangisinden kaçındığını öğrenmenin tek yolu bu sıra olduğu için.

Ve bahis küçükken bir şeyin bir kez ucuza kırılmasına izin ver. Kırk eşzamanlı kullanıcıda çöken bir ürün, bir öğleden sonrada, üç aylık savunma tasarımından fazlasını öğretir — üstelik hayal edilen sistemi değil, gerçek sistemi öğretir. Başarının sorunlarını çözmeden önce onları kazanma hakkın var.

Okumaya devam et