Bir Sonraki İşleminizi(Commit) Bilin

Üç programcının omuzlarına dokundum ve ne yaptıklarını sordum. "Bu yöntemleri yeniden gözden geçiriyorum," diye yanıtladı ilki. İkincisi, "Bu web işlemine bazı parametreler ekliyorum" diye yanıtladı. Üçüncüsü, "Bu kullanıcı hikayesi üzerinde çalışıyorum" yanıtını verdi.

İlk ikisi işlerinin ayrıntılarına dalmış gibi görünebilirken, yalnızca üçüncüsü büyük resmi görebiliyordu ve ikincisi daha iyi odaklanmıştı. Ancak, ne zaman ve ne işlemi yapacaklarını sorduğumda, resim çarpıcı bir şekilde değişti. İlk ikisi, hangi dosyaların dahil olacağı konusunda oldukça netti ve bir saat içinde bitecekti. Üçüncü programcı, "Ah, sanırım birkaç gün içinde hazır olacağım. Muhtemelen birkaç sınıf ekleyeceğim ve bu hizmetleri bir şekilde değiştirebilirim."

İlk ikisi, genel hedefe yönelik bir vizyondan yoksun değildi. Verimli bir yöne gittiğini düşündükleri görevleri seçmişlerdi ve birkaç saat içinde bitirilebiliyorlardı. Bu görevleri bitirdikten sonra, üzerinde çalışmak için yeni bir özellik veya yeniden düzenleme seçeceklerdi. Böylece yazılan tüm kodlar net bir amaç ve sınırlı, ulaşılabilir bir hedef göz önünde bulundurularak yapıldı.

Üçüncü programcı sorunu ayrıştırmayı başaramamıştı ve aynı anda tüm yönler üzerinde çalışıyordu. Temelde spekülatif programlama yaparak, işlem yapabileceği bir noktaya gelmeyi umarak, bunun ne gerektirdiği hakkında hiçbir fikri yoktu. Büyük olasılıkla bu uzun oturumun başında yazılan kod, sonunda ortaya çıkan çözüm için yetersizdi.

İlk iki programcı, görevleri iki saatten fazla sürseydi ne yapardı? Çok fazla üstlendiklerini fark ettikten sonra, büyük olasılıkla değişiklikleri bir kenara atacak, daha küçük görevler tanımlayacak ve baştan başlayacaklardı. Çalışmaya devam etmek, odaktan yoksun olurdu ve depoya spekülatif kodun girmesine yol açardı. Bunun yerine, değişiklikler çöpe atılır, ancak içgörüler korunur.

Üçüncü programcı tahmin etmeye devam edebilir ve umutsuzca değişikliklerini taahhüt edilebilecek bir şeye dönüştürmeye çalışabilir. Sonuçta, yaptığınız kod değişikliklerini çöpe atamazsınız - bu boşa giden bir iş olur, değil mi? Ne yazık ki, kodu çöpe atmamak, depoya girmek için net bir amacı olmayan biraz garip koda yol açar.

Bir noktada, işlem odaklı programcılar bile iki saat içinde tamamlanabileceğini düşündükleri yararlı bir şey bulamayabilir. Ardından, doğrudan spekülatif moda geçerler, kodla oynarlar ve elbette, ne zaman bir içgörü onları tekrar rayına oturtsa değişiklikleri bir kenara atarlardı. Bu görünüşte yapılandırılmamış bilgisayar korsanlığı oturumlarının bile amacı vardır: verimli bir adım oluşturacak bir görevi tanımlayabilmek için kod hakkında bilgi edinmek.

Bir sonraki işleminizi bilin. Bitiremezseniz, değişikliklerinizi atın ve kazandığınız içgörülerle inandığınız yeni bir görev tanımlayın. Gerektiğinde spekülatif deneyler yapın, ancak fark etmeden spekülatif moda kaymanıza izin vermeyin. Deponuza tahminde bulunmayın.

Dan Bergh Johnsson Tarafından

Last updated