cenk | May 4th, 2007

Prototip (ilkörnek) Yazılım Geliştirme

spYazılım geliştirmek artık sadece kod yazmaktan ibaret değil. Gün geçtikçe tasarımcılar mühendislik, mühendisler de tasarım bilgi ve becerilerini artırıyorlar.

Ticari bir yazılım projesinde prototip kullanılması işleri kolaylaştıracaktır. Hem profesyonelce sunumlar yapabilmek hem de ürünün karşı tarafa daha iyi ifade edilebilmesi açısından çeşitli katkıları olacak, iletişimi artıracaktır.

Bu konuda Hal Helms tarafından yazılmış bir yazıyı sizlerle paylaşmak istedim, orijinali (ingilizce) burada.

 

Emotional Design: Why We Love (Or Hate) Everyday Things (Donald Norman) sadece kullanışlılığın tek başına yeterli olmadığını savunuyor. Norman, nesneleri değerlendirişimizde üç etken olduğunu belirtiyor: sezgi, etkileşim ve yansıma. Sezgisel çekim, bir Ferrari ya da iPod’a karşı hissettiklerinizle açıklanabilir. Güzel görünüşlü, içinde oturmak (Ferrari) ya da ona dokunmak (iPod) istiyorsunuz. Etkileşim çekimi, çok iyi çalışan bir nesnenin takdir edilegelmesidir diyebiliriz. Yansıma ise, anlamlandırma ve kendini bulma gibi açıklanabilir.

Norman, iyi tasarımın bu üç öğeyi de içerdiğini, aynı zamanda bu nesnelerin insanların daha iyi çalışmalarını sağladığını iddia ediyor. Düşünce bana haklarında bir çok kez konuştuğum prototipleri (ilkörnek) çağrıştırdı.

Tasarım dünyasında, prototip bir zorunluluktur diyebiliriz. Palm Pilot’un tasarımcısı bu cihazı tasarlarken cebinde bir tahta parçası ile dolaşıyordu. Bu nesne rahat kullanılabilecek bir şey mi? Hangi ebat çok büyük olarak algılanırdı? Ya da çok küçük? Düğmeler doğru tasarlandı mı?

Nedense, bir çok geliştirici (developer) tasarımın ancak grafik sanatçılarına bırakılması durumunda iyi sonuçlar elde edilebileceği kanaatindedir. Prototip gereksiniminden bahsederken altını çizmek istiyorum, olası beklentilerimizin açığa çıkartabilmesi, görünüşünden ve hissedilişinden (look & feel) ziyade, tasarlama süreci içerisinde çalıştırılması, kullanılması ile sağlanabilir. iPod’un çevirmeli arayüzünü görene kadar, onu isteyip istemeyeceğimi bilemezdim.

İş yazılımı geliştirme aşamalarında prototiplerle çalışmanın, hem geliştiren hem de işverenin sırtından bir takım riskleri aldığını düşünüyorum. Şartname dokümanları avukatlar için kullanışlı olabilir, bizler için değil. Prototipler, yeni fikirleri denememize ve kullanıcı reaksiyonlarını gözlememize imkan sağlar. Bu sayede tasarlanan nesnenin sezgisel ve etkileşime dayalı etkilerini, hatta belki yansımalarını görebiliriz.

Uzun bir süredir prototipler kullanıyorum. İlk denemelerim sadece etkileşim amaçları üzerine keşifler yapmak ile sınırlıydı. “Görünüşe takılmayın” derdim sunum yaparken. Deneyimle sabitlendi ki neredeyse her işveren, görünüşe takıldı. Sonunda anladım ki, onların bu ihtiyacını karşılamadan – her ne kadar bana ikincil bir ihtiyaçmış gibi gelirse gelsin - benim için daha önemli olabilecek aşamalara geçmek zorlaşıyordu, örneğin yazılımın işleyişine.


Abraham Maslow “İhtiyaçlar Hiyerarşisi Teorisi“nde tipik gereksinimlerimizi şöyle sıralar:

  1. Fizyolojik gereksinimler : su, yiyecek, uyuma, barınma
  2. Güvenlik gereksinimi : fiziksel, ekonomik, konfor
  3. Ait olma gereksinimi : kabul görme, aidiyet
  4. Sevgi, sevecenlik gereksinimi : sevgi, tutku
  5. Saygınlık gereksinimi : ustalığın saygınlığı, prestij, statü
  6. Kendini geliştirme gereksinimi : yenilikçilik, yaratıcılık, derin öğrenme

Maslow, “Belirli bir kategorideki gereksinimler tam olarak karşılanmadan kişi bir üst düzeydeki kategorinin gereksinimlerini algılamaz, böyle gereksinimleri yoktur” demektedir. Şartnameler veya ihtiyaçlar dokümanları ile çalışmaya başlamak konusunda sorun, UML diyagramlarının ve benzerlerinin aslında işverenin temel kaygılarına hitap etmeyecek olmasıdır: nasıl görünecek ve hissedilecek? Onunla çalışmak nasıl olacak?

Prototipler tüm bu sorulara cevap verir, fikirlerimizi sergileyebilmemiz ve işverenin konu hakkındaki düşüncelerini anlayabilmemiz için en uygun araçtır. Bu sayede, sözcüklerin ötesinde bir iletişim kurabiliriz. İyi uygulamaların da - iyi tasarımların olduğu gibi - sezgisel, etkileşim tabanlı ve yansıma albenilerine sahip olması gerektiğine inanıyorum. İşe başlamak için doğrudan kapsamlı bir prototip (ilkörnek) hazırlamaktan daha iyi bir yol düşünemiyorum.

Düğümküme'yi zamanında takip edebilmek için öncelikle RSS'den abone olun. Ayrıca bkz RSS nedir, nasıl kullanabilirim?

ali | March 8th, 2007

İfade Özgürlüğü Yazılımları

Bir yandan Amerikan şirketleri, Internet sansürü konusunda dünyada bir numara olan Çin hükümeti için filtrelemeye yönelik yazılım projeleri geliştirirken, öte yandan buna tepki olarak bağımsız bazı oluşumlar hükümetlerin engellediği sitelerin veya koydukları filtrelerin etrafından dolaşabilecek sistemler geliştiriyorlar. Bu sistemlerin ortak özelliği Internet kullanıcısını anonimleştirmeleri ve istedikleri bilgiye proxy’ler yoluyla ulaşmalarını sağlamaları.

Anonymizer, özel kişilere ve şirketlere satılan bir yazılım iken, şimdi Çin ve diğer politik ve dini nedenlerden Internet’i sansürlenen ülkelere yazılımlarını ücretsiz vermeyi planlıyorlar.

Tor, Cambridge’li bir grup gönüllünün başlattığı bir proje. Çalışma prensibi, kullanıcıların bant genişliklerindeki boşlukları paylaşmak, böylelikle hem kullanıcılara anonimlik sağlamak hem de sansürlenen ülke kullanıcılarının içeriğe dolaylı yoldan ulaşmalarını sağlamak.

psiphon.jpg

Toronto Üniversitesi’nde GPL lisanslı Psiphon projesi de Tor’a benzer bir şekilde çalışıyor. Tor’dan ve Anonymizer’dan ve yine benzer şekilde çalışan Circumventor‘dan bir farkı, özellikle sansüre karşı başlatılmış bir girişim olması. Bu elbette yazılımın okullar gibi bazı içeriğin geçerli olabilecek nedenlerle kısıtlandığı mekanlarda kullanılmasına engel değil. Anonimlik için geliştirildiğinden, Tor; Psiphon ve Circumventor’un aksine, sansürlü ülke dışındaki birinden doğrudan yardım almadan çalışabilse de bu Tor’u IP filtreleme yoluyla daha kolay bloke edilebilir kılıyor.

İlginç olan, Tor ve Anonymizer’ın ABD hükümeti ve ordusu tarafından anonim olarak bilgi toplama ve Ortadoğu’daki askerleri ile bağlantı kurma gibi kullanımlarından ötürü destek almaları. Oysa 10 yıl kadar önce aynı şifreleme teknolojisi teröristler ve kanun kaçakları da kullanabilir korkusuyla ABD tarafından yasaklanmıştı. Şu anda şifreleme ve web’de anonim surf yapma özgürlük araçları olarak görülüyor.

tor-revealed.jpg

Anonymizer, Psiphon ve Tor kullanıcının ulaşmak istediği hedefin gizlenmesi yoluyla çalışıyor. Veriler şifrelenerek özel proxy makinalarına aktarılıyor, sansür uygulanmayan batı ülkelerinde bulunan bu proxy sunucular da içeriği kullanıcıya aktarıyor.

Bu programlar aslında sansür uygulayan ülkeler tarafından engellenemez nitelikte değil. Psiphon ve Anonymizer için hükümetler şu yöntemleri kullanabilir:

  • Hostname’i SSL sertifikasıyla uyuşmayan sitelerin bloke edilmesi (Çin’in IP güvenlik duvarından ziyade Ortadoğu’da kullanılan proxy sunucu sansürlemesi için daha uygun bir yöntem)
  • Konutlara verilen IP aralıklarına yapılan web bağlantılarının bloke edilmesi

Belli açıkları olmalarına rağmen, şu an için bu yazılımların engellenmesi için sansürcü hükümetlerce fazla bir çaba sarfedilmiş değil. Şu an için çok yaygın kullanılmadıklarından fazla önemsenmiyorlar olabilirler. Belki de, bu yazılımların fazla yaygın olmamalarında en büyük etken, ifade özgürlüğünün kısıtlandığı ülkelerdeki insanların, hükümetlerin sansür için gösterdikleri gerekçeleri haklı bulmaları ve sansürü kabullenmeleri.