• Sonuç bulunamadı

4. YAZILIM PROJELERİNDE KİŞİSEL ÖZELLİKLERİN ROLÜ

4.1. Yazılım Rol Tanımları ve Kişisel Beceriler

Bu bölümde yazılım süreçlerinin her bir yazılım proje rolü için teknik gereklilikleri yerine getirebilmek için gereken kişisel beceriler belirlenmiştir. Sistem analisti, yazılım tasarımcısı, programcı, yazılım test uzmanı ve yazılım bakımcısı rolleri için gerekli kişisel beceriler alt bölümlerde yer almaktadır.

4.1.1. Sistem analisti için gerekli kişisel beceriler

Sistem analizi aşamasında, sistem analisti kullanıcıların ihtiyaçlarını ve yazılım gereksinimlerini belirler, sistemin özgün özelliklerini tespit eder ve gereksinimlerin karşılanacağı şekilde uygulamanın soyut bir modelini oluşturur. Sistem analizi aşaması kullanıcılar ve müşteriler ile etkileşim gerektirir. Ayrıca, sistem analistleri kullanıcıların ihtiyaçlarını tam olarak anlayabilmek için empati kurabilmelidir. Bu nedenle kişiler arası beceriler ve iletişim becerileri sistem analistleri için gerekli becerilerdir [23].

Ahmed ve arkadaşlarının çalışmasında, %31 Kuzey Amerika, %26 Avrupa, %23 Asya ve

%20’si Avustralya bölgesinden olan 500 iş ilanının analizi sonucu sistem analisti, yazılım tasarımcısı, programcı ve yazılım testçisi için aranan 9 temel beceri tespit edilmiştir. Bu beceriler, iletişim becerisi, kişiler arası ilişki becerisi, analitik düşünme ve problem çözme becerisi, takım içi çalışma becerisi, organizasyon becerisi, hızlı öğrenebilme, yalnız çalışabilme, yenilikçi olma, değişime açıklık olarak belirlenmiştir. Bu becerilerden, iletişim becerisi, analitik düşünme ve problem çözme becerisi ve takım içi çalışma becerisinin sistem analistleri için en çok aranan beceriler olduğu tespit edilmiştir. Fakat yenilikçi olma ve kişiler arası ilişkiler becerisi de sistem analistleri için önemli olmasına rağmen yazılım sektöründe yeteri kadar talep edilmediği görülmektedir [27].

Matturro tarafından yapılan çalışmada Uruguay'daki yazılım şirketleri tarafından en çok hangi yumuşak becerilerin talep edildiğini belirlemek için iş ilanları incelenmiştir. İhtiyaç analizi aşamasında sistem analistinin sahip olması gereken 5 temel beceri, sözlü/yazılı İngilizce, takım çalışmasına uygunluk, girişkenlik, kişiler arası ilişki becerisi ve sorumluluk sahibi olma olarak belirlenmiştir [40].

Capretz tarafından gerçekleştirilen çalışmada yazılım ile ilgili iş ilanları incelenerek yazılım rolleri için gereken teknik beceriler tespit edilmiştir. Daha sonra teknik becerilere karşılık gelen yumuşak becerilere karar verilmiştir. Sistem analisti rolü için en çok gereken beceriler, iletişim, analitik düşünme ve problem çözme, değişime açıklık ve kişiler arası ilişki becerisi olarak belirlenmiştir [41].

Çizelge 4.1. Sistem Analisti için gereken beceriler

Kişisel Beceriler Kaynaklar İletişim Becerisi [23] [27] [41]

Analitik Düşünme ve Problem Çözme Becerisi

[27] [41]

Kişiler arası ilişki becerisi [23] [27] [40] [41]

Takım içi Çalışma Becerisi [27] [40]

4.1.2. Yazılım tasarımcısı için gerekli kişisel beceriler

Yazılım tasarımcısı, sistemin tasarımını yaparken büyük resmi görebilmelidir. Gerekli öğeleri, bulanık ve kesin olmayan verilerden ayırt edebilmelidir. Yazılım tasarımcısının, prototipleştirme, fonksiyonları detaylandırma, girdi ve çıktıları tanımlama gibi çeşitli görevleri bulunmaktadır. Bu nedenle sezgisel ve düşünme özellikleri yazılım tasarımcısı için gereklidir. Tasarım aşamasının ilk kısmı ekip tartışmaları ve kullanıcı ile etkileşim gerektirdiği için analiz için gerekli olan özelliklere benzer özellikler de gerektirebilir.

Yazılım tasarımcısının analitik düşünme ve problem çözme becerisi ile yenilikçi yönü gelişmiş olmalıdır [23].

Ahmed ve arkadaşlarının çalışmasında, yazılım tasarımcıları için sektörde en çok aranan beceriler iletişim becerisi ve kişiler arası ilişki becerisi olarak belirlenmiştir. Yenilikçi olma ve organizasyon becerileri de yazılım tasarımcısı için önemli olmasına rağmen yazılım sektöründe yeteri kadar talep edilmediği görülmektedir [27].

Yazılım tasarımcısının verilen bir problem karşısında çözüm üretmesi gerekmektedir. Bu nedenle analitik düşünme ve problem çözme becerisine ihtiyaç vardır. Organizasyon becerileri tasarımcının tasarımda ortaya konan tüm değişiklikleri takip etmesini ve tasarımın parçalarını birleştirmesini sağlar. Ayrıca, yazılım tasarımı sürecinin iteratif doğası, değişikliklere açıklık ve uyum sağlama özelliklerine sahip bir kişilik gerektirir [42].

Uruguay’daki iş ilanlarının analizi sonucu tasarım aşamasında gerekli beceriler önem sırasıyla, sözlü/yazılı İngilizce, iletişim becerisi, takım çalışmasına uygunluk, girişkenlik ve öğrenmeye istekli olma olarak belirlenmiştir [40].

Capretz tarafından gerçekleştirilen çalışmada, yazılım tasarımcısı rolü için en önemli beceriler, iletişim, analitik düşünme ve problem çözme, organizasyon becerisi, değişime açıklık ve kişiler arası ilişki becerisi olarak tespit edilmiştir [41].

Çizelge 4.2. Yazılım Tasarımcısı için gereken beceriler

Kişisel Beceriler Kaynaklar İletişim Becerisi [40] [41]

Analitik Düşünme ve Problem

Çözme Becerisi [23] [41]

Kişiler arası ilişki becerisi [41]

Takım içi Çalışma Becerisi [40]

4.1.3. Programcı için gerekli kişisel beceriler

Programlama aşamasında, belirlenen yazılım tasarımı programlara dönüştürülür. Bu aşama, kontrol yapılarının, ilgili değişkenlerin ve veri yapılarının tanımlanmasını ve bir programlama dilinin sözdizimi ve özelliklerinin ayrıntılı bir şekilde anlaşılmasını gerektirir. Programcılar, çoğunlukla yukarıdan aşağıya olan, yinelemeli ve aşamalı şekilde ilerleyen kod sürecini takip edebilmelidirler. Bu nedenle programcılar detaylara dikkat etmeli, analitik düşünebilmeli ve problem çözme yeteneklerine sahip olmalıdırlar. Tipik olarak programcılar, atanmış parça üzerinde bağımsız olarak çalışırlar, bu nedenle bağımsız olarak çalışabilme yeteneğini gerektirirler, aynı zamanda büyük ölçekli yazılımlar üzerinde çalışarak daha büyük bir gruba katılırlar, böylece bir takımın bir parçası olma becerisini de gerektirir [42]. Bu nedenle programcılar, analitik düşünebilme ve problem çözme becerisine sahip, detaylara dikkat eden ve yalnız çalışabilen kişiler olmalıdırlar [23].

Ahmed ve arkadaşlarının çalışmasında, programcılar için sektörde en çok talep edilen kişisel becerinin iletişim becerisi olduğu görülmektedir. Yenilikçi ve yaratıcı olma, hızlı öğrenebilme ve değişime açıklık özelliklerinin de programcı için önemli olmasına rağmen sektörde yeteri kadar talep edilmediği görülmektedir [27].

Uruguay’daki iş ilanlarının analizi sonucu programlama aşamasında gereken beceriler önem sırasıyla, sözlü/yazılı İngilizce, girişkenlik, takım çalışmasına uygunluk, sorumluluk sahibi olma ve öğrenmeye istekli olma olarak belirlenmiştir [40].

Capretz tarafından gerçekleştirilen çalışmada, programcı rolü için en önemli beceriler, iletişim, analitik düşünme ve problem çözme, değişime açıklık ve organizasyon becerisi olarak tespit edilmiştir [41].

Çizelge 4.3. Programcı için gereken beceriler

Kişisel Beceriler Kaynaklar

Çizelge 4.3. Programcı için gereken beceriler

4.1.4. Yazılım test uzmanı için gerekli kişisel beceriler

Test aşamasının temel amacı yazılımdaki kusurları tespit etmektir. Test, ayrıntılara dikkat etmeyi gerektirir ve genellikle bağımsız çalışan kişiler tarafından gerçekleştirilir ve son teslim tarihlerine ulaşma ve ürünü teslim etme baskısı çok büyüktür. Bu durum da organizasyon becerisi gerektirmektedir. Ayrıca test uzmanları, yazılımdaki kusurları tespit edebilmek için tüm olasılıkları düşünmeli ve detaylara dikkat ederek çalışmalıdırlar. Bu nedenle, yazılım testi yapan kişiler detaylara dikkat etmelidir ve organizasyon becerilerine sahip olmalıdır. [23].

Ahmed ve arkadaşlarının çalışmasında, yazılım testçileri için sektörde en çok talep edilen kişisel becerinin iletişim becerisi olduğu görülmektedir [27]. Ancak yazılım test uzmanının hedefi, yazılım içerisindeki hataları bulmak ve yazılım ekibi ile paylaşmaktır. Bu nedenle analitik düşünme ve problem çözme becerisi ile iletişim becerisi bir test uzmanı için önemlidir. Test süreci birim testi, modül testi ve sonrasında entegre test aşamalarından oluştuğu için test uzmanının organizasyon becerisine sahip olarak bu aşamaları takip etmesi gerekmektedir. Ayrıca, yazılım hatalarını tespit ederken yeni yöntemler denemeleri gerekir. Bu nedenle bir test uzmanının yenilikçi yönü de gelişmiş olmalıdır [42].

Uruguay’daki iş ilanlarının analizi sonucu test aşamasında gereken beceriler önem sırasıyla, sözlü/yazılı İngilizce, takım çalışmasına uygunluk, girişkenlik, analitik düşünme ve problem çözme ile öğrenmeye istekli olma olarak belirlenmiştir [40].

Capretz tarafından gerçekleştirilen çalışmada, programcı rolü için en önemli beceriler, iletişim, analitik düşünme ve problem çözme, kişiler arası ilişki becerisi, yalnız çalışabilme ve organizasyon becerisi olarak tespit edilmiştir [41].

Çizelge 4.4. Yazılım Test Uzmanı için gereken beceriler

Kişiler arası ilişki becerisi [41]

Takım içi Çalışma Becerisi [40]

4.1.5. Yazılım bakımcısı için gerekli kişisel beceriler

Yazılım değişen ihtiyaçlar veya teknik gereksinimlerden dolayı sürekli değişime maruz kalan bir üründür. Bu durum, gelişen ve değişen bir sistemin sürdürülmesi gerektiğini gösterir. Yapılan değişikliklerin sistemin diğer bölümlerini olumsuz etkilememesi için, yazılım bakımında çalışan kişiler tüm sistemi anlamalıdırlar. Bu nedenle, bakım aşaması detaylı ve dikkatli çalışmayı gerektirir. Ayrıca, yazılım bakımcıları, kullanıcı tarafından sürekli talep edilecek değişikliklere ve uyarlamalara açık kişiler olmalıdırlar. Karmaşık sistemleri anlamaya ve düzeltmeler yapmaya istekli kişilerin bakım aşamasında çalışması daha verimli olur. Bu nedenlerden dolayı, yazılım bakımcılarının detaylara dikkat eden ve değişime açık kişiler olmaları gerekmektedir [23].

Kurtel tarafından yazılım bakım personelinin görev ve sorumlulukları incelenmiştir. Bu çalışmaya göre, yazılım bakım faaliyetlerini yapan kişilerin, teknik sorumlulukları yerine getirmenin yanında, müşteriler ve işletmenin diğer bölümleri arasında denetleme ve koordinasyon görevlerini de gerçekleştirmesi beklenmektedir. Bakımcı aynı zamanda ekip üyesi olarak çalıştığından sözlü ve yazılı iletişim becerileri gelişmiş olmalıdır. Kullanıcılar ile olan iletişiminde, karmaşık sorunları en doğru ve hızlı şekilde anlama ve çözme yeteneğine sahip olmalıdır. Bu nedenle bakımcı için sorunları analiz etme ve hızlı çözüm geliştirme önemli becerilerdendir [43].

Literatür araştırması sonucu yazılım proje rollerinin sahip olması gereken kişisel beceriler aşağıdaki tabloda verilmiştir.

Çizelge 4.5. Yazılım Bakımcısı için gereken beceriler

Kişisel Beceriler Kaynaklar

Tüm yazılım proje rolleri için gerekli beceriler Çizelge 4.6.’da verilmiştir.

Çizelge 4.6. Yazılım proje rollerine ait kişisel beceriler

Kişisel Beceriler Yazılım Proje Rolleri

Sistem

Benzer Belgeler