Dr. Volkan Tunalı'nın Kişisel Blogu

Bilgisayar, Teknoloji, Bilim, Sanat

Archive for the ‘programlama’ tag

Yazılım Mühendisliği Üzerine

leave a comment

YazilimMuhendisiyiz.biz ekibiyle yazılım mühendisliği üzerine yaptığımız röportajı aşağıda bulabilirsiniz. Özellikle üniversitelerin Yazılım Mühendisliği bölümleri konusunda biraz daha fazla bilgi sahibi olmak isteyenlerin yararlı ipuçları bulacağını umuyorum. Yazılım mühendisliğiyle ilgili olarak ayrıca YazilimMuhendisiyiz.biz sitesini ziyaret etmenizi öneririm.

Kendinizden biraz bahsedebilir misiniz?

Marmara Üniversitesi Bilgisayar Mühendisliği mezunuyum. Mezuniyetimden sonra aynı yazılım şirketinde kuruluşundan itibaren 11 yıl çalıştım. Bu süreçte yüksek lisans ve doktoramı tamamladım. Doktoradan sonra akademisyen olma fırsatı doğdu ve 2012’de Maltepe Üniversitesi Yazılım Mühendisliği Bölümü’nde öğretim üyesi olarak çalışmaya başladım. 2015’te ise Celal Bayar Üniversitesi’nde yine Yazılım Mühendisliği Bölümü’nde çalışmaya başladım. Çocukluğumdan beri bilgisayar programlamayla hep iç içe oldum; programlamayı her zaman çok sevdim. Hatta bir an önce bu işi meslek olarak yapmak için endüstri meslek lisesi Bilgisayar Bölümü’nde okudum.

Sizce Yazılım Mühendisliği nedir?

Mühendisliğin tanımlarından biri kabaca şöyle: “Mühendislik, sistemlerin tasarımı, inşa edilmesi ve işletilmesine adanmış bir meslektir”. Bu tanımı Yazılım Mühendisliğine uyarlayabiliriz. Gerçek hayat sorunlarına çözüm olarak geliştirilecek yazılım sistemlerinin tasarlanması ve kodlanarak çalışır hale getirilmesiyle ilgili çalışan meslek dalıdır. Burada şunu iyi vurgulamak gerekli: geliştirilen sistemler çok çeşitli ölçeklerde olabilir. Küçük ölçekli sistemleri oluşturmak için formel bir mühendislik eğitimine çok gerek olmayabilir. Özellikle de yazılım sistemleri söz konusu olduğunda, ilgili ve hevesli herhangi birinin de oldukça başarılı işler çıkardığını görebilirsiniz. Ancak, büyük, kapsamlı ve karmaşık sistemlerin analizi, tasarımı, oluşturulması ve bakımı genellikle çok sayıda ve çeşitli zorluklar içerir. Bütün bu zorlukların üstesinden gelebilmek, sorunsuz ve verimli çalışacak bir sistemi optimum maliyetle oluşturabilmek, ciddi bir mühendislik eğitimi gerektirir. Mühendislik eğitimi ayrıca ekonomi, verimlilik, çevre, ve mühendislik etiği gibi konularda da bilinç kazandırmayı hedeflemektedir.

Celal Bayar Üniversitesi Yazılım Mühendisliği bölümünün eğitimi, akademik kadrosu, dersleri ile ilgili bilgi verir misiniz?

Henüz mezun vermemiş, yeni kurulmuş sayılabilecek bir bölüm olarak Yazılım Mühendisliği alanında dünya standartlarında bir öğretim programımız var. Öğretim programının oluşturulmasında, hocalarımızın önceki üniversitelerindeki aynı bölümden gelen bilgi birikimi ve deneyiminden de yararlanıldı. Ayrıca, bölüm hocalarımızın akademik uzmanlıkları tamamen Yazılım Mühendisliği üzerine. Hocalarımızın çoğunun ciddi bir sektör geçmişi ve tecrübesi var (bu hocalardan biri benim). Sektörden gelen birikimlerimizi maksimum derecede derslere yansıtmaya çalışıyoruz. Bölümümüzü ayrıcalıklı kılan yönlerden birinin bu olduğunu düşünüyorum. Yazılım geliştirme yaşam döngüsündeki her aşama bizde en az bir ders halinde ele alınıyor. Zorunlu derslerimizin yanı sıra açmaya çalıştığımız seçmeli derslerle hem sektörel hem de akademik yönde konu çeşitliliği oluşturmaya çalışıyoruz. Bölümümüzde hem örgün hem de ikinci öğretim olması akademik kadromuz için biraz yorucu olmakta. Öğretim üyesi sayımızı arttırmaya çalışıyoruz. Zaman içinde bu konuda daha iyi bir duruma geleceğiz.

Biliyorsunuz tercih dönemi yeni bitti Yazılım Mühendisliği, Bilgisayar Mühendisliğini tercih eden adaylara tavsiyeleriniz nelerdir?

Bu bölümleri tercih edip yerleştirilmişlerse, tavsiye edecek pek bir şey kalmamış demektir, öncelikle tercih ve başarılarından dolayı tebrik ederim. Üniversitedeki mesleki dersler genellikle mühendislik temeli oluşturmaya yöneliktir. Piyasadaki güncel teknik ve teknolojileri yansıtmayabilir. Bu durum mesleğimizin doğasındadır. Her gün öğrenilmesi gereken yeni araçlar, programlama dilleri ve teknolojiler ortaya çıkmaktadır. Üniversitedeki derslerle bunlara yetişmeyi beklemeyin; mümkün olduğunca bu yenilikleri takip etmeye çalışın. Internet’i öncelikle bu amaçla ve verimli kullanmayı öğrenin. Mezun olduktan sonra da bu sürecin aynı şekilde devam edeceğini unutmayın.

Bilgisayar Mühendisliği ile Yazılım Mühendisliği arasındaki farklar nelerdir?

Aslında bir çok perspektiften karşılaştırma yapmak mümkün. Ben üniversitedeki bölüm öğretim programları üzerinden bir karşılaştırma yapmak istiyorum. Daha önce ifade ettiğim gibi ben Bilgisayar Mühendisliği bölümünden mezun oldum. Pek çok arkadaşım gibi ben de yazılım sektöründe çalıştım, yani yazılım mühendisliği yaptım (yani yapmaya çalıştım). Üniversitede aldığım temel birikim ve kişisel merakım işimde başarılı olmamı sağladı ancak iş hayatında zaman geçtikçe aslında iyi bir yazılım mühendisi olmak için iyi kodlamanın, iyi veritabanı bilgisinin yetmediğini, öğrenilmesi gereken çok daha fazla şeyin olduğunu fark ettim. Bu eksiğimi kapatmak için de erişebildiğim bütün kaynaklardan kendimi geliştirmeye gayret ettim. Şu anda Yazılım Mühendisliği bölümünde, işte bu konuların hepsi ayrı birer ders olarak ele alınıyor, mezunlar bunları bilerek piyasaya çıkmış oluyor. Bence bu çok ama çok önemli bir fark. Bunun dışında, öğretim programları karşılaştırıldığında iki bölümün de çok sayıda ortak dersi olduğu görülecektir. Çok sayıda ortak dersin varlığı iki bölümü birbirine benzer gibi gösterse de bütünsel olarak öğretim hedeflerindeki farklılık derslerin işleniş ve hedeflerine de mutlaka yansıyor. Tüm şartların eşit olduğu bir durumda iki bölümden hangisini tercih etmeliyim diye soranlara şunu söylüyorum: Eğer temel hedefin yazılım sektöründe çalışmak ve iyi bir yazılımcı olmaksa, yazılım mühendisliğini tercih etmelisin. Benim öğrenciliğim sırasında Yazılım Mühendisliği bölümü olsaydı, muhtemelen yazılım mühendisliğini seçerdim.

Yazılım sektöründe İngilizce şart mı? Sizce ne seviyede olmalı?

Kesin bir şekilde EVET! Her zaman söylediğim şeyi bir kez daha söylemek istiyorum. Üniversiteden mezun olmadan önce İngilizce konusunu halledin. Mezun olduğunuzda çok iyi derece İngilizce okuyabilir-yazabilir duruma gelmelisiniz. Konuşma kısmı size kalmış. Mezun olduktan sonra düzenli bir şekilde kursa gidip hallederim demeyin; asla zaman bulamazsınız.

İş olanakları ve maaş durumu nasıl?

Mesleğimizin güzel yanlarından biri de istihdam sorunu olmaması. İş bulamayan kimseyi duymadım ve başlangıçta maaş biraz düşük gibi görünse de kısa süre içerisinde ve göstereceğiniz performansa göre çok iyi maaşlar almaya başlarsınız. Ancak hemen şunu da vurgulamalıyım, firmaların her şeyi bilen değil işini iyi bilen, becerikli, sorunsuz ve temiz iş çıkaran, ekip içerisinde uyumlu çalışabilen mühendislere ihtiyacı var. Diploma genellikle iyidir ama her zaman işe yaramayabilir.

Yazılım Mühendisi ile programcıyı ayıran farklar nelerdir?

Aslında bu tür keskin ayrımlar yapmak çok zor. “Yazılım Mühendisi programlama yapmaz, yalnızca tasarım yapar, doküman hazırlar, programcı da bu tasarımı kodlar” gibi saçma, klişe bir düşünce var. Bundan kurtulmamız lazım. Yazılım Mühendisi, yazılım geliştirme süreçlerindeki her işi yapar, hem de çok iyi yapar, yapmalıdır. Yazılım mühendisi, aldığı mühendislik eğitimi sayesinde, geliştirilmekte olan sisteme bütünsel bir perspektiften bakabilir, sistemin ekonomisi ve verimliliği gibi konuları da dikkate alır. Programcılık eğitiminde bu tür bir bakış açısından ziyade programlama pratiğiyle doğrudan ilgili konular hedeflenir. Mezun olur olmaz büyük projelerde yazılım mimarı, ekip lideri, proje yöneticisi olarak çalışacağınızı düşünmeyin. Program yazma tecrübesi olmadan program yazacak bir ekibin lideri olmak bana pek anlamlı gelmiyor.

İlk hangi programlama dilinden başlanmalı?

Hangi dille başladığınızın bir önemi yok bence. Önemli olan meraklı olmak, sıkılmadan, bol bol deneme-yanılma yaparak programlama mantığını anlamaya çalışmak ve sonrasında da bol bol pratik yaparak dilin sunduğu tüm yetenekleri öğrenmeye çalışmaktır. Daha sonra başka bir dili öğrenmek her zaman daha kolay olacaktır. İlle de bir programlama dili adı vermemi isterseniz, yazımı basit ve anlaşılır olan bir dil olsa iyi olur, sanıyorum bugünlerde Python iyi bir seçim olabilir. Java ya da C# da düşünülebilir. Ama bence en iyisi BASIC :)

Yazılım kitaplardan mı daha iyi öğrenilir yoksa video derslerden mi?

Her iki kaynaktan da yararlanmak lazım. Ben kitapları tercih ederim, videolarda bazen basit bir şeyin örneklenmesi bile dakikalar sürmekte, ben sabredemiyorum. Kendinizi tanıyın, hangisini yararlı buluyorsanız ona yönelin. Ama şu bir gerçek, kendiniz kodlamadan, kodu kendiniz tuşlamadan bu iş olmaz. Bol bol deneyin, değiştirin tekrar deneyin, kurcalayın, merak etmeyin, bozulmaz. Ayrıca, kitaplardan daha öğretici olabilecek bir yöntem de başkalarının kodlarını okumaktır. Özellikle de açık kaynaklı ciddi projelerin kodlarına bir bakın, dünyada bu iş nasıl yapılıyor, en azından ilham alırsınız.

Bir programlama dili en iyi nasıl öğrenilir? Bir dili çok iyi biliyorum demek için ne kadarını bilmemiz gerekir?

Dilin yapısını zaten çabucak öğrenirsiniz, öğrenilecek fazla bir şey yok, kontrol ve döngü yapıları, dinamik bellek yönetimi, alt düzey dosya işlemleri, vs. kısa sürede syntax’a alışırsınız. İşe yarar bir proje geliştirmek için genellikle dille birlikte hazır gelen framework’leri de öğrenmek gerekir, örneğin, veritabanı işlemleri, ağ işlemleri, vs. Bunların hepsini tek tek ayrı ayrı öğrenmeye çalışmak verimsizlik oluşturabilir. Dolayısıyla, bence önce işe yarar bir proje fikri bulun (toy-project denilen türden). Bu projeyi yaparken ihtiyaç duyduğunuz şeyleri araştırın, takıldığınız şeyleri aşmaya çalışın. Sonuçta o dilin sunduğu çok sayıda özelliği uyguladığınız bir projeniz olur. Parça parça şeyler deneyerek öğreneceğinizden çok daha fazlasını öğrenmiş olursunuz.

İlk programlama deneyiminizden bahseder misiniz?

Ben 10 yaşımdayken ağabeyim programlama kursuna gitmiş ve eve bir bilgisayar aldırmayı başarmıştı. O günlerde nedense her yerde Commodore 64 varken biz Amstrad CPC464 almıştık (64 KB ana bellek, 4.77 Mhz işlemci, kasetçalar, yeşil-beyaz mono ekranlı süper bir şeydi). Önce oyunları kasetten nasıl başlatacağımı öğrenmiştim. Maalesef çok az sayıda oyun vardı ve piyasada Amstrad için oyun bulamıyorduk. Bilgisayarın yanında her nasılsa Türkçe yazılmış bir kullanım ve BASIC programlama kılavuzu gelmişti. O kılavuzu merakla okurken örnek programları da yazıp deniyordum. Kitaptaki örneğin bazı yerlerini rasgele değiştirip denerken bu iş çok hoşuma gitti. Bu bilgisayar ve bu kılavuz belki de benim bu mesleğe yönelmeme vesile oldu.

Neden çoğunlukla özel üniversitelerde var bu bölüm?

Yazılım Mühendisliği’nin ve hatta bazen Bilgisayar Mühendisliği’nin bile üniversitede bölümü olan bir mühendislik dalı olmaması gerektiğini düşünen hocalar var. Zaman içinde Bilgisayar Mühendisliği üniversitelerde kendine sağlam bir yer edinmiş olmasına rağmen Yazılım Mühendisliği üniversitelerde yeni yeni yer buluyor. Bilgisayar Mühendisliği bölümü varken Yazılım Mühendisliği bölümünün farklılığı tam olarak anlaşılamıyor. Vakıf üniversitelerinde işin maddi bir boyutu da olduğu için Bilgisayar Mühendisliği bölümünün yanına bir Yazılım Mühendisliği bölümü açmak avantajlı görülebiliyor. Bilgisayar Mühendisliğiyle ortak dersler sayesinde Yazılım Mühendisliği bölümünün hoca ihtiyacı nispeten daha kolay karşılanabiliyor. Daha fazla bölüm, daha fazla öğrenci demek. Sanıyorum bundan dolayı vakıf üniversitelerinde Yazılım Mühendisliği bölümünü daha çok görüyoruz.

KTÜ mü, CBÜ mü, Fırat Üniversitesi mi?

KTÜ ve Fırat’taki bölümleri pek tanımıyorum, kıyaslama yapmam zor. Başarılı öğrencilerin tercihlerinde CBÜ’nün Ege Bölgesi’nde bir üniversite olmasının sağladığı bir avantaj olduğu kesin. Bölüm hocaları olarak Türkiye’nin en iyi yazılım mühendislerini yetiştiren bölüm olma vizyonumuz ve hedefimiz var. Henüz mezun vermedik, bu şimdilik bir dezavantaj. Mezun vermeye başladıktan sonra, öğrencilerimiz sektörde kendilerini göstermeye başladıktan sonra bölümümüzün bilinirliğinin ve tercih edilirliğinin artacağını düşünüyoruz.

Kaynak: http://blog.yazilimmuhendisiyiz.biz/2016/09/30/yazilim-muhendisligi-uzerine-yrd-doc-dr-volkan-tunali-ile-roportaj/

Java Programlama Kitabı Önerisi

leave a comment

Programlama [Dili] Nasıl Öğrenilir? başlıklı yazıma gelen yorumlarda sıkça “Hangi programlama dilini öğrenmeli” ve “Önerdiğiniz Türkçe bir kitap var mı” şeklinde sorular soruluyordu.

Bu sorulardan ilkine genellikle Java veya C# olarak cevap veriyordum. Programlamayla ilk kez tanışacaklar için bu dilleri öğrenmek nispeten kolay ve zevklidir. Ayrıca bu dilleri öğrenen biri bundan kesinlikle pişman olmayacaktır.

Türkçe kitap konusunda ise bugüne kadar net bir öneride bulunmamıştım çünkü piyasadaki Türkçe programlama kitapları hakkında pek bir bilgim yoktu. Birkaç hafta önce Seçkin Yayıncılık tarafından yayınlanan bir Java kitabını inceleme fırsatı buldum. Java’yı değil programlamayı bile hiç bilmeyenler için hazırlanmış bu kitap yazarının da ifade ettiği gibi “bir çocuğun önce konuşmayı sonra gramer kurallarını öğrenmesi”ne benzer bir öğretim yolu izliyor. Programlama öğrenmek için benim de kesinlikle uygun bulduğum ve desteklediğim bir yöntem bu. Ayrıca anlatılan herşey bol bol örnekle desteklenmiş.

Java ya da programlama öğrenmek isteyenlere bu kitabı tavsiye ederim. Kitapla ilgili ayrıntılar şu şekilde:

Java ile Nesne Programlama
Kitabın adı: Java ile Nesne Programlama / Java’nın Temelleri – Sınıflar ve Nesneler – Java API
Yazarı: Prof. Dr. Timur Karaçay
ISBN: 9789750219603
Sayfa Sayısı: 686

Written by vtunali

Ekim 11th, 2012 at 8:33 pm

Posted in Yazılım Geliştirme

Tagged with , ,

Google Python Sınıfı – Eğitim Videoları

leave a comment

Son zamanlarda Python programlama dili ile ilgili çok fazla olumlu şey duyduğum ve Python ile yapılmış çalışmalara sıkça rastladığım için merak edip neye benziyor diye görmek için www.python.org adresinden kurulumunu indirip kurcalamaya başladım. www.belgeler.org/uygulamalar/python-tutorial.html adresindeki Türkçe kılavuza da hızla gözatarak kabaca temel kavramları öğrenmeye çalıştım.

Birkaç gün önce Google’s Python Class sayfalarında Google tarafından düzenlenen 2 günlük bir Python eğitiminin videoları olduğunu gördüm ve seyretmeye başladım. İlk birkaç videoyu seyretmeye zamanım oldu şimdilik; çok basit ve temel kavramların çok gereksiz şekilde uzatıldığını görüp sıkıldıysam da yazılı olarak karşılaşma ihtimalimin düşük olduğu bazı güzel püf noktaların az da olsa veriliyor olması nedeniyle harcadığım zamana değdiğini düşünüyorum.

Google's Python Class Video 1

Python öğrenmek isteyenlerin ya da en azından neye benziyor diye merak edenlerin videolara bakmasını tavsiye ederim. Ben özellikle Python’un hafifletilmiş sözdizimini, string, dizi ve listelerle ilgili tek tip olan ve tutarlılık barındıran fonksiyonlarını, Matlab’ın komut satırı gibi birşeyleri kolayca deneyebilmemize olanak sağlayan arayüzünü çok beğendim. Eğitim videolarında vurgulandığı gibi, pratik ve çabuk sonuca ulaşacak programlar yazmak için ideal bir dil gibi görünüyor.

2 günlük eğitim toplam 7 videoya bölünmüş durumda; videoların içerikleri şöyle:

  1. Introduction, strings
  2. Lists and sorting
  3. Dicts and files
  4. Regular expr
  5. Utilities
  6. Utilities urllib
  7. Conclusions

Written by vtunali

Aralık 6th, 2010 at 12:24 pm

Hangi Programlama Dili Daha Popüler?

leave a comment

Programlama dillerinin dünya çapında popülerliklerini değerlendiren birkaç site var. Bu sitelerde 2010 itibariyle genel duruma grafiklerle bir bakalım.

www.langpop.com

Bu sitede popülerite için çeşitli kaynaklardan veriler derlenmiş. Bu kaynaklardan bazıları şöyle: Yahoo, Craigslist, Powell’s Books, Freshmeat, Google Code, Del.icio.us ve Ohloh. Her bir kaynaktaki popülerite ayrı ayrı görülebileceği gibi, aşağıdaki grafikte tüm kaynaklar eşit ağırlıklı kabul edilerek elde edilmiş genel durum görülmekte. Bu sonuçlara göre Java, C ve C++ oldukça popüler görünüyor. C# ise VB ve Delphi’ye göre epeyce popüler.

Popüler programlama dilleri

www.ohloh.net

Ohloh.net, açık kaynak yazılımlar ve yazılımcılar için bir dizin ve topluluk. Burada istediğiniz programlama dillerini seçerek birbiriyle karşılaştırmasını yapabiliyorsunuz. Aşağıdaki grafikteki değerler, buraya kayıtlı yazılımcılar tarafından “commit”lerin sayısından toplanmış (sitede, güncellenen kod satırı sayısı, proje sayısı vb. çeşitli kriterlere göre de değerlendirme yapılabiliyor ancak en makul yaklaşım “commit”lerin sayısı gibi görünüyor bana da). Bu grafiğe göre son 10 yıldır C++’ın popülerliği düşerken Java’nınki yükseliyor. C#, PHP ve Python’da da yükseliş görülürken, VB’nin çok değişmediği görülüyor.

Popüler programlama dilleri

www.tiobe.com

Tiobe’deki veriler de çeşitli kaynaklardan derlenerek oluşturuluyor. Aşağıdaki grafikte yaklaşık 10 yıllık bir karşılaştırma görülmekte. Bu grafikte öncekilerle paralel sonuçlar içeriyor.

Popüler programlama dilleri

Dünyada durum bu şekilde. Acaba Türkiye’de nasıl? Benzer çalışmaları Türkiye için de yapmak lazım aslında. Ya da en azından yazılım sektöründe çalışanlar arasında belirli periyotlarla anketler yapılsa ve bunlar yayınlansa çok güzel olur. Belki de yapılıyordur, benim haberim olmamıştır. Bu konuda bilgisi olan varsa yorumlarıyla katılırsa çok memnun olurum. Kariyer sitelerindeki ve gazetelerin İK sayfalarındaki iş ilanları, piyasadaki programcılık/yazılımcılık kursları ve kitapları da popülerlik bakımından belli bir fikir verebilir sanıyorum.

Benim kişisel gözlemlerim ve tahminlerim Türkiye’de son yıllarda C# dilinin yaygınlaştığı, Delphi’nin eski popülerliğini .Net desteğine rağmen büyük ölçüde kaybettiği, Java’nın da en popüler diller arasında olduğu yönünde. Siz ne dersiniz?


29.10.2010 tarihli ek: Bu konuyla ilgili şu makale gözüme çarptı 7 programming languages on the rise. Makalede özetle Python, Ruby, MATLAB, JavaScript, R, Erlang, Cobol ve CUDA dillerinin de yükselişte olduğundan bahsediliyor. Diğerleri tamam da Cobol’u bu listede görmek çok ilginç.

Written by vtunali

Ekim 23rd, 2010 at 12:41 pm

Test! Test! Test!

leave a comment

Programdaki bir hatanın farkedildiği zamana göre geliştirici şirkete hem maddi olarak hem de prestij olarak verdiği zararın boyutu değişiklik gösterir.

  1. Programcının kendi testleri sırasında: Hatanın en zararsız olduğu, en çabuk ortadan kaldırıldığı aşamadır. Keşke bütün hatalar bu aşamada farkedilse.
  2. (Varsa) Test ekibinin testleri sırasında: Müşteriye ulaşmadan önce programınızı bir veya daha fazla aşamada test eden ve kalite kontrolünden geçiren bir ekip varsa kendinizi şanslı sayabilirsiniz. Bu aşamada farkedilen hatalar genelde rutin çalışma programınızda aksamalara neden olmak ve tekrar o konuya dönüş yapmanızı gerektirmek dışında zararsız sayılabilirler. Yine de can sıkıcı; keşke en başında farkedilseydi bu hata.
  3. Takım arkadaşları tarafından başka bir çalışmanın testleri sırasında: Bunu da 2. maddeye benzetebiliriz.
  4. Müşteriye yükleme ve eğitimler sırasında operasyon ekibi tarafından: Müşteride henüz ciddi boyutta veri girişi yapılmadığı ve dolayısıyla hata nedeniyle veri bozulması, işlerin aksaması gibi bir soruna neden olmadığı için çok ciddi boyutta bir zararı olmamakla birlikte operasyon ekibini zor durumda bırakan bir hata sinir bozucu olabilir.
  5. Müşteri tarafından erken bir zamanda: Farkedilen bir hatayı kodda arayıp bulmak ve düzeltmek işin en kolay tarafı. İşin zor tarafı ise müşterinin işine bir an önce devam edebilmesini sağlamak ve varsa bozuk verilerin düzeltilerek sorunlu iş süreçlerinin düzene sokulmasıdır. Operasyon ve müşteri destek ekibine yardımcı olmakla geçen saatler ve belki de günler programcının normal çalışma programının bir hayli aksamasına neden olur.
  6. Müşteri tarafından uzun bir kullanım süresinden sonra: Bu aşamada genellikle tonlarca hatalı veri oluşmuş ve kimsenin de dikkatini çekmemiştir. Bu hatalı veriler üzerinden hatalı raporlamalar yapılmış ve hatta resmî kayıtlara bu haliyle geçmiştir. Sorunlu verileri düzeltmek gerekir ama eskiye dönük tutarsızlık yaratacağı için düzeltmemek bazen yapılacak en iyi şey olabilir. Hatanın müşteriye maliyeti yanında geliştirici şirkete prestij ve güven kaybı olarak da ciddi yansımaları olabilir.

Son birkaç maddede yer alanlara benzer senaryolar deneyim sahibi her yazılımcının başından mutlaka geçmiştir. Deneyimli yazılımcılar bu nedenle hatalardan ders alırlar, hataya düşülecek noktaları çok iyi bilirler, yılların deneyimine ve sahip oldukları derin yazılımcılık bilgisine güvenmek hatasına düşmeyip, yazdıkları programları ayrıntılı ve düzenli bir şekilde test ederler. Gerçek şu ki herkes hata yapabilir, herkesin gözünden kaçan şeyler olabilir; bunları yakalamanın yolu test etmekten geçer.

Programcılığın yarısı programı yazmak/kodlamak ise yarısı da ortaya çıkan programı sağlıklı bir şekilde test etmektir. Yani, tasarlamaya ve kodlamaya zaman ayrıldığı kadar programın testine de zaman ayrılmalıdır. Yazılımcılar genelde testi sıkıcı bulurlar, işlerinin programlamak olduğunu, test etmek olmadığını düşünürler ve teste sıra geldiğinde üstünkörü bir çalışmayla işlerini sonlandırırlar. “Test ekibi ne güne duruyor, bir sorun varsa test ekibi nasıl olsa geri dönüş yapar.” düşüncesinden hareketle ve bazen de projenin zaman baskısı nedeniyle test sürecine hakettiği zamanı ve eforu ayırmazlar. Oysa ki sonradan farkedilen bir hatanın düzeltilmesi için normalden çok daha fazla zaman ve efor gerekir.

Yazılımcının görevi fonksiyonellik ve kullanışlılık bakımından gereksinimleri sağlayan bir yazılımı planlanan sürede oluşturmak olduğu kadar bu yazılımı en az kusurlu şekilde oluşturmaktır. Başarılı yazılımcılar çabuk ve çok iş çıkaran değil, en az hatayla dönüş olan işler çıkaran yazılımcılardır.

Written by vtunali

Nisan 20th, 2010 at 10:46 pm