Hep Aramızda Olacaklar!

Güney Gönenç'i yitirdik bir süre önce. Pek duyan oldu mu bilemem. Nereden tanırsın derseniz de TBD başkanlığı yaptığını bilmezden önce "Hep Aranızda Olacağım Frederic Joliot-Curie'nin Yaşamöyküsü" kitabını okumuştum. Öldükten sonra öğrendim TBD başkanlığı yaptığını. Güzel insanlar güzel şeyler yapmaya çalışırlar, bize de onları okumak, bir şeyler öğrenmek, nedense onların değerini öldükten sonra anlamak düşer.

Hep aranızda olacağım kitabı, benim için oldukça değerli bir kitap (içeriği kadar bir arkadaşımın doğum günümde hediye etmesi de cabası). Doktora sürecimde arkadaşlarımla tartıştığım bilim ne için, kimin için, nereye kadar sorularına bir nebze olsun yanıtlar vermemi, kendimce kafamda bir bilim-bilim insanı portresi oluşturmamı sağlayan kitaplardandır. Bilim insanı nasıl olmalıdır - özellikle bence - sorusuna yanıt arayanlar varsa edinsinler ve okusunlar bu kitabı. Örnek bilim insanlarından birini - ve hatta bir kısmını - en azından öğreniyorsunuz. Günümüzde bu değerlerin ne kadarı kaldı bilinmez ama insanlık eninde sonunda insanı ve insanlığı değerli kılan dönemleri tekrar yaşayacak, buna dair umudum sonsuz.

Uzun Aradan Sonra

Çok uzun zamandır kodveus'a bir şey yazmıyordum. Yazamamamın  nedeni olarak "özel sebepler" deyip geçeyim. Aslında Mehmet ve Emre dışında pek yazanımız olmuyor bir süredir. Emre, askerde olunca ağırlık Mehmet'in üzerine kaldı. Sağ olsun O da elinden geleni yapıyor.
Bu uzun süre boyunca bilişim alanında birçok gelişme yaşandı. Aklımda kalanlar; internette filtre-sansür konusu, dünyadaki hareketlilikler içinde sosyal paylaşım sitelerinin rolü, Wikileaks, Bilgisayar Mühendisleri Odası kurulması çalışmaları, bilgisayar bilimleri alanından ölümler... Teknik gelişmeler her dönem çok hızlı şekilde oluyor zaten. Onları saymıyorum.
Elbette bu konular üzerine bu kadar zaman geçtikten sonra sadece bir iki laf etmek çok doğru değil. Bir şeyler söylenecekse ayrıntılı yazılmalı. Ama "bilgisayar alanında ölümler" konusuna değinmeden geçmek istemiyorum. Çünkü Steve Jobs ölümü üzerine hala bir şeyler söyleniyor, ilgili kitaplar satılıyor. Ama ben bilgisayar bilimleri alanından ölümler diye bahsederken Steve Jobs'ın ölümünün gölgesinde kalan iki ustadan söz ediyorum.  Elbette bilişim dünyasını yakından takip edenler diğer ölümleri de duydu. Ama genele yönelik haberlerde çok fazla altı çizilmedi. Oysa bilgisayar bilimleri alanına -bence- kesinlikle Steve Jobs'tan daha fazla katkıları olmuştu. Evet, C programlama dilinin ve Unix işletim sisteminin geliştiricilerinden Dennis Ritchie ve yapay zeka alanındaki çalışmaların öncüsü John McCarthy'den bahsediyorum.
 Ne yazık ki "ölü"ler bile eşitsizlikten payını alıyor, "ölüm"ler bile "kullanılabilirlik" açısından sınıflandırılıyor. Steve Jobs'ın hayatını herkese örnek olarak göstermek ve onu toplumun gözünde aklamaya çalışmak, bilimsel çalışmanın veya genel olarak üretimin ne için yapıldığını görmek açısından önemli. "Steve Jobs"lar yaptıklarıyla insanlar için model olarak dayatılırken, bilgisayar biliminin mihenk taşları olan bilimciler satır aralarında bırakılıyor. Yaşamda tek yol olarak zengin olmak ve bunun için her yolun mübah olduğu gösterilirken, insanlığa katkı koymanın yolu gizleniyor. Neyse, uzun süre sonra yazdığım bu yazıyla sizi daha fazla sıkmadan bu konuyla ilgili sözü Richard Stallman'a bırakayım:
...“Öldüğüne memnun değilim; ama gittiğine memnun oldum”. Kimse ölmek zorunda olmayı  hak etmiyor- Ne Jobs, ne Bay Bill, hatta onların yaptıklarından daha fazla kötülük yapmış insanlar bile. Ama hepimiz Jobs'ın, insanların bilgisayar kullanmasına olan kötü etkilerinin sonlanmasını hak ediyoruz. 

Sistem Kullanılabilirlik Ölçeği (System Usability Scale)

Bir sistemin kullanılabilirliği ISO 9241’in 11. bölümünde belirtildiği gibi; sistemi kimin, ne için ve hangi ortamda kullandığı gibi şartlar ve çevresel koşullar dikkate alınarak ölçülebilir.

Kullanılabilirlik üç başlıkta incelenir:

  • Etkililik : Kullanıcılar hedeflerine başarıyla ulaşabiliyorlar mı? 
  • Etkinlik : Hedeflere ulaşabilmek için ne kadar kaynak ve emek harcanıyor? 
  • Tatmin : Kullanıcı bu deneyimden tatminkar mı?


SUS, 10 soru ve bunlara verilecek 5 yanıt seçeneği ile gerçekleştirilir.

  • Bu sistemi sıklıkla kullanacağımı düşünüyorum. 
  • Sistemi gereksiz derecede karmaşık buluyorum. 
  • Sistemin kullanımının kolay olduğunu düşünüyorum. 
  • Sistemi kullanabilmem için teknik birinin desteğine ihtiyaç duyacağımı düşünüyorum. 
  • Sistemin gereksinimlerin birçoğunu çok iyi gerçekleştirdiğini düşünüyorum. 
  • Çok fazla tutarsızlık olduğunu düşünüyorum. 
  • Birçok kişinin bu sistemi kullanmayı kolayca öğreneceğini düşünüyorum. 
  • Sistemi çok hantal, ağır buldum. 
  • Sistemi kullanırken çok güvende hissettim. 
  • Bu sistemi kullanmaya başlamadan önce öğrenmem gereken çok şey var.

Yazılım Geliştirme Anahtar Performans Göstergeleri (KPIs)


Yazılım geliştirmede anahtar performans göstergeleri (KPIs - Key Performance Indicators)
1. Halstead Karmaşıklık ölçümleri ile kaynak kodun karmaşıklığının belirlenmesi.
2. Cyclomatic yazılım kodu karmaşıklığı.
3. Sistem Kullanılabilirlik Ölçeği (System Usability Scale).
4. Yazılım geliştirme kalitesi(Quality Assurance)
5. Gerçek ortam yazılım hata sayısı.
6. Kaynak kodun kaybolması (okunamama, karmaşıklaşma) sonucu uygulamayı yeniden tasarlama ve yazma zamanı yüzdesi (%).
7. Hata sayısının toplam kod satırı sayısına oranı.
8. Yazılım gereksinimlerinin yüzde (%) olarak gecikme oranı, zamanında belirlenememe.
9. Dış kaynak yazılım geliştirme yüzdesi (%).
10. Kritik hatanın toplam hataya oranı(%).
11. Sürüm için planlanan özellik sayısına karşın gerçekleşen özellik sayısı.
12. Yorumsuz checkin sayısı yüzdesi (%).
13. Hata düzeltme için harcanan zaman yüzdesi (%).
14. Testlerde bulunan hata sayısı.
15. Tekrar ortaya çıkan hata sayısı oranı (%)
16. Bir günde yazılan kod satır sayısı.
17. Tasarım süresinin geliştirme süresine oranı.
18. Yeni özellik eklenme oranı
19. En çok katkıda bulunan, en aktif takım üyesi

Yazılımda Kalite Güvencesi (Quality Assurance)


Fonksiyonel olmayan gereksinimler genellikle bir sistemin kalitesi olarak adlandırılır ve ikiye ayrılır:
  • Güvenlik ve kullanılabilirlik gibi çalışma zamanı göstergeleri.
  • Test edilebilirlik, bakım kolaylığı, genişleyebilirlik ve ölçeklenebilirlik gibi yapısal göstergeler. 
Fonksiyonel olmayan gereksinimlere örnekler:
  • Performans
  • Yanıt süresi
  • Kesintisiz çalışma 
  • Geri alınabilme
  • Güvenlik
  • Güvenilirlik
  • Yönetilebilirlik
  • Kullanılabilirlik
  • Birlikte çalışılabilirlik
Fonksiyonel Olmayan Gereksinim Testleri
  • Performans testi
  • Yanıt süresi testi
  • Kesintisiz çalışma testi
  • Geri alınabilme testi
  • Güvenlik testi
  • Kullanılabilirlik testi