17 Şubat 2013 Pazar

Yazılım Ustalığı Prensipleri ve Profesyonellik

Yazılım ustalığı kavramı hakkında zaman zaman yazılarımda bahsediyorum. Yazılım geliştirmek için harcanan onca emek ve paranın uçup gitmesi canımı çok acıtıyor. Yazılım projelerinin başarıya ulaşabilmesi için "neler yapılmalı, neler yapılmamalı" konularına bolca kafa yoruyorum. Başarısını kanıtlamış projelerin başarı sırlarının ardında takım çalışmasının, kaliteli yazılım geliştirme pratiklerinin, sürekli değer katan bireylerin, gerçek profesyonellerin ve müşteriler ile kurulmuş üretken ortaklıkarın olduğunu düşünüyorum. Ne mutlu ki aklın yolu bir. Benim gibi düşünenlerin oluşturduğu Yazılım Ustalığı Manifestosu'nda bu değerler açıkça belirtilmiş.

Yazılım Ustaları ve Profesyonellik

Yazılım geliştirme çıtasını, bizzat uygulayarak ve başkalarının bu mesleği öğrenmelerine yardım ederek yükselten yazılım ustalarının değer verdiği konuları ve prensiplerini anlamak çok önemli. Değer verdiği konular manifestoda açıkça belirtilmiş. Ancak özellikle vurgulamam gereken bir nokta var. Yazılım ustalarını diğer yazılımcılardan ayıran özelliklerin başında profesyonellikleri geliyor.

David Harvey profesyonellik kavramını çok nezih bir biçimde özetlemiş.
"Profesyonellik, yaptığı işin sorumluluğunu alırken, bilgi ve becerilerini geliştirmeye kendini adamaktır"
Büyük ustalardan Özcan Acar, yazılım ustalarının özelliklerini pragmatik, teknoloji fanatiği olmayan, değişikliklere iyi adapte olabilen, geniş bir bakış açısına sahip olmaları şeklinde ifade ederken, iyi programcıyı şöyle tarif ediyor.
"İyi programcıların ağaçta yetişmediği bir gerçek. Bir programcının iyi bir programcı olabilmesi için çok okuması, öğrenmesi, öğrendiklerini uygulaması ve yenilikleri takip etmesi gerekiyor."
Robert C. Martin ise yazılım ustalığı kavramını anlattıktan sonra, profesyonellik konusunu ve Yazılım Ustalığı Manifestosu'nu imzalamanın ne demek olduğunu bakın nasıl belirtmiş:
"Manifestoyu imzalamak, imzalayanın kendine şu sözü vermesidir: İşimi iyi yapacağım. Koşuşturup acele etmeyeceğim. Test yazacağım. "Doğrusunu yaparak" hızlanacağım.  İşe yaramaz çöp yazmayacağım. Ve tam bir profesyonel olana dek pratik yapacağım, pratik yapacağım, pratik yapacağım." 

Yazılım Ustalığı Prensipleri

Manifestoya maddi ve fikri katkının büyük bir bölümü, 8th Light Inc. çalışanları tarafından veriliyor. 8th Light Inc.'in 2 kurucusunun da (Paul Pagel ve Micah Martin) Robert C. Martin'in eski çırakları olduğunu, Micah Martin'in de Robert C. Martin'in oğlu olduğunu belirtmekte fayda var. Böyle büyük bir ustadan yetişmiş  yazılımcıların, sadece kodlama alanında değil, fikri alanda da büyük katkılar yaptığı bir gerçek.

Robert C. Martin'in bir yazısında belirtildiği üzere, 8th Light Inc. çalışanları yazılım ustalığı prensipleri üzerine 2 senedir çalışıyorlarmış. Uzun çalışmalar sonunda çıkardıkları prensipleri bizlerle paylaşmışlar. Ben de bu prensipleri sizlere aktarmaktan zevk duyacağım.

8th Light Inc.'in Yazılım Ustalığı Prensipleri

(Orijinal metin) 8th Light'da bizler, prensip sahibiyiz. Yapacağımız ve yapmayacağımız şeyler var. Her prensip, Yazılım Ustalığı Manifestosu'ndaki belli bir değer ile ilişkili.

Ustaca Üretilmiş Yazılım

Nacizane, uzmanlığımızı kaliteli yazılım üreterek gösteririz.
Becerilerimizi şişirmeyiz, ya da bizde olmayan uzmanlıkları varmış gibi iddia etmeyiz.
Sürekli olarak çeşitli teknoloji ve tekniklerde ustalaşırız.
Alışık olmamanın, bizi en iyi araçları kullanmaktan vazgeçirmesine izin vermeyiz.
Kodumuzun doğruluğunun sorumluluğunu, adamakıllı test ederek alırız.
Önlenebilir kusurlara müsamaha göstermeyiz.

Sürekli Değer Katmak

Özenle tahminlerde bulunuruz.
Korkunun ve baskının bize başaramayacağımız sözler vermesine izin vermeyiz.
İşimizi bitirebilmek için her zaman en iyi çabayı gösteririz.
Bahaneler üretmeyiz.
Sürdürülebilir bir tempoda çalışırız.
Kendimizi yıpratıp tüketmeyiz.

Profesyoneller Topluluğu

Fikir ve kişilik farklılıklarını kucaklarız.
Mevcut uygulamaların gelişimimizi sekteye uğratmasına izin vermeyiz.
İnceleyebileceğimiz, değerlendirebileceğimiz ve iyileştirebileceğimiz açık kaynak kodlu araçları tercih ederiz.
Şeffaflıktan uzak tescilli ürünlerden uzak dururuz.
Öğrenmeye istekli herkese öğretiriz.
Bilgi ve pratikleri kendimize saklamayız.

Üretken Ortaklık

Müşterilerimize ve diğer ustalara saygı gösteririz.
Meslek ahlakına aykırı ve etik dışı davranmayız.
Gidişatımızı müşterilerimiz ile dürüst ve açık bir şekilde paylaşırız.
Gizlemeyiz, ya da olmayan hayali şeyler eklemeyiz.
Müşterilerimiz ile onların işini anlamak adına ortaklık kurarız.
Doğru problemi bulduğumuza emin olana dek çözüm önermeyiz.

İlkeli Yazılımcılar, İlkeli Şirketler

Üstteki metinden çok etkilendiğimi itiraf etmeliyim. Bir süre önce "hiç ilkeleri olmayan yazılım takımı olur mu?" diye sormuş, sizlerle kendi yazılım geliştirme manifestomu paylaşmıştım. Görünüyor ki, 8th Light Inc. de kendine özenle tasarlanmış ilkeler seçmiş ve ana sayfasında göstere göstere şunu yazmış: "Bizler yazılım ustalarıyız". Umarım ben ve tüm okuyucularım bu harika deneyimden ders çıkarır, başarı merdiveninin ilk basamağında "ilkelere sahip olmak ve profesyonellik" yazdığını biliriz.

0 yorum:

Yorum Gönder

Template developed by Confluent Forms LLC; more resources at BlogXpertise