Yine de birçok alanda tipik müşteri:
- Günlük operasyonel kaygılarla ilgileniyorum - kısa menzilli taktikler ... strateji değil;
- Sadece acil çözümle ilgilidir;
- Genellikle tek boyutlu, soyut olmayan düşünürler;
- Öncelikle kalıcı, kaliteli bir çözüm bulmak yerine "işi yapmak" ile ilgileniyor.
Ve açık konuşmak gerekirse, genellikle böyle düşünmek için iyi nedenleri vardır. Her şeyden önce, uzak bir gelecekte değil bugün ve yarın gelir elde etmesi gereken bir iş yürütüyorlar. İkincisi, teknik uzmanlar değiller - neyin mümkün olup neyin olmadığını ve belirli mimari / tasarım / uygulama seçimlerinin sonuçlarının ne olduğunu bilmiyorlar. Bu ne biz biliyoruz.
Bu yüzden cevap - pek şaşırtıcı değil - iletişim .
Çok fazla iletişim kurmanız, birbirinizi eğitmeniz, birbirinizin en azından temel bir bakış açısıyla birbirinizin bakış açısını anlamasını sağlamanız gerekir. Onlara olası alternatiflerin kısa ve uzun vadeli sonuçlarını açıklamanız gerekir. Ve anladıkları dili kullanmanız gerekiyor .
- Derseniz "bu kod daha az okunabilir ve genişletilebilir kılan bir hack, olurdu" , derler, "evet, ne olursa olsun" .
- Derseniz "Bu uzun vadeli geliştirme ve bakım daha masraflı hale ve böcek girme riski artıracak kısa vadeli düzeltme, olurdu" derler "Bir ha en düşünelim" .
- Ve "bu çözüm size 100 $ 'a mal olur, ancak er ya da geç faizle geri ödemek zorunda olduğunuz 500 $' lık teknik borcu tanıtırsanız; OTOH bu diğer çözümün size maliyeti $ 400 ve hiçbir teknik borcu bırakmıyor; "istemek derler, 'Şimdi biz bahsediyoruz!' .
OTOH, bize iş perspektifi hakkında bir iki şey öğretebilirler. İşletmeler kullanılabilir ve yeterince iyi - neredeyse mükemmel - çözümler istiyor. Ve muhtemelen "mükemmel olanın iyinin düşmanı" olduğunu herkesten daha iyi bilirler. Bu nedenle, işimizin teknik olarak mükemmel bir yazılım üretmek yerine müşterilerimizin sorunlarına çözüm sağlamak olduğunu aklınızda bulundurmanız gerekir. Bazen bu ikisi birbirine yaklaşır, ancak daha sık değildir. Bu birçok kişi tarafından üzücü görünebilir, ancak iş gerçekliğidir. Benim için, eğer müşteri sorunumu çözmeyi başarırsam ve bunun hayatlarını gözle görülür bir şekilde kolaylaştırdığını görürsem, onlar kadar mutluyum. OTOH, aklımda olan mükemmel tasarımı uygulamayı başarabildim, ancak şirket ertesi hafta iflas ettiğinde, hiç kimseye bir kazanç değil mi?
Makul bir işletme sahibi - eğer kendi dillerini kullanarak açıklarsanız - yazılımları temiz tutmak, birim testleri yazmak, refactor vb. İçin neden önemlidir? uzun süreli bakım için gereklidir. Ve mantıklı müşteriler, işletmelerinin uzun vadeli sürdürülebilirliğini önemsiyorlar, bu nedenle yatırımlarının yarattığı değeri gördüklerinde kesinlikle yatırım yapmaya hazırlar. Bununla birlikte, hem kaynakları hem de zamanınız sınırlıdır, bu nedenle en önemli şeylere öncelik vermeniz ve odaklanmanız gerekir. Ancak , sadece ikiniz için de önemliyse önemlidir .
A modülünü yeniden incelemek isteyebilirsiniz, çünkü oradaki kod sadece korkunçtur ve az önce okuduğunuz bir tasarım deseni kullanarak kodu özlü, zarif ve temiz olacak şekilde nasıl yeniden düzenleyeceğinize dair muazzam bir fikriniz var. Ancak, bu modüle yıllarca dokunulmadıysa ve güvenilir bir şekilde çalışıyorsa, önümüzdeki hafta çok önemli bir yeni özellikle genişletilecek olan ve tonlarca hata içeren modül B'ye odaklanmanız daha iyi olacaktır. zaten.