İlginizi Çekebilir
  1. Ana Sayfa
  2. Yazılım
  3. Bir Yazılım Projesine Başlamak- Tavsiyeler #2

Bir Yazılım Projesine Başlamak- Tavsiyeler #2

Merhabalar. Proje geliştirmede çevresel etkenleri de denkleme sokarak olabildiğince basit düşünüp temiz bir iş çıkarmak hakkında konuşacağız.

Bir Yazılım Projesine Başlamak- Tavsiyeler #2
1

Bu yazım işin bir alaylısı olarak, tecrübelerimden derlediğim bir yazılım projesine başlamak – dikkat edilmesi gerekenler  konusunun 2. yazısıdır.  Bu yazıda göreceğiniz şeylerin her hangi birini bir yerde bulmanızın imkansız olduğu düşünüyorum. Sayısız araştırmalar yaparak ve sayısız proje geliştirerek geçirdiğim, 5 yıldan fazla sürede elde ettiğim tüm püf noktaları paylaşıyor olacağım.

Bu yazı serisinin ilk yazısı olan Bir Yazılım Projesine Başlamak- Tavsiyeler #1 yazımda Kodlama Mantığı hakkında konuşmuştuk. Bu yazımda da Basit Düşünmek hakkında konuşacağız. Elbette sadece Basit düşünmek üzerine değil proje geliştirmede çevresel etkenlere de değineceğim. İşi veren patronlar/müdürler, programı kullanacak olan kullanıcılar vs. Önceki yazımda bahsettiğim gibi bu yazı serisinde anlatılan her şey kendi deneyimlerimden oluşan bilgi birikimidir.

Bir proje geliştirirken bir çok kez takıldığımız noktalar oluyor. Hemen basit düşünüp işi bilen kişiye sormak yerine kendimiz çözüm üretmeye çalışıyoruz. Çözümü bulabilmek için belki de günlerce kafa patlatıyoruz. Ancak bulduğumuz çözüm;

  1. Gerçekte ne kadar uygulanabilir?
  2. Gerçeğe ne kadar uyarlanabilir?
  3. Bize getirdiği yük nedir?
  4. Kullanıcıya getirdiği yük nedir?
  5. Gerçekten mantıklı mı?

Bunlar gibi bir çok soru basit düşünmediğimiz için bizi zora sokan şeyler arasında. İlk etapta bu sorular mantıksız gelebilir. Basit Düşünmek ile ne alakası var? diye düşünebilirsiniz. Bu yazımda da işte bu sorulara cevap vermeye çalışacağım. Gerçek anlamda, basit düşünmeye başladığımızda elde edeceğimiz hız ve iç tatmin çok memnun edici olacaktır.

Basit düşünmek, az düşünmek olarak algılanmamalı. Aslında çok fazla düşünmek anlamına geliyor. O kadar soru sormalı ve o kadar çok düşünmeliyiz ki “kullanımı çok basit” olabilsin. 😉

 

Bir Yazılım Projesine Başlamak- Tavsiyeler #2

Basit Düşünmek

İlk olarak hali hazırda var olan bir proje üzerinden konuşalım.

Öncelikle karşılaştığımız sorunun ne olduğunu net bir şekilde anlamalıyız. Bazen sorunun ne olduğunu anlamadan sorunu çözebiliyoruz. Ancak bu kırılan ve su sızdıran baraj duvarını bantlamak gibi… Su kaçırmasını engelliyoruz belki ama başka sorunlara yol açıyor. Kaçan suya odaklandığımız sürece asla kalıcı bir çözüm elde edemeyeceğiz. İlk amacımız barajın neden kırıldığı olmalı değil mi?

Genelde bir sorun ile karşı karşıya kaldığımızda ister istemez panikliyoruz ve ilk olarak, örneğimizdeki gibi, sızan suyu durdurmaya çalışıyoruz. Hemen kafamızda kompleks bir senaryo oluşur ve tüm odağımız sızan suya düşer. Barajın neden kırıldığını düşünmek daha sonra aklımıza gelir. Bu aklımıza geldiğinde de çoktan bir sürü tampon önlem almış yani yanlış şeyler yapmış olabiliriz.

Üstelik ne kadar geç fark edersek o kadar fazla tampon önem almış oluruz. Belkide geriye dönmek için çok geç kalmışızdır… Basit düşünmenin ilk şartı barajın neden çatladığı olmalı. Bu çatlağa sebep olan şey ne? Kullanıcının hatası mı? Yoksa bizim gözden kaçırdığımız bir şey mi?

O halde ilk kuralımızı bir soru olarak verelim…

algoritma hazırlamak

Kural 1 – Kullanıcı Hatası Mı? Yazılımcı Hatası Mı?

Şimdi bu kadar şey söyledik. Bir senaryo ile de destekleyelim.

Bir kullanıcı girişi ekranı yaptınız. Kullanıcılar bu ekrandan sürekli veri girişleri yapıyor. Ancak bu ekran için sürekli hata bildirimi alıyorsunuz. Gelen hataya bakarak hızlıca çözmek için önemler aldınız ama yine de hatalar devam ediyor. Siz test ediyorsunuz hiçbir sorun çıkmıyor ama kullanıcı “hata var” diyor.

En son dayanamıyorsunuz ve kullanıcının yanına gidiyorsunuz ve “Aynı işlem tekrar yapar mısın?” diyorsunuz. Kullanıcı işlemi tekrar yapmaya başlıyor ki daha yeni başlamışken bir bakıyorsunuz ki; (olası şeyler)

  1. Yanlış veri giriyor.
  2. Arada bir işlemi atlıyor.
  3. Tarif ettiğiniz şekilde değil, kendine kolay gelecek şekilde yapıyor.
  4. Veri girmesi gereken bir alanı boş bırakıyor.
  5. Verdirdiğiniz uyarıları okumadan geçiyor.

Anlıyorsunuz ki kullanıcı, sizin hiç düşünmediğiniz şekilde kullanıyor programı. Siz kaydetme esnasında çıkan hatalara odaklandınız. Kayıt esnasında çıkan hata sizi paniğe sürükledi. Bir an önce o hatayı çözmeye odaklandınız. Ancak kullanıcının yanlış veri girebileceğini düşünmediniz.

Aslında sorun bu kadar basitti. Buna sebep olan şey ise şu. Programı siz yazdığınız için nereye nasıl bir veri girilmesi gerektiğini biliyorsunuz ve ona göre test ediyorsunuz. Ancak kullanıcının yanlış veri girebileceğini, veri girmesi gereken yeri boş geçeceğini ya da verdirdiğiniz uyarıları okumadan geçebileceğini hesaba katmadınız. Buradaki hata sizde mi? Yoksa kullanıcıda mı?

O halde ikinci kuralımızı verelim mi?

Bir Yazılım Projesine Başlamak basit düşünmek

Kural 2 – Bir Kullanıcı Kadar Basit Düşün!

Siz bir yazılımcısınız ancak programı kullanacak olan kişiler öyle değil. Onlar için sadece işlerinin çözülüp çözülmediği, işlemlerini hızlı ve basitçe yapabilip yapamadığı ile ilgileniyor. Siz o kadar kafa patlattınız, belkide günlerinizi planlar, algoritmalar yaparak geçirdiniz… Ama yine de bir çok kez aynı yere dönmek zorunda kaldınız.

Tasarladığınız şeyi kullanacak kişileri düşünerek tasarlayın. Olabildiğince basit olması gerekiyor. Olabildiğince basit düşünmeniz gerekiyor. Ekranların kullanımı ne kadar kompleks ise o ekranlardan o kadar çok hata alacaksınız. Basit düşünün. Olabildiğince basit ve sade. Kullanımı kolay ve işlevsel olmalı. Bu hem sizin iş yükünüzü azaltacak hemde kullanıcı dostu olacak. Sadece bu noktada çifte kazanç elde edeceksiniz.

İnsanlar yeteneklerini göstermek ister. Olabildiğince cafcaflı olsun görenler “Vaaay” desin ister. İlk zamanlar bende öyleydim. Yaptığım ekranlar, şimdiki kafama göre karman çorman olur ama göze de güzel görünürdü. Ancak ne zaman böyle bir ekran tasarımı yaptıysam tekrar tekrar geri dönerek sadeleştirmek zorunda kaldım. Tabi son haline gelene kadar ki zaman kaybı ve stres ise cabası oldu.

Böylesi bir sorun ile karşılaşmamak için yine basit düşünüp inceyi görüp direk olarak projeyi kullanacak olan kullanıcılar ile görüşün. Projeye başlamadan önce topladığınız bilgileri, püf noktaları  ve tüyoları kullanarak önce bir plan yapmak ve ardından algoritma hazırlamak fayda sağlayacaktır. Olabildiğince basit düşünerek işlemleri ele almalı ve bir yol çizmelisiniz ve bu çizdiğiniz yolu projeye başlamadan önce işi veren kişiye onaylatmalısınız.

Üçüncü kuralımız ile devam edelim.

proje geliştirmede çevresel etkenler

Kural 3 – Yazılımcı Sensin Onlar Değil

Size işi veren kişi / müşteri sizden en güzel programı isteyecektir. Onlara takılmayın. Projeyi nasıl geliştirmeniz gerektiğine, nasıl yazmanız gerektiğine karışmasına izin vermeyin. Yazılımcı sizsiniz, onlar değil. Onlar sadece anlatsın siz yazın.

Öncelikle işi veren kişiden isteklerini topladıktan sonra bu programı kullanacak olan kişiler ile görüşün. Patron/ Müdür her şeyi biliyor gibi davranabilir ama öyle değildir. Tek bir kişiye göre ilerlerseniz her zaman sorun yaşarsınız.

“Sen benim dediğim gibi yap! Kullanmasınlar da göreyim onları!” Gibi bir cümle ile karşılaşmanız %90. Ama gerçekte işler öyle olmuyor işte… O patron/müdür kullanmayan herkesi işten çıkarak değil ya? Yaparım dese bile bu mümkün değil! Yapamaz! Sonuç, yine başa dönüp, kullanıcılar ile görüşüp, onlara da uyacak şekilde tekrar düzenleme yapmak olacak.

NOT: Son kısımda bahsettiğim şeyler sadece yazılımcılar için geçerli değildir. Bir bilişim alt yapısı kurulumu yapılacak ise de geçerlidir. İşi size veren kişinin hangi marka switchi hangi marka kabloyu, kabloları nereden geçireceğinize karışmasına izin vermeyin. Örneğin bu yer bir fabrika ise oradan bir elektrik bölümü vardır. Kabloların nereden geçmesi gerektiğini patron ile değil bu elektrikçiler ile görüşmelisiniz. Bu görüşmeler sonucunda da en mantıklı olanı yapmalısınız.

 

Sonuç Olarak…

Bu noktaya kadar yukarıda sorduğumuz sorulara cevap vermiş olduk sanırım.  Buraya kadar okuduğunuz halde kafanız karışmış olabilir. Bu yüzden maddeler halinde özetleyelim.

  1. Programı yazmaya başlamadan önce mutlaka, programı kullanacak olan kullanıcılarla da görüş.
  2. Olabildiğince tüyo ve püf nokta topla.
  3. Programı yazarken bir kullanıcı gibi düşün. Basit ve kullanışlı olmalı. Gerekirse yazım aşamasında kullanıcılara göster.
  4. Programı yazarken işlemleri olabildiğince basit şekilde yazmaya çalış.
  5. Hemen bitiş noktasına varmak için çabalama, vakit harca, kafa patlat ve bir kere yaz. Bir daha geri dönmek zorunda kalma.
  6. Aşama aşama kullanıcılardan onay al. Kullanıcılar ile birlikte ilerle. Olabildiğince tüyo al.
    1. Çünkü her zaman “Aaah biz bunu söylemeyi unutmuşuz.” cümlesini duyabilirsiniz.
  7. Bir kullanıcı gibi test et. Olabildiğince yanlış veriler girerek, alanları boş geçerek testlerini yap.
    1. Hatta direk kullanıcılara test ettir. Sen ne kadar kullanıcı gibi düşündüğünü düşünsende onlar programı kıracak bir yolu hep bulur…

 


Evet arkadaşlar Bir Yazılım Projesine Başlamak– Tavsiyeler #2  yazımda bu kadar olsun. Proje geliştirmede çevresel etkenleri de denkleme sokarak olabildiğince basit düşünüp temiz bir iş çıkarmak hakkında konuştuk.

Eğer ilginizi çekebildiysem o zaman takipte kalın. Yeni bir yazının ne zaman geleceği belli değil.

Yazılım konusunda daha fazla içerik için tıklayabilirsiniz.

Yorum Yap

Yazar Hakkında

Liseden, Ağ Sistemleri ve Yönetimi bölümünden mezun oldum. Üniversiteden (2 yıllık), Bilgisayar Programcılığı bölümünden mezun oldum. Şuanda da AÖF, Yönetim Bilişim Sistemleri bölümünde okumaktayım. Uzmanlık alanlarım; Windows Sistemleri, HTML, CSS, C# ve SQL’dir. Hobi olarak uğraştığım genel konular, Photoshop, After Affects, Corel Draw’dır. Film, YABANCI dizi, Anime izlemeyi ve Manga okumayı severim. Arkadaşlarımla yürüyüş yapmayı ve grup olarak aktivitelere gitmeyi severim. Geri kalan zamanlarımın tümü bilgisayar karşısında geçer.

Yorum Yap

Yorumlar (4)

  1. Alper Karaman

    Eline sağlık mustafa güzel bir devam yazısı olmuş. Ben bu yazıyı paylaşırım 🙂

    • 10 ay önce

      Teşekkürler devamı kısa zamanda gelecek. Teşekkürler ^_^

  2. Hikmet Eryıldız
    10 ay önce

    Eline sağlık. Çok açıklayıcı olmuş. Yazının 3. kısmını sabırsızlıkla bekliyoruz.