Programcı mısın yoksa Yazılım Geliştirici misin?

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

Yazılımla ilgilenenleri düşündüğümüzde yazılımcı demek mantıklı geliyor olsa da, aslında hiçbir yazılımcı birbirine benzemez. Günümüzün tartışmalı konularından biri de Programcı ile Yazılım Geliştirici arasındaki farklılıklardır.

Yazılım Geliştirme Uzmanı aradığınızı düşünürken aslında ihtiyaç duyduğunuz kişi bir programcı olabilir. Aynı şekilde açık pozisyonunuzun programcı olduğuna karar verip yazılım geliştiriciyi işe alırsanız sonradan problemlerle karşılaşabilirsiniz.

Peki, yazılım geliştirici ve programcı kimdir?

Yazılım Geliştirici kimdir?

  • Algoritma yaratmak ister ve algoritma yaratmaktan büyük keyif alır.
  • İhtiyaca yönelik çözümleri planlar ve uygulamaya geçirir.
  • Kodun nasıl geliştirileceğini, nelerin düzenlenmesi gerektiğini araştırır ve dener.
  • Mevcut ürünün güçlü ve zayıf yönlerini değerlendirir, test eder. 
  • Yazılım geliştirici, yalnızca var olan kodu yazmak istemez.
  • Farklı sistemleri ve yazılım dillerini kullanır. 
  • Örnek kodları yazmak yerine kodlar üretir.
  • Farklı frameworkleri kullanmak ve denemek ister, hatta kendi oluşturduğu frameworkleri vardır.

Eğer yazılım geliştiricisine yalnızca belirli kodları verip yazdırmak isterseniz, çok geçmeden bu kişileri kaybedersiniz. 

developer

Programcı kimdir?

  • Programcı kodun önce algoritmasını anlar, 
  • Projenin ihtiyacına göre hangi kodun yazılacağını bilir.
  • Kodu yazmadan önce sağlam ve verimli olacak kod yapısını bilir,
  • Kodun doğru ve sağlam olduğunu anlamak için testler gerçekleştirir. 
  • Her yazılım dili hakkında bilgi sahibidir.
  • Programcı, var olan projede kodun hatasız yazılmasından kendisini sorumlu hisseder.
  • Verilen kodu eksiksiz girmek ve yazmak ister.
  • Bulunduğu projede kodu hayata geçiren olmaktan büyük zevk duyar.

programmer

Eğer programcıya proje üret ve kendin araştırmalar yap derseniz mutsuz olur. Israr ederseniz ekibinizde fazla kalmayacaktır.

Programcı ve yazılım geliştirici arasındaki farklılıkların ayırt edilmesi hem yazılımcı hem de şirketler açısından önemli. Programcı görev insanıyken, geliştirici projeleri yaratan kişidir. Programcı kodu hayata geçirirken, geliştirici kodu geliştirmek ister. Bu nedenle birbirlerinden ayrılır. 

Yazılımcı kendisinin programcı mı yoksa geliştirici mi olduğuna karar verip bu yönde kendisi için uygun olacak çalışmalarda bulunmalıdır.

Şirketlerin yaptığı en büyük hata, ekibinde gerekli olan kişiyi bir türlü nitelendirememesi, nasıl bir kişiye ihtiyacı olduğunu bilmemesidir. Belirsizliğin en büyük kanıtı iş ilanlarındaki tutarsızlıklar ve IT departmanı içerisindeki sirkülasyondur.

En çok yaşanılan problemlerden biri de yazılımcıdan beklenilen ile yazılımcının çalışma tarzının birbiriyle örtüşmemesidir. Yazılım geliştiricisini ekibinizden hızlıca uzaklaştırmak istiyorsanız örnek kodlar verip yazmasını isteyin. Programcıyı uzaklaştırmak istiyorsanız araştırma yapmasını ve proje üretmesini isteyin.

Firmaların küçük ya da büyük ölçekli olmasına, start-up ya da kurumsal olmasına ve çıkartılan projelere göre IT departmanındaki programcı ve geliştirici sayısı değişkenlik gösterir. Unutmayın, programcı olmadan yazılım düzgün ve doğru yazılmayacağı gibi, geliştirici olmadan da kod ve proje gelişemez!

 

Ceyda Anıl Yazar:

36 Yorum

  1. 02/05/2014

    Nefis yazı olmuş. 😉

    Böylesi ne istediğini / kime ne lazım sorusunun yanıtını çok az da olsa bu ilkede bilen patroniçeler varken, ekiplerine kattıkları alakalı arkadaşlar ile uzun yıllar çalışacakları kanısını düşünüyorum açıkçası.

    Her şeyden önemlisi,
    “Eğer yazılım geliştiricisine yalnızca belirli kodları verip yazdırmak isterseniz, çok geçmeden bu kişileri kaybedersiniz. ” mentali, gerçekten çok yerinde olmuş.

    Tabi “Programcı ve yazılım geliştirici arasındaki farklılıkların ayırt edilmesi hem yazılımcı hem de şirketler açısından önemli. Programcı görev insanıyken, geliştirici projeleri yaratan kişidir. Programcı kodu hayata geçirirken, geliştirici kodu geliştirmek ister.” kısmı ise oldukça tatlı olan cümleciklerden.

    Umarım bazı aklı selim yöneticilerde bu yazıyı görüp farkındalık nedir algılar, anlarlar…

    Çok tatlı çözümleme ve yerinde tespitler için yeniden teşekkürler.

  2. Ceyda
    02/05/2014

    Çok teşekkür ederim Fatih, ne mutlu bana 🙂

  3. Mehmet
    02/05/2014

    Güzel ama bunu daha iyi anlamak ve sizlere gelen kişileri daha iyi değerlendirmeniz için yazılımcı yada programcı olmanız yada çevik süreçler içeren projelerde bulunmuş olmanız gerekmez mi ya da hiç bulundunuz mu?

  4. Ceyda
    02/05/2014

    Yorumun için teşekkür ederim. Eklemek ya da düzeltmek istediğin konu ya da konular var mı? 🙂

  5. Ümit Turpçu
    02/05/2014

    4 yıl kadar tecrübem olduğunu söyleyerek cümleye başlamak istiyorum. Bana göre Programcı & Yazılım Geliştirici diye bir fark yoktur. Bir çok ekip içerisinde yer aldım. Kurumsal, Ajans, Outsource işleri yaptım. Yani böyle bir ayrım olduğunu düşünmüyorum. Türkiye’de çok uç bir iş yapmıyor hiçbir firma. Yapılan şeyler klasik, yaratıcılık gerektirmeyen şeyler. Çok algoritma gerektiren şeyler üretilmiyor. En azından ben görmedim. O yüzden böyle bir ayrım olduğunu düşünmüyorum.
    Yukarıda saydığınız karakterler kesinlikle var. Ama bunların yaptıkları iş arasında bir fark yok. Sadece yapış şekilleri farklı.

  6. Mehmet
    02/05/2014

    Ben size söyle bir soru sormak isterim. İnformation Security Research arasaydınız neye bakardınız? Sertifiklar, Yaptığı hackler, öğrenme ve heves becerisi arttırılabilir. Sahada gerçek maçı oynayanlar çevik yazılım mühendisleridir. Scrum master ise sadece seyircidir. Yazınız sıkıntılı bir modeli açıklamak için güzel bir yazı olmuş. Ama ülkemizdeki sıkıntılı model diyelim. Bu da bir kültürün oluşmamasından kaynaklanıyor. Yani demem o ki bunu anlayabilmeniz için pprogramcı veya yazılımcı olmanız gerekli. Şu durumda Scrum master olmaktan öteye gidemiyorsunuz. 🙁

  7. Mehmet Kırkoca
    02/05/2014

    Ben yaklaşık iki yıldır php ile web programlama yapıyorum. Anladığım kadarıyla Türkiye piyasası için böyle bir ayrım yapılmıyor. Kendimi sorgularsam hangi ayrımdayım diye sanırım iki arada bir derede kalmışım diyebilirim. Belkide bu nedenle yazılmda gelişemiyoruz. Şirketler tek bir eleman alıp tüm işlerini bu elemana yaptırmak istedikleri için sanırım. Tasarım ve programlama diye ayırmıştım ben kendi gözümde programcı ve yazılım geliştirici diye bir ayrımı hiç düşünemedim bile diyebilirim. Tabi böyle bir ayrımın gerekli olduğunu düşünüyorum eğer büyük projeler hayata geçirilmek istenirse diye düşünüyorum. Belkide proje küçük de olsa böyle bir ayrımın olması gereklidir. Ama gelin görün ki Türkiyede yaşıyoruz. 🙂

  8. Ceyda
    02/05/2014

    Teşekkür ediyorum yorumlarınız için arkadaşlar, ne yazık ki henüz kod yazmıyorum, bir parça da olsa yazılımcıları anladığımı düşünüyorum ve yaşanılan sıkıntıları dile getirmeye çalışıyorum. 🙂

    Günümüzde tartışılan bir konu, aynı zamanda koderın da programcıdan farklı olduğunu düşünenler var. Türkiye’de henüz Programcı ile Yazılım Geliştirici arasında keskin bir ayrım yapılmıyor olsa da böyle bir farklılık olduğunu düşünüyorum. Kod bilen, yazan arkadaşlar olarak konular hakkında yorumlarda bulunursanız sevinirim, elbette. 🙂

  9. Mehmet
    02/05/2014

    Bizde sorun aslında programcı ve yazılımcı sorunu değil tam olarak bence. Çünkü genelde insanlar kervan yolda düzülür mantığıyla hareket ettiklerinden dolayı temelde sıkıntılar var. Ama bu zamanla iyi yetişen ve sektörün farkındalığının sağlanması ile olacak bir şey!

  10. 02/05/2014

    Aslında coder ve mühendis bakış açısı var biraz olayda.Mühendis bakış açısı bahsettiğiniz yazılım geliştirici, programıcıda coder olarak adlandırılabilir.Bunun dışında bu iki sınıflamdırma dışında birçok katman var aslında yazılımcı için sınıflandırma yapılabilecek fakat benim gördüğüm kadarıyla özellikle türkiyeyi baz almış genel de yorum yapan arkadaşlar bende öyle yapayım; Her yazılımcı birçok rol e bürünüp çalışmak durumunda kalıyor.Ha bazıları kendilerini bazı rollere sokamıyor, o kişilerin o rollerde nasıl olacağını tespit etmek işe alırken buna dikkat etmrk bence firmaların asıl önem vereceği nokta olmalı.
    (sınıflandırma derken : Tester, iş geliştirici, coder,yazılım mimarı,…)

  11. 05/05/2014

    Merhaba Ceyda
    Ben hangi kategoriye giriyorum hala çözemedim 🙂

  12. SA AK
    13/05/2014

    Kardesim bende bu yazida arkadaslara katilmak durumundayim. Yillarin programcisi olarak sunu söylemek isterim ki yazilim gelistiricisi projesi sifirdan almaz ama programci sifirdan program yazmaya baslar ve programcinin yazdigi temel veya felsefe üzerine sistemi gelistiririr. Sistem gelistirirken kendi metodlarini ve begendigi teknolojileri kullansada maalesef ilk baslatanin felsefesinin cok disina cikamaz. Aslinda en iyisi programi sifirdan yazmaya baslamak. Bazilarina maktiksiz geliyor olsada bizim firmada 15 yildir gelistirilen masaüstü programinda neyin nerede oldugunu bir türlü bulamiyorduk ve cok zaman kaybi yasiyorduk. Programi üc yilda sifirdan eskisinden daha iyi ve hizli bir hale getirdik. Ama tabi google gibi manyak programcilarin calistigi bir projeye girme imkaniniz olursa sifirdan yazmaniza gerek kalmaz 😉

  13. 02/06/2014

    Merhaba,

    Böyle konularla ilgili yazılar görmek ve okumak çok hoş; özellikle kendi dilimizde. Umarım bu tür blog ve girişimler artar.
    Bu arada ülkemizde nedense okumaktan ve okuduğunu yorumlamaktan çekiniliyor. Halbuki blog yazarlarını mutlu eden sessiz okur değil; sesini duyuran okur olmalı.
    E-nerjik’i takip ediyorum. IT’ye özgü ve sosyal mecrayı bu kadar etkin kullanabilen bir IK danışmanlığı firması lazımdı. Tebrikler.

    Yazıya gelince; işe alım uzmanlarının, adayı böyle keskin bir kategori ile eşleştiriyor olması bana isabetli bir değerlendirme gibi görünmedi. Bu nitelikleri kişiye direkt yapıştırmak pek sağlıklı olmayabilir.
    Aksine, olan ve olması gereken, kod kalitesine, esnekliğine, güvenilirliğine önem verirken; mesleği ile ilgili yenilikleri ve gelişmeleri de takip etmek. Zira birbirlerini besleyeceklerdir. Bu girişimci ve araştırmacı ruh hep alev alev yanmalı. Mesleğini seven birini tutamazsınız, ateş bacayı sarmıştır:)

    Şu da kesin ki; kabuğuna sığamayan araştırmacı biri -tabirinizle yazılımcı-, daha gelenekselci birinden -tabirinizle programcı- daha tercih edilen bir profil olmalı.

    Aslında çalışanın ve iş verenin kendini tartabilmesi için güzel bir tablo çizmişsiniz. Her adayı her iki kategori ve nitelikler için motive edip desteklemeli ve daima geliştirmeli.

    Nitekim bu ikisini harmanlamamış birine ben ne yazılımcı ne de programcı denilebileceği kanaatindeyim:)

    Altı yıldan fazla deneyimi olan, hem yurtiçi hem de yurtdışında okumuş/çalışmış bir yazılımcı olarak bu yapıcı eleştiri ve yorumumu paylaşmak istedim.

    Yazılarınızın devamını bekliyoruz..

  14. ilhan
    18/06/2014

    Merhaba,
    Yazılımla uğraşanlar genelde böyle makaleleri çok sever, bu yüzden Ceyda hanıma çok teşekkür ederim.
    Şunu da söylemeden geçemeyeceğim; makalede programcı ve geliştirici tanımlamaları arasında bazı karışıklıklar olduğunu düşünüyorum.
    Programcılar,
    Müşterinin isteklerini senaryolaştırıp, yapıyı kuran kişilerdir ki bu yüzden Framework seçimlerini, MVC yapılarını, algoritma oluşturma işlerini programcılar yapar,
    Geliştiriciler,
    Genelde var olan kod üzerinde çalışır ve o kodu detaylandırırlar. algoritma ile programcılar kadar uğraşmazlar.
    Ama şunu bilir şunu söylerim; Programcılar çok iyi oyun kurucudur, geliştiriciler de çok iyi smaç basar… 🙂

  15. Tuna
    25/07/2014

    Harika bir yazı olmuş, çözümleme tam isabet.

  16. Anonim
    06/08/2014

    Bilgisayar Mühendisi = Programcı + Yazılım Geliştirici

  17. 07/08/2014

    bir yazılımcı olarak güzel bir makale olduğunu söyleyebilirim yalnız dikkat çekmek istediğim nokta var; 1990lardan önce “yazılımcı” kavramı yoktu ve sadece programcılık mesleği vardı.Kendi görüşüme göre bunun nedeni programcının yalnızca windows gibi masaüstü platformlarda kod yazmasından kaynaklanmaktadır.Tam da o yıllarda web teknolojileri ortaya çıkarken “web master” denilen meslek “yazılımcı” mesleğinin önünü açtı çünkü programcılar windowstan öte artık internet dünyasına kod yazabilmeye başladılar.Bu da birden çok platformda kod yazabilen insanları “yazılımcı”,eski nesil tek bir platformda kod yazabilen insanları “programcı” olarak nitelemeye başladı.

    http://www.kodadiyazilimci.com

  18. Mert
    07/08/2014

    Merhaba 6 yildir sektörde profesyonel olarak Yazilim geliştirme uzmani olarak görev aliyorum. Yazilim geliştirici VRE programci arasında bir fark yoktur. Öyle bir ayrim yapilamaz. Anlattiginiz konu Yazilim mimari ile Yazilim geliştirici arasındaki fark olsa anlarim. Yorum yapan arkadaslarin büyük projelerde calismadiklari çok aşikar.

  19. 07/08/2014

    Güzel bir yazı olmuş. Yazılım Geliştirici olmak, programcı olmaktan daha büyük bir sorumluluktur. Programcılar genelde ara eleman olurlar, geliştiriciler ise ana elamanlar. Tabi ki her ikisinide ihtiyaç var.

  20. 07/08/2014

    Güzel ve faydalı bir yazı olmuş. Teşekkür ederiz.

  21. 09/08/2014

    Merhaba Ceyda,

    Bu gibi hizmetlere ise danışmanlık, deniyor sanırım. 🙂
    Bir teşbih de ben yapmak istiyorum:
    –  Programcı = Yazılım Mühendisi,
    – Yazılım Geliştirici = Yazılım Mimarı ‘dır diyebiliriz.

    Güzel bir konuya değinmişsin, tebrikler! 😉

    Hem işverenler hem de çalışanlar için, kesinlikle açıklığa kavuşması/kavuşturulması gereken bir konudur: mümkün olduğunca çevremizdekileri bilgilendirelim lütfen.

  22. Seyfi Aslangeçinen
    22/09/2014

    Şahin Solmaz’a katılıyorum. İlla bir ayrım yapmak gerekirse Yazılım Mühendisi ve Yazılım Mimarı ayrımından bahsedebiliriz. Onun dışında programcı, coder, yazılım geliştiricisi bence aynı şeyler.
    Ha sonuçta, illa kendimizi bir kategoriye sokup onun özelliklerine bürünmeye çalışmaya gerek yok. Ben açıkcası UX’ten anlayan “yazılımcılarla”, Algoritmadan anlayan “yazılımcılarla” ve girişimci “yazılımcılarla” konuşmaktan keyif alırım. Sadece kendini iki tipe ayırmış bir topluluk çok sıkıcı geliyor bana.

  23. Ceyda
    29/09/2014

    Yorumlarınız için çok teşekkür ederim. 🙂

  24. Emir Güvenç
    17/10/2014

    Daha geçen gün tartıştığımız; mühim ve bir o kadar da ince konudaki çizgileri, normalde olmaları gerektiği gibi harika yansıtmışsınız. Ama ülkemizde bu farkı pratiğe dökersek (maalesef ki) ikisi aynı kapıya çık(arıl)ıyor. Acı örnekler mümkün. 🙂

  25. Mustafa
    19/12/2014

    Merhaba! Şahsi görüşüm yazılımcıların sınırlandırılmamasıdır. Bir kişinin bilişimde herşeyi bilmesi diye birşey söz konusu değildir. Bilse dahi o bilgiyi kullanacak kapasitesiyle doğru orantılı olarak verimli olabilir. Bu konuda sadece yazılım dilinin önemli olmadığını örneğin matematik bilgisi yada muhasebe bilgisi gibi extra alanların, konuların gerekebileceğini herkes bilir Örneğin yazılımcıdan şunu yap demek mantıksızdır. Yazılımcının yapabileceklerinden faydalanmak çok daha verimli olacaktır. Ben 2 yıldan daha uzun süredir bir proje üstünde tekbaşıma çalışarak Proje geliştiriyorum. Orjinal bir projeyi istenilen düzeye getirebilmek için öncelikle ekip çalışması gerektiğine inanıyorum. Ve bunu yapabilmek için proje yöneticisi, kod mimarisini ve algoritmayı iyi birşekilde yönetebilecek bir kişi, hatalar yada gereksinimler için bir tester, etkileşimli ve dinamik yapılar için katmanlı mimariye hakim bir kişi tasarım için hayal gücü yüksek bir kişi gibi bir çok dalda yetenekli insan ihtiyacı olduğunu tespit ettim. Zaten megatronik alanıda gelişmekte olan teknolojilere ayak uydurabilcek donanımlı insanların yetişmesi için açılmış bölümdür. Yanlız bu da yazılım şirketlerinin bir yazılımcıdan istediklerinin ne kadar saçma ve fazla olduğu gerçeğini değiştirmez.

  26. Murat
    23/01/2015

    Programcı ve Yazılım Geliştirici tamamen aynı işi yapan kişilerdir. Bu konuda Şahin ve Seyfi arkadaşlarıma tamamen katılıyorum ama ufak bir ekleme de yapmak istiyorum.

    Bence 3 ana pozisyon vardır.

    Programcı = Yazılım Geliştirici : Algoritma geliştirir, kod yazar.
    Yazılım Mühendisi : Kod mimarisi geliştirir, algoritma geliştirir, kod yazar.
    Yazılım Mimarı: Sistemin mimarisini geliştirir, kod mimarisini geliştirir, algoritma geliştirir, kod yazar.

  27. Murat
    23/01/2015

    Bu arada yukarıda çok özet olarak yazdım sonradan içime sinmedi. Bu kadar dar kapsamda tanımlamak da doğru değil bu pozisyonları. En azından şunu ekleyebilirim siz de buna paralel olarak düşünebilirsiniz.

    Programcı ile yazılım mühendisinin yazdığı kod aynı değildir, mühendisin amacı en optimum kodu yazmaktır. En optimum kod her zaman en kısa, en hızlı, en güzel kod da değildir bu arada! Zaten mühendis, mühendislik prensiplerine göre kod yazmıyorsa (yazılım geliştirmiyorsa) mühendis değil programcıdır.

  28. zembereck
    22/02/2015

    yazdığın maddelere göre kendimi değerlendirirsem ben hem yazılım geliştiricisi hem de programcıymışım. sanırım biraz psikopatım.

  29. 15/12/2015

    Ceyda Selam,
    Öncelikle güzel bir konuya değinmişsin, önceki arkadaşlarında söylediği gibi yazılımcılar bu tür makaleleri severler.Zaten yorumlardan da bu çıkıyor.

    Biz genelde Emre nin de söylediği gibi mühendis ve programcı olarak nitelendiriyoruz yazılımcıları.

    Programcı: Daha çok kod yazmaya odaklanan kendinden istenenleri yerine getirmek için yazılım geliştiren kişidir.

    Mühendis : Yazılım için gerekli süreçleri yerine getiren, mimari geliştiren, süreci dökümantasyon-geliştirme-test ve teslim süreçlerine kadar tasarlayan kişidir.

    Mühendis ve programcılık yaklaşımları okunan okula göre ve kişinin kendini geliştirmesine göre değişebiliyor.

  30. Attila
    15/12/2015

    Çok ciddi kavram karmaşası yaşanmış bu yazıda. Fakat cesaret edip yazmak ve bir tartışmaya neden olması güzel olmuş. Teşekkürler.

    Bir kere Yazılım ile Program birbirinden ayrı şeyler. Yazılım Geliştirici ile Programcı arasındaki sınırı ayırt etmek çok kolay değil. Öyle programcılar var ki her sene yeni bir dili dibine kadar öğreniyor kimi yazılım geliştirici var ki kullandığı framework evet 2015 yılına ait ama o 2005 yılına ait kavramları kullanarak yazılım geliştiriyor.

    Ayırt etmeye gerek var mı? Bence gerek yok. Her şirket veya sektör farklı isimlendirme tanımlama yapabiliyor. Ayırt etmek istiyorsanız Bilgisayar Mühendisi, Yazılım Mühendisi ve Programcı’yı karşılaştırmalısınız. Ek olarak Bilgisayar Bilimcisini de (Computer Scientist)’ dahil etmek lazım.

    Ayırt edilmesi gereken tek şey bilinçli bir yazılım geliştirici olup olmadığıdır.

  31. Gazi
    17/12/2015

    Bence sağlam bir matematikçi tasarım hariç o dediklerinizin hepsini yapabilir .

  32. Alkan ARSLAN
    18/12/2015

    Evet çok ciddi bir kavram karmaşası Guido van Rossum diye bir arkadaş var bu makaleyi yazmadan once bu adamın mesleği burdaki tarife hiç uymuyor.

  33. Suna
    23/04/2016

    Aşağıda belirtmiş olduğum kaynaklar konunun aydınlatılması konusunda pek fazla yarar sağlayacaktır.

    1) http://www.javaturk.org/programci-developer-architect-mimar-bilgisayar-muhendisi-ve-yazilim-muhendisi-i/
    2) http://www.javaturk.org/programci-developer-architect-mimar-bilgisayar-muhendisi-ve-yazilim-muhendisi-ii/
    3) http://www.javaturk.org/programci-developer-architect-mimar-bilgisayar-muhendisi-ve-yazilim-muhendisi-iii/

    Yeri gelmişken şunu da belirtmek isterim; sürekli bir mühendisliğe atıfta bulunuluyor. Maalesef bu yapılan iş disiplininden ziyade ne yazık ki sadece meslek grubunu ön plana çıkarmaya yönelik. Bilgisayar ya da yazılım mühendisliğinde de amaç diğer mühendislik yaklaşımında olduğu gibi tamamen kalite, metodoloji, hata tekrarının azaltılması ve standartizasyon gibi ilkeri barındırır. Bunun için illede mühendis olma zorunluluğu yoktur. Kendini çok iyi yetiştirmiş bir matematikçi, fizikçi, programcıda aynı niteliklere sahip olabilir.

  34. 14/12/2016

    Yazılım mühendisi, yazılım geliştirmedeki, iş ve ihtiyaç analizi, mimari ve fonksiyonel tasarım, kodlama, yazılım kalitesi ve test, bakım, proje yönetimi, değişim ve konfigürasyon yönetimi ve dokümantasyon gibi konularda süreçsel kurgulamalar ve yönlendirmelerden sorumludur. Bu anlamda yazılım mühendisi ne programcıdır, ne developerdır, ne mimardır ne de proje yöneticisidir. Yazılım mühendisi bunlardan hiç birisidir ama tüm bu pozisyonların yaptıklarını, büyük resimde, anlamlı bir süreç olarak kurgulayandır. Bulunduğu ortamda yazılımın, yazılım mühendisliği disiplinine göre geliştirilmesini sağlar. Yazılım mühendisi, yapılan işin “program” olmaktan ne kadar uzaklaşıp, “yazılım” olmaya ne kadar yaklaşacağını, ortaya karışık bir yapı mı yoksa kontrollü bir sistem mi çıkacağını belirleyen, yazılım geliştirmenin kaotik bir aktiviteler zinciri yerine, tanımlı, yinelenebilen ve ölçülebilen bir süreç olarak yerine getirilmesini sağlayan kişidir.

    Pek tabi olarak bir yazılım mühendisinin yukarıda saydığımız konuların hepsinde uzman olmasını bekleyemeyiz. Ama örneğin bir yazılım mühendisi ya iş ve ihtiyaç analizinin nasıl yapılacağını bilir, işin süreçlerini, iş kurallarını, entegrasyon noktalarını, kısıtlarını yani özetle, fonksiyonel olan ve olmayan ihtiyaçlarını ortaya koyar ya da bunları yapan iş ve ihtiyaç analistleriyle yakın çalışır, süreçte bulunur, çıktıları kullanır, yani bir şekilde o sürecin uzmanıyla ortak çalışabilir. Benzer şekilde yazılım mühendisi eğer daha çok modelleme tarafında bulunuyorsa, çıkarılan ihtiyaçların nesne-merkezli programlamaya izin verecek şekilde nesne modellenmesini, veri-merkezli yapılara el verecek şekilde E-R veri modellemesini yapar. Durum diyagramları vb. teknikleri kullanarak farklı mahiyetteki nesneleri modeller, tasarım şablonlarını uygular.

    Yazılım mühendisi, literatürde var olan farklı yaklaşımlardan haberdardır ve en az birisini bilir. Örneğin yazılım mühendisi iş ve ihtiyaç analizinin use-caseler kullanılarak nasıl yapıldığını bilir, yapanlarla konu üzerine konuşabilir. Ya da nesne modellemede var olan yaklaşımlardan en az birinden haberdardır ve uygulayabilir. Domain-driven design, aspect-oriented programming, test-driven design vb. yaklaşım ve teknikleri yakınen takip eder ve uygun gördüklerinin bulunduğu ortamda yaygınlaşmasını sağlar.

    Yazılım mühendisi, waterfall, extreme programming, Scrum vb. yazılım geliştirme süreci yaklaşımlarından da haberdardır. Tabi olarak hepsinde uzman olmasını bekleyemeyiz ama en azından örneğin iterative ve incremental metodolojilerin temel felsefesini ve tekniklerini bilir ve uygular.
    Kısacası programcı/geliştirici ile yaptıkları eylemlerin alakası olmayan bir meslek dalıdır mühendislik.
    Şunu da söylemekte yarar var yukarıda sayılanlar mühendislik eğitim sürecince verilip, 3. ve 4. sınıftaki proje komisyonlarında tek tek irdelenerek tüm metodolojileri kontrol edilip puanl alınan bir bölüm olmasından mütevellit programcı/geliştiricinin yazılım mühendisi perspektifinde olaya bakması piyasada rastlanılan bir olay/durum olması söz konusu görülmemektedir.

  35. 01/06/2018

    Burda yazılanların hepsine cevap niteliğinde. Öncelikle Kendi diliniz olan Türkçe dilini çok iyi bilmeniz gerekirki, Maalesef bu konuda kimse kendi öz türkçesini bilen bile pek yok. Şimdi Konu ya geleyim. Programcı, Yazılımcı, Geliştirici Nedir diye sorarsanız cevaplıyayım. Programcı : TV Showları haber, ve diğer konumlardaki kişilere Programcı denir maalesef bizim millet eskiden yazılımın ne olduğunu bilmediği icin herseye programcı deniyordu hatta üniversiler bile programcılık diyordu maalesef. Evet 90 yılların sonralarına doğru bu hatayı düzelletiler programcı’nın tv programcıları olduğunu çünkü türkçemizde belirmiştir. Ve şu anlaşıldı bi arkadaşımızın dediği gibi haklıda 90 larda sonralarına doğru yazılım üzerinde sadece yazılım geliştirildiği için yazılımcı deniliyordu doğru , çöp atanada çöpçü denildiği gibi ama yine yanlış bir kelime kullanılıyordu az kaldı ha gayret 🙂 doğrusu tek bir şey vardır oda bilgisayar da yazılım geliştirene geliştirici , diğer platformlardaki geliştirenlerede örneğin web ise web gelişitirici denilir. Doğrusu geliştirici aradan 20 küsür yıl sonra gerçek anlamını bulabildik:). Türkçeyi iyi bilen yaratıcı olur yenilikçi olur eeeeee yabancı dilde yazılım dilleri olursa onların borusu öter. Kısacası 25 yıl öncede gerçek adı developer ( geliştirici) idi şimdide öyledir. programcı yazılımcı gibi lakap takma adlar yoktur

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir