yazılım

Kamuda Yazılım Projeleri

Konu:

php-ist İstanbul PHP Konferansı (2013) geçtiğimiz günlerde gerçekleşti. Bu konferansta konuşmacı olan değerli yazılımcı dostum Hüseyin Mert, kamuda yazılım projelerinin ne durumda olduğunu, genel itibariyle PHP üzerinden anlatmış. PHP ile pek yakın değilim ve konuşmanın PHP içeriğinden uzağım. Yine de PHP yerine herhangi diğer bir dili düşünecek olursak; şüphesiz ki Hüseyin hocamın söylediklerinden tüm yazılımcılar için çıkarılacak dersler var. Sunumun videosu şurada: http://www.paylas.com/video/istanbul-php-konferansi-huseyin-mert

Kendimce videodan çıkardığım dersler;

- Kamu kurumları (ve aslında tüm şirketler / herkes) 'çalışan', 'patlamayan' / 'çökmeyen', çökse de hızlı bir şekilde tekrar çalışır hale getirilebilen, sıkıntılar olsa bile sunum katmanında, (yazılımcı olmayan) herhangi bir insan için anlaşılır olan mesajlar gösteren yazılımlar istiyor. Eğer yazılımınız patladığında ekrana anlaşılmayan yazılım terimleriyle dolu hata mesajları getiriyorsa, bu görünen her bir yazılım terimi, yöneticilerin bilinçaltına 'kötü' olarak kazınıyor.

- Kamu kurumları her daim 'destek' alabilecekleri ürünleri tercih ederler. Kısa zaman zarfında patlayan-çatlayan yazılımın (hatta genel olarak tüm sistemin) imdadına koşacak özel ya da tüzel kişiler bulmak imkansız ya da zorsa tercih edilmez. Dolayısıyla Oracle, Microsoft gibi büyük oyuncular gerçek anlamda destek verip vermemesi önemli değil ancak 'destek' verecekmiş gibi 'ben buradayım, ne zaman olursa arayabilirsiniz' görüntüsü (intibaı) veriyorsa 'güvenilir' oluyorlar. Bu bir ihtiyaç, o yüzden bir yazılım dili ya da ürününü iyi bir yere getirmek istiyorsak, göstermelik bile olsa 'destek' şart.

- Dokümantasyon şart. Bir şekilde yazılımlar üretiyoruz ve bunları kullanıyoruz. Dokümantasyonu olmayan yazılımlar revaçta. Tamam, kodu okuyarak yazılımın ne yaptığı anlaşılıyor ama işin içine giren yeni biri bu projeyi anlayana kadar çok uzun bir müddet geçiyor. Kısa zamanda halledilebilecek mantığı uzun bir zamanda kavrıyor. Dolayısıyla insanlara yazılımınızı ya da ürününüzün devamlılığını kanıtlayamama ihitmali ortaya çıkıyor. Gün geliyor, yazılımı geliştirmek yerine baştan yazmaya karar veriliyor ve bunun belki de en büyük nedeni kötü yazılmış, daha doğrusu yazılmamış dokümantasyon, anlaşılmayan kod parçaları oluyor.

- Testler yapılmıyor, yük anlaşılmıyor. Küçük ölçekte tıkır tıkır işleyen sistemlerde özellikle büyük yüklere açıldığında patladığını ya da 'sistemin göçtüğünü' görüyoruz. Genel anlamda yapılan yazılım yerinde olsa da tüm sistem yük testine tabi tutulmadığından, yük geldiğinde sıkıntılar ortaya çıkıyor ve genel anlamda yine yazılımın kendisi 'kötü' oluyor. Yazılımınız iyi olabilir, belki de donanım yetersizliğinden ya da konfigürasyon yanlışlığından sıkıntıya düştünüz, ancak yük testini yapmadığınızdan sistem gün geldi çöktü ve fatura donanım eksikliğine değil, yazılıma, ürünlere hatta yazılım diline çıktı. Bu noktadan sonra '... kötü bir programlama dili' olarak anılmaya başlıyor.

Kısaca, işler 'adam gibi' yapılmadığı için sonuçta adı kötüye çıkıyor ve bundan hepimiz etkileniyoruz. Daha iyi bir yazılım dünyası için es geçtiğimiz standartları önemsemekte fayda var.

SaaS Ders Notları

Berkeley Üniversitesi'nden Armando Fox ve David Patterson'ın internet üzerinden ücretsiz olarak verdiği CS169 SaaS derslerinden aldığım notları paylaşmaya çalışacağım.

Derse Giriş

Legacy SW vs Beautiful SW:
Müşteri ihtiyaçlarını karşılayan fakat gelişime açık olmayan yazılıma Legacy software adını veriyorlar. Bu tip yazılımlarda %60 bakım maliyeti yeni şeyler eklemek için, %17 hataları gidermek için gerekiyor.
Bunun yerine gelişime açık Beautiful SW öneriliyor.
Waterfall - Spiral - Agile
Waterfall yöntemi uzun bir sürece dayanıyor. Dokümantasyon çok daha net olmalı. Bu tip geliştirme NASA'nın Curiosity ve benzeri projeleri için iyi olabilir. Çünkü müşteri çok hızlı bir şekilde değişim ve gelişim istemeyecektir.

Ücretsiz Linux Yaz Kampı

Konu:

Linux Kullanıcıları Derneği, İnternet Teknolojileri Derneği ve Bolu Abant İzzet Baysal Üniversitesi ücretsiz Linux Yaz Kampı düzenliyor. Kamp 17-31 Ağustos tarihleri arasında olacak. Katılımda kamu ve üniversite bilgi işlem personellerine öncelik verilecek, fakat herkes katılabilecek. Başvurular 31 Temmuz'da sona eriyor.

Kamptaki eğitimler şu şekilde;

Linux Sistem Yönetimi (1)
Linux Sistem Yönetimi (2)
PHP ile Yazılım Geliştirme
Ruby/Rails ile Yazılım Geliştirme
Java EE ile Yazılım Geliştirme Atölyesi

Şahsen Java kısmını duyunca heyecanlandım fakat bu kursa katılabilmek için Github bağlantınızı ve Java örnek kodlarınızı görmek istiyorlar. Genelde iş yerinde yaptığımız işleri açık alanlarda sunmamız mümkün olmayacağından, bu koşulu sağlayamıyorum. (Zaten iş yerinden 15 günlük izin almam da biraz zordu) Fakat Github gibi açık kaynak ortamları teşvik edici bir koşulun olması bu kampa uygun olmuş, takdir ettim.

Berkeley Üniversitesinden Software as a Service Dersi

Konu:

İnternet üzerinden sunularn online eğitimler çok büyük bir fırsat. edX.org sitesi MIT, Harward, Berkeley gibi Amerika'nın önde gelen üniversitelerinde verilen dersleri internet üzerinden ücretsiz olarak sunan sitelerden biri. edX.org'da pek çok ders var, fakat bunlardan benim adıma önemli olanlardan biri Software as a Service dersi. Bu ders daha önce Coursera.org'da da verilmişti. Daha sonra da birkaç defa yine edX.org'da tekrarlandı. Vakit bulup da tam anlamıyla takip edemediğim için bitiremedim ama hala içimde bir ukte var.

Bu derste Ruby programlama dili ile bulut bilişim olarak bildiğimiz Cloud Computing'in bir dalı olan Software as a Service, ya da kısa adıyla SaaS anlatılıyor. SaaS nedir diye merak edenler için daha önce şu yazımda bir görsel kullanmıştım, onu buraya iliştireyim. Tam olarak Türkçeye çevirmek istersek de "Hizmet olarak Yazılım" gibi bir şey ortaya çıkıyor.

Dersin "Hakkında" (about) sayfasından anladığım kadarıyla bu derste;
- uzun ömürlü yazılımlar üretebilmek,
- bunun için Agile olarak da bildiğimiz çevik yazılım geliştirme tekniklerin kullanımı,
- bunun sonucunda da bir servis olarak sunulacak yazılımı üretmek
öğretiliyor.

Beş hafta süreceği öngörülen bu derste başarılı olanlara BerkeleyX sertifikası veriliyor. Ders bugün yani 2 Temmuz'da başlıyor.

Dersin tanıtım videosu:

Dependency Injection - Bağımlılıkların Zerki

Konu:

'Dependency Injection' her yazılımcının en azından kıyısından köşesinden bilmesi gereken bir terim. Bunun kafada tam şekillenmesi, somutlaşması için birilerinin çizip anlatması gerekiyordu. Anthony Ferrara bunu yapmış. Her ne kadar anlatımı bir miktar PHP üzerinden olsa da her yazılımcının anlayabileceği nitelikte anlattığını düşünüyorum. Via tserpico

Sayfalar

Subscribe to RSS - yazılım