Her yaptığımız şeye bir kulp uydurmak yerine, elle tutulur bir sebebe dayanarak işe başlamalıyız. Zira, ameller niyetlere göredir. Yazılım yazmak için de, her zaman geçerli, kendime göre sebeplerim var.

Yazılımcı olarak bir yazılımı niçin yazarsınız? Sormak aklıma gelmedi demeyin! Birileri istediği için mi? Mecbur olduğunuz için mi? Öğrenmek için mi? Yada zevk olsun diye mi? Acaba bir yazılımı yazmanın mesleki açıdan özel bir sebebi olmalı mı? Eğer bir yazılım geliştirme projesinde geliştirici ekibin içindeyseniz ne demek istediğimi anlamışsınızdır.

Bazıları sadece para için yazar. Onlar için bir işin başarılı olması işi bitirip, parayı almaktır. Yanlış anlaşılmasın, yapılan işin tabii ki maddi bir karşılığı olabilir. İş karşılığı bir bedel alınmış olması veya iyi para etmesi, sadece ticari yanının başarısını gösterir.

Yazılımın başarısını, onu alan veya satanın memnuniyeti ile ölçmek de eksiklik olacaktır. Gerçek başarı işin iki ucunu tutan kullanıcı ve geliştiricilerin memnuniyetidir. Neden mi? Çünkü, bir yazılımı iyi kullanamazsanız veya iyi geliştiremezseniz beklenen faydaları ondan elde edemezsiniz.

Onların Niçinleri

Yazılım geliştirme süreci bir ihtiyacın ortaya çıkması ile başlar. Bir yazılım geliştirilmesine karar verildikten sonra, yazılımı alıp kullanmak isteyen müşteri ve geliştirip satmak isteyen yazılımcılar arasında işin ticari boyutu belirir. İlk başta sadece bir cümle ile ifade edilebilen yazılım projesi, müşterinin ihtiyaçlarının belirlenmesi ile canlanmaya başlar. Yazılımcılar da ihtiyaçları toparlayıp ne yapabileceklerine kara verirler. İş karşılığı alınıp verileceklerde anlaşıldıktan sonra da gerçek geliştirme süreci başlar.

Yazmaya başlanacak bu noktada taraflar “Bu yazılım niçin yazılacak?” sorusunun cevabını belirler ve iki kısım doküman hazırlanır.

  • Kullanıcıların ihtiyaçlarını ve yapılacak işlerin kapsamını anlatan gereksinim dokümanı ve
  • Alıcı ve satıcı arasındaki ticari sorumlulukları, yani zaman ve bütçeyi içeren bir sözleşme.

Ya yazılım geliştiriciler?  Onların projeyi yapmak için kendilerine ait sebepleri ve ihtiyaçları olamaz mı? Evet deneyimli ekipler bir tasarım dokümanı ve bir de geliştirme dokümanı hazırlarlar. Ama bunların içerisine yazılımcının sorunları değil, yazılımın çözümleri, yazılımcının öğrenecekleri değil, yazılıma eklenecekler doldurulur.

Bizim Niçinlerimiz

Geliştirme için bilmemiz gerekenler, işi bitirmek için kazanmak zorunda olduğumuz beceriler ise çoğu zaman bize bırakılır. Dahası, bunlar için harcanacak zaman ve para proje planlarında göz ardı bile edilebilir. Projenin diğer tarafları, asıl işi yapan yazılımcı geliştiricilere, açıktan olmasa da içlerinden, belki de şöyle demek istiyorlardır; “Ellerinizin altında bilgisayarlarınız var. Onlara güzel bir analiz ve tasarım verirseniz işinizi en iyi şekilde yaparlar.”

Eğer sizi gözardı etmiş proje dokümanlarına ve planlara uyar, işi zamanında bitireyim diyerek, kendi gereksinimlerinizi karşılamadan yazmaya devam ederseniz, ya proje bitmeyecektir, yada zaman ve para bittiği için proje sonlandırılacaktır.

İşte bu yüzden, bir yazılım projesindeki kendi ihtiyaçlarımı, kendim için birer amaç olarak belirliyorum. Amaçlarım diğer proje taraflarının önceliklerini geçemese de, onları göz ardı etmiyorum. Yazılı olmasa da kendi amaçlarımı mesleğimle imzalanmış bir sözleşme gibi kabul ediyorum.

Başa dönersek, “Niçin bu yazılımı yazacağım?” sorusuna kendi cevabım şunlar olurdu;

  • Müşteri tarafındaki kullanıcıların ihtiyaçlarını karşılamak için.
  • Yükümlülük alanlar benden yazmamı istedikleri için.
  • Yazarken yeni şeyler öğreneceğim için.
  • Bir sonrakine bir adım ilerlemiş olarak başlamak için.

“İyi bir sebebiniz yoksa, sonucunuz da iyi olmayacaktır.”

 

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>