Geliştiriciler Mars'tan, Programcılar Venüs'ten - 2
Yazan : Yusuf Nar, Kasım 06, 2006, Pazartesi 9:16
Etiket(ler) : farklar, hacknot, programcı, yazılımcı
Bu dizinin ilk kısmı konuya giriş niteliğinde idi. Bu bölümde ise iki kavramın farklılık gösterdiği konuları başlıklar halinde ele aldık.
Geliştiriciler Organizasyon ve İş Hakkında Bilgi Sahibidirler
Programcılar yaptıkları işin içeriği hakkında oldukça ilgisizdirler. Problemle hiç ilgilenmezler yada problemleri teknik olmayan konular olarak düşünürler. Programcıların içinde bulundukları işler ile hiç bir alakalarının olmadığını söylediklerini duyacaksınız; yapacakları iş finans, sağlık yada haberleşme olabilir, bu onlar için önemsizdir. İş onlar için bazı programlama teknolojilerini uygulamak için bahanedir.
Geliştiriciler işin içeriğini ikinci işleri olarak görürler. Değişik açılardan işin içeriğini somut olarak anlamaya çalışırlar ki bu uygulama üzerinde etkili olacaktır. Çözüm oluşturacak uygulamanın ilgilendiği gerçek problemlerin neler olduğunu belirlemeye çalışırlar. Kendilerini kullanıcıların yerine koymak için çaba sarfederler ve kullanıcı bakışıyla uygulamayı görmeye çalışırlar. Bu bakış açısı kullanıcıların göremediği gereksinimleri önceden görmeyi ve kullanıcıların fakrında olmadığı teknik olarak mümkün olan fırsatları keşfederek işin değerini arttırmayı sağlar.
Geliştiriciler Bakımın Getireceği Yüke Dikkat Ederler
Bir çocuğun tatlıları arzuladığı gibi programcılar yeni teknolojileri arzularlar. Bu asla tatmin olunamayan bir açlıktır. Bir programlama dilinden diğerine, bir IDE'den, framework'ten, kütüphane'den diğerine sonsuza kadar yer değiştirirler. Yeni bir teknolojiyi projelerin kritik yerlerinde kullanmak konusunda tereddüt etmezler. Çocukça bir şekilde sebepsizce sadece kullanırlar. Hemen bu yeni teknolojiyle çalışmaya niyetlenirler ve olgunlaşmamış teknolojilerin getireceği kaçınılmaz problemlerin üstesinden gelmeye çalışırlar. Çalışmalarını dokümante etmek için çaba göstermezler. Çünkü dokümantasyonun kullanışsız olduğuna inanırlar. Sonraki gelecek programcılar için faydalı olacaksa da onlar bunu önemsemezler.
Geliştiriciler yeni teklojilere karşı daha ihtiyatli yaklaşım sergilerler. Şunu bilirler ki yeni bir teknolojinin getireceği başarıdan çıkar sağlayanlar onu kaçınılmaz şekilde zirveye taşıyacaklardır. Fakat taraftarları tarafından yapılan muhteşem iddialar gerçekteki performansının gerisinde kalacaktır. Ayrıca yeni bir teknolojinini kanıtlanmamış teknoloji olduğunu bilirler, zayıflıkları ve yetersizlikleri iyi bilinmiyordur ve tanınmamıştır. Teknolojilerin negatif yönlerininin ortaya çıkması zaman alır. Ayrıca geliştiriciler organizasyonel kaosun teknik olarak yönetimde birçok değişikliğe sebep olacağını bilirler.
Geliştiriciler Yöntemlerin Teknik Ayrıntılardan daha Önemli Olduğunu Bilirler
Programcılar kullandıkları teknolojiye o kadar yoğunlaşırlar ki onun nihai başarıdaki baskın faktör olduğuna inanırlar. X teknolojisine geçildiğinde herşey daha iyi olacak diye umutlanırlar.
Geliştiriciler bir uygulamanın kalitesini ve nihai başarısını etkileyen faktörün onu kullanan kişiler ve izlenilen yöntemler olduğunu bilirler. Çoğu zaman teknoloji seçimi ikinci plandadır (Bunun istisnaları köklü ve devrimsel değişimlerdir; düşük seviye dillerden yüksek seviye dillere geçiş gibi).
Programcılar her Problemi Kodlarla Çözmeye Çalışırlar
Programcı mantığının genel karakteri karşılaşılan her problemi daha fazla kod yazmak için bir fırsat olarak görmesidir.
Geliştiriciler için ise kod yazmak sadece uygulamanın ortaya çıkması için gereklidir. Sonuçta bunu üretmek için para ödenir.
Geliştiriciler Yinelenebilirlik Ararlar, Programcılar Kahramanlık İsterler
Uygulama geliştirme bir masal olsaydı programcılar tavşan, geliştiriciler kaplumbağa olurdu. Programcılar günü kurtarmak için teknolojilerin kabiliyetlerinine aşırı güven duyarlar. Fakat ufak bir planlama çalışmasının getirdiği etkiyi sağlayamazlar.
Geliştiriciler daha yöntemsel ve teknolojik bir yol izlerler, mucizevi çözümler beklemezler. Umutlarını yeni araçlara yada metodlara bağlamaktansa ileride karşılaşılabilecek çeşitli güçlükleri görebilmek için belli bir süreyi analiz ve planlamaya ayırırlar.
Programcılar Karmaşıklığı Severler, Geliştiriciler Basitliği Tercih Ederler
Programcılar daha komplex problemler oluşturmaktan ve çözmekten hoşlanırlar. Onlara yeni birtakım teknolojilerle oyalanma imkanı sunduklarından, gerçekte oldukça gereksiz taleplerle uğraşabilirler. Kullanıcıları sistem üzerindeki her işlemlerinde bu tür karmaşıklıklara tahammül etmeye zorlarlar, bakım programcıları tüm eklentilerde ve yamalarda bu karmaşıklığın içine girmek zorunda kalırlar, şirket ise proje planındaki uzatmaları finanse etmek zorunda kalacaktır. Tabi programcılar bunların hiçbirini düşünmezler.
Geliştiriciler daima en basit çözümü ararlar. Kullanılan teknolojinin trendine ve popülerliğine dikkat etmezler. Örneğin proje Visual Basic ile geliştirilmişse VB'yi kullanılar. VB'yi sevmeseler de, CV'lerinde görmek istemeseler de...
Geliştiriciler Kullanıcılara Önem Verirler
Programcılar kullanıcı kitlesine tepeden bakarlar, onları önemsiz kalabalıklar olarak görürler. Kendilerine göre bilgisayar bilgisi bakımından tecrübesiz olduklarından onlara gülerler. Kullanıcılara karşı teknik ifadeler kullanmaktan haz duyarlar, çünkü anlaşılmadıklarını bilirler ve bu onların kendilerini üstün hissetmelerini sağlar.
Geliştiriciler kullanıcıları alt sınıf olarak düşünmezler. Onlara saygı duyarlar ve onların organizasyon içerisinde farklı şekilde hizmet ettiklerini bilirler. Kullanıcılarla konuşurken ifadelerindeki teknik sözcükleri çıkarırlar ve kullanıcılara daha yakın bir dil seçerler.
Geliştiriciler Bir İhtiyacı Karşılamayı, Programcılar Bir İşi Bitirmeyi Severler
Programcılar konulara balıklama girerler. Ayrıntılara, şartlara, entegrasyona v.s. az zaman ayırırlar. Mümkün olduğu kadar çabuk kod yazmaya başlamak isterler ve detayları daha sonraya atarlar. Olabilecek en kötü şey ise yaptıkları şeyleri bırakıp tekrar yazmak zorunda kalmalarıdır, bu onların daha fazla kod yazmalalarına olanak tanıyacaktır. Bu onların çok hoşlarına gider çünkü onlar bu deneme-yanılma yöntemler sayesinde daha fazla kodlarla uğraşma imkanı bulurlar.
Geliştiriciler programlamanın tabiatını tanırlar ve fazla aceleciliğin fazla yavaşlık getireceğini bilirler. Problemi tam olarak anlamadan önce kodlamaya geçmemeye dikkat ederler. Onların amacı bir iş problemini çözmektir, işleri hata takip sisteminin(bug tracking system) içinde bırakmak değildir.
Geliştiriciler Çalışırlar, Programcılar Oynarlar
Birçok yazılım geliştirici işe programcı olarak başlarlar, programcılar gibi hobi benzeri şekilde yazılımlara ilgi duyaraktan... Yazılımların organizasyonel bağlamda anlam taşıdığını keşfettiklerinde, ilgi alanları yukarıdaki farkları teşkil eden aktiviteleri kapsayacak şekilde genişleyecektir.
Bununla beraber bazıları amatörden profesyonele geçemezler ve bilgisayarlarla oynamaya devam ederler.
Yazılım geliştirme henüz standartları ve gereksinimleri belli olan bir meslek değildir. Bu değişene kadar programcılar yazılım geliştirme profesyonelleri olarak maske takmaya devam edeceklerdir.
Organizasyonunuzda çalışmasını istediğiniz kişiler geliştiricilerdir. Programcılar bir düzinedir, geliştiriciler işe asıl değerini kazandırır. Akıllı patronlar, işverenler farkı bilirler.