Yazılım Mühendisliği Eğitiminde Takım Projelerinin Yönetimi ve Değerlendirilmesi Kaya Oğuz, Sevcan Gül İzmir Ekonomi Üniversitesi Bilgisayar Mühendisliği Bölümü Sakarya Cad. No:156, 35330, Balçova, İzmir Özet. Yazılım mühendisliği eğitiminde öğrencilerin bireysel becerileri- nin yanında, bir takım olarak çalışma becerileri de edinmeleri gereklidir. Takım çalışması içeren ders ve bitirme projeleri bu deneyimi sağlasa da, projelerin yürütülmesi ve değerlendirilmesinde çeşitli problemler ortaya çıkar. Bu problemlerden bazıları takım üyelerinin projeye farklı oran- larda katkıda bulunmaları, bu oranların öğretim elemanı tarafından ta- kibinin güç olması ve bunun sonucu olarak öğrencilerin gerçek katkıları- nın proje notlarına yansıtılmasındaki zorluklardır. Bu bildiride “Yazılım Proje Yönetimi” dersinde verilen bir projenin farklı ekiplerle yürütülme- si ve ekiplerdeki öğrencilerin dönem sonunda değerlendirilmesinde kul- lanılan Görev Puan Sistemi ve sonuçları sunulmaktadır. Bu sistem ile hem öğrenciler hem de öğretim elemanı projeye ait görevler açıp bu görevlere uygun puanları ve görevlerin değerlerini belirlerler. Dönem sonunda görev puanları bireysel katkıların hesaplanmasında kullanılır. Görev Puan Sistemi “Yazılım Proje Yönetimi” dersine kayıtlı 96 öğ- rencinin yer aldığı 20 ekip ile birlikte dönem boyunca yürütülmüştür. Ekiplerdeki herbir öğrencinin takımına verdiği katkı somut olarak elde edilmiş ve notlara yansıtılmıştır. Anahtar Kelimeler: takım çalışması, değerlendirme, yazılım proje yöne- timi, yazılım mühendisliği eğitimi, görev puan sistemi 184 Managing and Evaluating Team Projects in Software Engineering Education Kaya Oğuz, Sevcan Gül Izmir University of Economics Department of Computer Engineering Sakarya Cad. No:156, 35330, Balçova, İzmir Abstract. The students should also acquire team working skills along their individual skills during their software engineering education. Even though courses and senior projects that require team work provide such experience, various problems emerge during their execution and evalua- tion. Most common problems come from the varying degrees of contribu- tions from team members and the difficulty for the lecturer to measure and reflect these contributions to the grades. This paper presents the Task Point System and its results during its application to a project de- veloped by different teams and the evaluation of the students in these teams in the “Software Project Management” course. With this system, both the students and the lecturer can create tasks and set appropri- ate points for them. At the end of the term the task points are used to calculate individual grades. Task Point System has been applied to 20 teams made up of 96 students for a semester during the “Software Project management” course. The tangible contributions of team members are acquired and reflected to the grades for each student in the teams. Keywords: team work, evaluation, software project management, soft- ware engineering education, task point system 1 Giriş Yazılım mühendisliği eğitiminde takım çalışması içeren projeler, öğrencilerin bir arada çalışma deneyimi kazanmalarına olanak sağlar. Bu proje süreçlerinde hem öğrenciler hem de öğretim elemanı çeşitli problemlerle karşılaşırlar. Öğrenciler belki ilk kez uyguladıkları yazılım geliştirme süreçlerindeki deneyimsizlikleri ne- deniyle proje takvimine uymakta zorlanırlar. Proje büyüklüğünü ve geliştirme için gereken süreyi yanlış tahmin etmeleri takvim ile yapılan işin arasının a- çılmasına neden olur. Proje geciktikçe artan telaş yüzünden takım içerisinde anlaşmazlıklar doğar. Öğretim elemanının özellikle kalabalık sınıflarda her öğrencinin takımına katkısını takip etmesi güç olabilir. Öğretim elemanı, öğrenciler kendi aralarında farklı bir platformda iletişim kuruyorlarsa takım içerisindeki dinamikleri tam an- layamabilir. Takıma dahil olamadığı için de olası problemlerin önüne geçemez. 185 Sonuç olarak proje tamamlandığında, öğretim elemanı öğrencilerin projeye kat- kılarını değerlendirmekte zorlanır. Derslerde yapılan projelerin en belirgin özelliği öğrencilerin farklı oranlarda katkı sağlamalarıdır [1]. Projelerde daha çok programlama kısmına ağırlık ve- rildiği için takım içerisinde iyi programlama yapan bir ya da iki öğrenci bu işin tamamını veya tamamına yakınını yüklenirler. Takımdaki diğer öğrenciler de yazılımın belgeleme süreçlerine odaklanırlar. Bu iş bölümü bir takım çalışması gibi gözükse de mühendislik eğitimi süresince belgeleme süreçlerine maruz ka- lan öğrenciler programlama deneyimi kazanamazken, aynı şekilde programlama yapan öğrenciler de belgeleme süreçlerinde deneyim kazanamazlar. Coppit, takım projelerindeki öğrencileri yedi farklı profile ayırır [2]. Pro- jeye az katkı verirken alacağı notu yüksek tutmak isteyen ile çok katkı verip diğer öğrencilerin anlamlı katkı sağlamasına engel olan öğrenci profilleri en sık karşılaşılanlar arasındadır. Diğer bir profil ise projeden düşük ama geçer not bek- leyen, bu yüzden aldıkları görevleri tam yapmayan öğrencilerdir. Bazı öğrenciler ise arkadaşlarına yardım etmek isterler ve yüksek not almaları için onların payına düşen görevleri de yaparlar. Bu öğrenci profilleri dönem projesi içeren bütün derslerde görülebilir. Özel- likle bitirme projelerinde daha belirgin şekilde ortaya çıkarlar. Bunun nedeni bitirme projelerinin dönem projelerine göre daha büyük olması ve sonucunda alınacak notun mezuniyeti etkileyecek olmasıdır. Mühendislik eğitimi süreci göz önüne alınarak projeler, bütün süreçleri bo- yunca, gerçekçi olarak yürütülmelidir [3]. Projenin gerçeklenmesi dışında proje- nin yürütülmesi ile ilgili diğer kısımlara da zaman ayırmak gerekmektedir. Bu kısımların başında takım oluşturma, iletişim, proje planlaması, maliyet tahmin- leri ve projenin takibi gelmektedir [4]. Projenin gereksinim analizi sırasında mühendislerin müşteriyle olan iletişimi, yazılım tasarımı sırasında da takım içi iletişimlerinin iyi olması gereklidir. Ta- sarımın ardından, hazırlanacak proje takvimi için maliyet tahminleri yapılmalıdır. Proje takvimi oluşturulurken bu tahminlerin isabetli olması gereklidir. Tahmin- ler, proje yürütülürken de takvime müdahele etmeyi kolaylaştırır. Mühendislik öğrencilerinin bu tahminleri doğru yapabilmeleri için yapılacak işin ne olduğunu bilmeleri kadar, kendilerini de iyi tanımaları gerekir. Bütün bu koşullar altında proje yönetiminin ders olarak yürütülmesi hem öğrenciler için hem de öğretim elemanı için çaba gerektiren bir süreçtir. Öğretim elemanı için zor bölümlerin başında öğrencilerin değerlendirilmesi gelmektedir. Öğretim elemanı projenin yürütülmesini ve planlamasını takip etmeli ama öğ- rencilerin proje deneyimi kazanabilmeleri için çok fazla müdahale etmemelidir. Bu bildiride proje yönetim ve yazılım geliştirme derslerinde bireysel değer- lendirme için uygulanan görev puan sistemi ve ilk dönem sonrası elde edilmiş sonuçlar sunulmaktadır. Bu sistem sayesinde proje derslerinde takım olarak yapılan çalışmaların yürütülmesinin ve değerlendirilmesinin iyileştirilmesi he- deflenmiştir. 186 2 İlgili Çalışmalar Ekip çalışmalarında bireysel değerlendirme için öğrencilerin yaptıkları sunum- lar, yapılan toplantıların notları, öğrencilerin sundukları yazılı raporlar ve e- posta listelerindeki yazışmalar kullanılsa da bu bilgiler bireysel katkıların ne kadar olduğunu öğretim elemanına tam olarak gösteremez. Wilkins ve Lawhead öğretim elemanının bütün toplantılara katılıp herkesin ne yaptığını gözlemle- mesi durumunda da varlığının öğrencilerin davranışlarını değiştirmelerine neden olacağını belirtir [5]. Yapılan araştırmalar [5, 6, 7], takım projelerindeki bireysel değerlendirmede bu yöntemlerin yanısıra, öğrencilerin kendileri de dahil olmak üzere tüm takım arkadaşlarını değerlendirmesini ve bu değerlendirmenin ders notu hesaplanma- sına dahil edilmesi gerektiğini göstermektedir. Öğrencilerin notlama sistemine dahil olmaları ise farklı eleştirileri ve problemleri beraberinde getirmektedir. Herbert notlandırmada sadece öğrencilerin verdiği puanların kullanıldığı bir sis- temde öğrencilerin notları arkadaşları arasında eşit olarak paylaştırdıklarını gör- müştür [7]. Bunun sebepleri arasında öğrencilerin katkıların gerçekten eşit ol- duğunu düşünmeleri, formu acele doldurmaları ya da önemsememeleri, kendi katkılarını -az ya da çok- saklamaya çalışmaları, notlandırma işinin öğretim ele- manının işi olduğunu düşündüklerinden tepki vermek amacıyla eşit dağıttıklarını, ya da takım olarak eşit dağıtılması üzerine anlaşmalarını vermiştir. Bu durumda sadece öğrenci notlarının kullanılmasının sakıncalı olduğunu ve farklı yaklaşımlar kullanılması gerektiğini belirtmiştir. Clark ve arkadaşları, notlandırma tablosu olarak bireysel %40, takıma %60 oranda katkı veren bir sistem öne sürmüşlerdir [6]. Bu oranlarda öğrenci sa- dece takımdan gelecek nota güvenmemesi için de her ikisinden en az %40 alma koşulunu getirilmiştir. Öğrencilere dönemin başından itibaren kendilerinin ve ar- kadaşlarının değerlendirilmelerinin notlandırmaya büyük bir katkısı olacağını bil- dirilmiş ve web tabanlı araçlarla kendilerini ve arkadaşlarını değerlendirecekleri anketler, bireysel katkı raporları ve nicelik raporlarını doldurmaları istenmiştir. Bu araçlardan gelen verilerle öğrencilere de geri dönüşüm yapılması için anket- ler tamamlandığında, öğrenci anket sorularına verdiği cevaplarla, arkadaşlarının ona verdiği notların ortalamasını ve öğretim elemanının yorumlarını görebilmesi sağlanmıştır. Farrell ve arkadaşları Takım Katkı Sistemi adı verdikleri ve takım içinde özet değerlendirmelerden ve geri bildirimlerden oluşan bir sistem önermektedirler [8]. Bu sistem ile öğrencilere kendi katkılarını gösteren bir form, takım arkadaşlarını değerlendirdikleri başka bir form ve toplantı notlarını içeren son bir form ile veri girişi yapmalarını sağlayıp bu verileri notlandırmada kullanmaktadırlar. Takımın teslim ettiği raporlar değerlendirilip, bireysel katkılar göz önünde bulundurula- rak son not hesaplanmaktadır. Bu sistemi bir sonraki çalışma ile web tabanlı bir uygulama haline getirmişlerdir [9]. Vasilevskaya ve arkadaşları ise üç boyutta kategorilendirdikleri değerlendirme etkinlikleri ile projeleri notlandırmaktadırlar [1]. Bu boyutlar takım ve birey- sel değerlendirme, öğretim elemanı ve öğrenci katkısı, biçimsel ve toplamsal değerlendirmedir. 187 3 Yazılım Proje Yönetiminde Değerlendirme Yapılan çalışmalar ve edinilen deneyimler sonucu, dönem ya da bitirme projesi olarak yapılan çalışmaların yürütülmesinde ve değerlendirilmesinde yardımcı ola- cak araçlara ihtiyaç vardır. Kullanılacak sistemin – projenin yürütülmesinin ve gerçeklenmesinin önüne geçmemesi, – hem öğrencilerin, hem de öğrencilerin yaptığı işlerin öğretim elemanı ta- rafından değerlendirilmesini içermesi [5, 6, 7], – adil ve açıklanabilir olması [8], – takım içerisinde, Aggarwal e O’Brien’in deyimiyle, kaytaranlara izin verme- mesi [10], gerekmektedir. Öğretim elemanının sürece dahil olması öğrencileri daha iyi de- ğerlendirmesine olanak verir ve desteğe ihtiyaç duyulduğunda doğru yönlendire- bilir. Fakat öğrenciler projede kendi başlarına kalmalı, kararları kendileri verme- leri ve projeyi kendileri yönetmelidirler. 3.1 Proje Yönetimi ve Görev Puan Sistemi Dönem içinde verilen projenin takibi ve değerlendirilmesi için Coppit’in uygu- ladığı yöntem temel alınarak bir sistem tasarlanmış, ve bu sistem 2016/2017 öğretim yılı Bahar döneminde İzmir Ekonomi Üniversitesi Mühendislik Fakülte- sinde verilen “SE315 Yazılım Proje Yönetimi” dersinde uygulanmıştır [2]. SE315 dersi dönem içinde iki ayrı şube olarak toplam 96 öğrenci ile işlenmiştir. Öğren- ciler daha önce programlama ve yazılım geliştirme yöntemlerini anlatan dersleri almışlardır. Coppit dönem içinde bir projeyi 20 - 30 kişiden oluşan bir sınıf ile birlikte gerçeklemiştir. Yapılacak projenin büyüklüğünün ayarlanmasında gerçeklemenin yanında test ve belgeleme gibi diğer yazılım süreçlerini de hesaba katılması ge- rektiğini belirtmiştir. Seçilen projenin esnek gereksinimlere sahip olması ve öğ- rencilerin paralel çalışabilmeleri için bu gereksinimlerin olabildiğince bağımsız olması gerektiğini vurgulamıştır. SE315 dersinde sayıları 4 ile 6 öğrenci arasında değişen 20 takıma bir Trafik Benzetim Projesi verilmiştir. Öğrenciler kendi ekiplerini oluşturabildikleri gibi, isterlerse öğretim elemanı tarafından da bir ekibe dahil edildiler. Seçilen proje, Coppit’in önerdiği kadar büyük olmasa da, öğrencilerin kendilerinin iyi olduğu ortamları seçebilmeleri için gereksinimleri esnek ve bağımsız tutulmuştur. Trafik benzetim projesi ile öğrencilerden bir masaüstü yazılımı geliştirmeleri istenmektedir. Bu proje ile hayali bir belediyede çalışan sinyalizasyon mühen- disleri, trafik ışıklarının konumlarını ve zamanlamalarını test edebileceklerdir. Yazılımın kullanıcıları bir trafik senaryosu oluşturmak için yollar, dönel kavşak- lar, yaya geçitleri, üç renkli ve tek renkli trafik ışıkları çizebileceklerdir. Yolların kapasiteleri ve yoğunlukları belirtilince, yazılım belli bir süre sonra ne kadar trafik sıkışıklığı olacağını gösterecektir. Kullanıcı bu senaryoyu bir dosya olarak kaydedebilecektir. 188 Coppit sınıfı yöneticiler ve geliştiriciler olarak ayırmıştır. Takımlar kendile- rine lider seçebilmektedir. Bu yaklaşımın yerine, SE315 dersindeki proje takım- larındaki her öğrenci eşit sürelerde proje yöneticisi konumuna getirilmiştir. Bu süre, takımdaki öğrenci sayısına göre 10 gün ile iki hafta arasında değişmektedir. Böylece her öğrenci bir süre proje yöneticiliği yapma fırsatı kazanmış ve pro- jenin her parçasının tasarlanmasında, gerçeklenmesinde ve yürütülmesinde yer almışlardır. Coppit öğrencileri değerlendirmek için, isim vermese de, bizim Görev Puan Sistemi olarak adlandırdığımız bir yöntem önermektedir. Bu görev puan siste- mine göre projedeki herkes görev açabilir ve bu göreve 1-10 değerleri arasında üç ayrı puan verir. Bu puanlar öncelik, zorluk ve değiştirici olarak isimlendi- rilmiştir. Öncelik ve zorluk puanları görevin önceliğini ve zorluğunu belirtirken, değiştirici puanı yöneticiye ve öğretim elemanına görevin sonucuna göre ek bir not vermesini sağlar. Örneğin iyi yapılan işlerde bu puan yönetici ve öğretim elemanı tarafından yükseltilebilir. Görev açıldıktan sonra yönetici veya öğretim elemanı tarafından puanlar güncellenebilir. Görev puanı öncelik, p, ile zorluk, d, değerlerinin çarpımına değiştirici, m, değerinin eklenmesi ile hesaplanır. Görev tamamlandığında ise öğrenci görev durumunu “Yönetici Bekleniyor” olarak ayarlar. Yönetici görevi gözden geçirir ve kapatır. Coppit’in öğrencileri web tabanlı Issue Tracker (http: //issue-tracker.sf.net/) yazılımının görev puan sistemi için özelleştirilmiş bir sürümünü kullanmışlardır. Görev puan sistemi SE315 dersinde benzer şekilde uygulanmıştır. Issue Trac- ker yazılımının özelleştirilmiş sürümüne sahip olmadığımız için öğrenciler istedik- leri bir web tabanlı proje yönetim sistemine yönlendirilmişlerdir. Kullanılacak sistemde yeni bir görevin açılıp, bu görevin geliştiricilere atanabilmesi koşulu aranmıştır. Görevlere yapılan yorumlarla da puanların belirtilmesi istenmiştir. Büyük çoğunluk Trello (http://trello.com) yazılımını kullanırken, GitHub’ın (http://github.com) hata takip sistemini seçenler de olmuştur. Bir ekip ise Asana (http://www.asana.com) yazılımını kullanmıştır. Örnek bir ekran gö- rüntüsü Şekil 1 ile verilmiştir. Coppit, projelerin değerlendirilmesinde takım ve bireysel görevlerin puan- larını kullanmıştır. Gruba ait geçerli görevlerin puanları toplanmış, ve bu pu- anlardan tamamlanan görevlere ait puanlarla oranlanmışlardır. Örnek bir görev puan tablosu, Tablo 1 ile verilmiştir. Bu tabloda proje grubu geliştiricileri top- lamda 125 puanlık görev açmışlardır. Bu görevlerden 110 puan toplayabilmişler- dir. Bu oran, (110/125) × 100 = 88, takım notu olarak belirlenmiştir. Bireysel puanların hesaplanmasında, her öğrencinin eşit miktarda katkı yapması beklen- mektedir. Buradaki 125 puan, her öğrencinin 125/3 = 41.66 puan toplaması gerektiğini göstermektedir. Tablo 1 ile OGR1, OGR2 ve OGR3 öğrencilerinin sırayla 58, 39, 13 puan topladıklarını görebiliyoruz. Bu notları beklenen 41.66 notuyla oranlanarak hepsinin bireysel notu hesaplanabilir. Bu notlar sırayla, 139, 94 ve 31’dir. Projeye çok fazla katkı sağlayan OGR1, 139 puan yerine bi- reysel olarak 100 puan alacaktır. Coppit, takım ve bireysel notların ortalamasını öğrencinin son notu olarak belirlemiştir. Son notlar, 94, 91 ve 60 olarak he- 189 Şekil 1. Asana ile oluşturulmuş bir görevin ekran görüntüsü. saplanabilir. Aynı sistem SE315 dersi için de kullanılmıştır. Fakat son notun hesaplanmasında bireysel nota %60, takım notuna %40 oranları verilmiştir. Tablo 1. Örnek bir görev puan tablosu. ID Özet Puan (p × d + m) Durum Atanan 1 Dönel Kavşaklar 4 × 6 + 5 = 29 Tamamlandı OGR2 2 Yaya Geçidi 4 × 4 + 2 = 18 Tamamlandı OGR1 3 Benzetim 6 × 6 + 4 = 40 Tamamlandı OGR1 4 Kullanıcı El Kitabı 3 × 2 + 4 = 10 Tamamlandı OGR2 5 Kurulum Programı 4 × 3 + 3 = 15 Devam ediyor OGR3 6 Yazılım Testi 5 × 2 + 3 = 13 Tamamlandı OGR3 Biten / Toplam 110 / 125 3.2 Projenin Yürütülmesi Dönemin ikinci haftasında Trafik Benzetim Projesi öğrencilere sunulmuştur. Aynı zamanda görev puan sistemi anlatılmış ve öğrencilerden hem bu sistemi kullanabilecekleri, hem de proje yönetimi sırasında kullanabilecekleri, öğretim elemanın da katılabileceği çevrim içi bir proje yönetim yazılımı belirlemeleri is- tenmiştir. Proje içi iletişimin buradan yürütülmesi gerektiği vurgulanmıştır. Proje yöneticiliği görevini herkesin yapacağını, bu görevin puan dağılımı- nın zorluk olarak 2, önem olarak 10 ve değiştirici olarak 5 olduğu belirtilmiştir. Proje yöneticisi olmanın diğer öğrenci arkadaşlarına göre daha üst bir konum ol- madığı, sadece farklı bir görev olduğu belirtilmiştir. Bu görevin gereklilikleri an- latılmış, örnek olarak toplantıların yapılması ve yürütülmesi, projenin plana uy- gun şekilde gidip gitmediğinin kontrol edilmesi ve görev puanlarının gerektiğinde 190 düzenlenmesi verilmiştir. Yöneticinin bu görevleri olduğu için, görev sırasında başka bir görev almamaları istenmiştir. Görev puan sisteminde puanlandırma için şu şekilde bir yaklaşım izlenmesi istenmiştir. Eğer görev yazılım geliştirme sürecindeki adımlardan biriyse, önce- lik değeri olarak 4-6 arasında bir puan verilmesi; 1-3 arasını ek özellikler, 7- 10 arasını da önemli hatalar için kullanılması önerilmiştir. Zorluk puanı için de daha önce sık yapılmış görevler için 1-3, yazılım geliştirme süreçlerinde ilk kez uygulanan görevler için 4-6, karmaşık algoritmalar gibi durumlarda ise 7-10 arası değerler verilmesi istenmiştir. Değiştirici değerinin 0 ile başlaması, daha sonra geliştiricileri motive etmek, ya da iyi yapılan işleri ödüllendirmek için kul- lanılması önerilmiştir. Projenin geliştirme evresi için bütün öğrencilerden bir GitHub hesabı edin- meleri ve burada herkese açık olarak projelerini geliştirmeleri istenmiştir. Pro- jenin gerçekleme evresinde bir Git kullanımı sunumu yapılmış ve sürüm kontrol sistemleri tanıtılmıştır. Git sunucusuna herkesin kaynak kod katkısı yapması is- tenmiş ve her hafta laboratuvar saatlerinde yapılan proje toplantılarında kontrol edilmiştir. Takımlar proje geliştirme yöntemleri konusunda serbest bırakılmışlardır. Pro- je sürecinde bütün takımlardan bir gereksinim analizi belgesi istenmiştir. Bu bel- genin amacı, herkesin projeyi doğru anladığından emin olmaktır. Daha sonraki belgelerin hiçbiri zorunlu tutulmamış, öğrencilerin kendilerinin belirlediği yazılım mühendisliği süreçlerini takip etmeleri beklenmiştir. Projenin geliştirilmesi için de, masaüstü uygulaması olması koşulu ile, programlama dili ve kütüphaneleri öğrencilerin seçimine bırakılmıştır. Öğrenciler daha çok C++ ile Qt Kütüpha- nesi (https://www.qt.io/), Java Swing ve Python Tkinter ortamlarını tercih etmiştir. 3.3 Karşılaşılan Problemler Dönem boyunca 96 öğrenci toplam 20 adet ekip oluşturmuştur. Görev puan sistemi istekli ve çalışkan ekiplerin kendi kendilerini idare etmelerini sağlamış olsa da takım sayısının fazla olmasından dolayı projeden uzaklaşan ekiplerin fark edilmesinde geç kalınmıştır. Dönem sonuna doğru ise dersten kopan öğrencileri geri kazanmak mümkün olmamıştır. Proje tamamlandıktan sonra öğrencilerden bireysel bir proje sonu raporu istenmiştir. Bu raporda takım çalışması süresince kendilerini ve ekiplerini de- ğerlendirmişlerdir. Takım olarak hatalarını ve doğrularını, nedenleri ile birlikte eleştirisel bir biçimde raporlamışlardır. Edinilen bu bilgiler ışığında en çok kar- şılaşılan problemlerin başında takım içi tartışmalar gelmektedir. Bu tartışmalar hem projenin ilerlemesini, hem de bir takım olarak birlikte çalışmalarını engel- lemiştir. Projeyi gerçeklemek isteyen bazı öğrencilerin kendilerine güvenememe- leri ya da masaüstü uygulama geliştirmede deneyimlerinin olmaması, projenin süreç tahminleme ve gerçekleme evresinde gecikmelere sebep olmuştur. Proje ba- sit gözükse de, daha önce öğrenilen veri yapıları ve nesne yönelimli programlama yöntemlerinin probleme uygulamasında zorluklar yaşanmıştır. Problemin çözüle- 191 meyince iş bölümü de dengeli yapılamamıştır. Bu proje takvimini yaratırken de problem çıkarmıştır. Öğrencilerden gereksinim analizi belgesi dışında proje ile ilgili bir belge is- tenmemiş ve yazılım geliştirme süreçlerini uygulamaları beklenmiştir. Tasarım yapılmadan ya da tasarım yapılsa bile tasarım belgesi hazırlanmadan geliştiril- meye çalışılan projeler gerçekleme evresinde problemler yaşamışlardır. Ekipteki her geliştiricinin projeyi farklı düşündüğü ofis saatlerinde projeyi tartışmak için geldiklerinde sordukları bireysel sorularla anlaşılmıştır. Belgelerin öneminin vur- gulanması ve istenmese de hazırlanmasının gerekliliği açıkça ortaya çıkmıştır. Dersin not dağılımında projenin katkısının %15 olması, birçok öğrenciyi proje yerine daha kolay gördükleri ödev ve sınav notlarına yöneltmiştir. Bir sonraki dönemlerde projenin oranının daha çok arttırılması planlanmıştır. Coppit %40 gibi yüksek bir oran önermektedir. Görev puan sisteminin farklı web servisleri ile kullanılması puanların toplan- masını zorlaştırmıştır. Öğrenciler bu servisleri görev puan sistemiyle birlikte kul- lanırken farklı yaklaşımlar sergilemişler, bu yüzden öğretim elemanı ile iletişimde de kopukluklar olmuştur. Bazı takımlar görevlere yüksek puan vermenin yine yüksek not olarak döneceğini düşünürken, bazı takımlar ise bir göreve bütün takımı dahil ederek bireysel katkıların takip edilmesini yine zorlaştırmışlardır. 3.4 Faydalı Durumlar Öğrencilere takım içinde adil olarak not alacaklarını gösterdiği için görev puan sisteminin çalışmaya teşvik eden bir yapısı olduğu proje sonu raporlarından anlaşılmıştır. Alacakları nota takım katkısı kadar, bireysel katkı da olduğu için her öğrencinin eşit katkı yapması gözetilmektedir. Proje ekipleri içerisinde yazılımı tamamlamak için çalışan ekipler olmuştur. Bu ekipler derslerde, ders aralarında ve öğretim elemanının uygun olduğu ders dışı saatlerde proje üzerine sorular sorarak sonuca ulaşmaya çalışmışlardır. Bu ekiplere hem programlama, hem yazılım tasarımı ve mimarisi, hem de uygula- nabilecek algoritmalar açısından yol gösterilmiştir. Projenin devamlı takibi, sürekli olarak projenin tamamlanması gerektiğinin belirtilmesi, proje gereksinimlerine uymayan, ama öğrencilerin işine gelen istekle- rin sürekli reddedilmesi ile projeye gerçekçi bir ortam sağlamaya çalışılmıştır. Bu da takımların gerçek projelerde ve özellikle bitirme projelerinde karşılaşacakları problemler için bir deneyim olmuştur. 3.5 Öğrenci Anketi Dönem sonunda, öğrencilerin de yorumlarını alabilmek için deneyimlerini sor- gulayan bir anket hazırlanmış ve uygulanmıştır. Bu ankete sadece gönüllüler katılmış ve ders notuna herhangi bir katkı yapılmamıştır. Ankete anonim olarak 23 öğrenci katılmıştır. Katılımın az olmasının verilen cevapların bütün öğrenci- lerin görüşü olarak algılanmaması gerektiğini göstermektedir. Anket soruları üç ana bölümden oluşmaktadır. 192 1. İlk bölümdeki deneyim soruları öğrencileri daha yakından tanımak ve önceki deneyimlerini göz önüne alarak ders projesini değerlendirmeyi amaçlamak- tadır. – Bu dersteki proje dışında kaç tane ders projesi tamamladınız? – Ders dışında kaç tane proje tamamladınız? – Ders dışı ya da ders projesi olarak kaç projede bir takımın üyesi olarak çalıştınız? – Bu ders dışında yer aldığınız proje takımları en fazla kaç kişiydi? – Eğer yeni bir projeye başlayacak olursanız hangi programlama dilini kul- lanmak istersiniz? 2. İkinci bölümde proje ile ilgili sorular yer almaktadır. – Çoktan seçmeli soru olarak: Bu projeye paradigması (nesne yönelimli gibi), programlama dili ve ara yüzü olarak benzer proje geliştirdiniz mi? Her bir kategori için Aynı, Farklı ve Hiç seçenekleri verilmiştir. – Proje için kaç saat çalıştınız? – En çok hangisine zaman harcadınız? Organizasyon ve yönetim, iletişim, belgeler, gereksinim analizi, uygulama tasarımı, gerçekleme. – Hangi yazılım geliştirme yöntemini uyguladınız? Şelale, spiral, artımlı, çevik, prototip. – Kullandığınız geliştirme yöntemi yararlı oldu mu? 3. Son bölümde ise takım çalışması hakkında sorular sorulmuştur. – Bir takım olabildiniz mi? – Aynı takımla bir proje daha geliştirmek ister misiniz? – Projeye 5 üzerinden ne kadar katkı sağladığınızı düşünüyorsunuz? – Takım çalışmasının en zor kısmı nedir? İletişim, karar verme, başkalarını dinlemek ve onlarla çalışmak, Git gibi bir sürüm kontrol sistemi kullan- mak, planlama ve programlama, gereksinim analizi, belgeler. Anketin ilk kısmına verilen cevaplara göre, öğrencilerden %59,1’i daha önce yalnızca bir yazılım projesinde yer almış, %13,6’sı ise hiçbir projede yer al- mamıştır. Büyük çoğunluk, (%59,1) dersler dışında bir yazılım projesi geliştir- memişlerdir. %27,3’ü ise ders dışı 1 proje geliştirmişlerdir. İkinci kısımdaki cevaplara göre öğrencilerin yarısı projeye en fazla 40 saat, %27,3’ü 41-80 saat, %13,6’sı ise 81-120 saat arasında zaman ayırdıklarını be- lirtmişlerdir. Bu süreler öğrencilerin deneyimlerine bağlıdır ve sonraki dönemler- deki projeler için fikir sahibi olmaya yarayacaktır. Proje yönetimi sırasında en fazla (%59,3) organizasyon ve yönetime, daha sonra (%50) projeyi gerçeklemeye ve belgelemeye, en az da uygulama tasarımına (%31,8) ve iletişime (%27,3) za- man ayırmışlardır. Büyük çoğunluk çevik geliştirme (%59,1) yaklaşımını kul- lanırken, diğerleri yine şelale yaklaşımını (%22,7) tercih etmişlerdir. Kullandıkları yaklaşımın büyük oranda (%54,5) yararlı olduğunu belirtmişlerdir. Proje yönetimin en önemli kısımlarından biri öğrencilerin takım çalışması becerisini kazanmaları ve bir takımın üyesi olarak üzerlerine düşen görevleri ya- pabilmeleri gerekmektedir. Bu bağlamda, “Bir takım olabildiniz mi?” sorusunda evet ve hayır eşit not almasına rağmen “Aynı takımla bir proje daha geliştirmek ister misiniz?” sorusuna %68,2’si olumsuz yanıt vermiştir. “Projeye 5 üzerin- den ne kadar katkı sağladığınızı düşünüyorsunuz?” sorusuna %45,5’i 4 değerini 193 işaretlerken, 3 (%22,7) ve 5 (%18,2) değerleri de birbirlerine yakın olması dikkat çekmiştir. Ankete katılan öğrenciler takım çalışmasının en zor alanının planlama ve programlama (%77,3) olduğunu, daha sonra iletişim (%63,6) ve karar verme (%54,5) olarak belirtmişlerdir. 4 Sonuçlar ve Gelecek Çalışmalar Proje yönetiminde görev puan sisteminin kullanılması, proje sürecinde ve değer- lendirilmesinde öğrencilerin katkılarının uygun şekilde değerlendirilmesine yar- dımcı olmaktadır. Aynı zamanda öğretim elemanını gerektiği yerde müdahale etmesine, onun dışında grubun kendi kendini idare edebilmesine olanak vermek- tedir. Geçen ilk dönemin ardından, görev puan sisteminde çeşitli değişiklikler yapıl- ması da planlanmaktadır. Zorluk ve öncelik değerleri verilirken 1-10 arası puan yerine değeri tanımlayan ve daha anlaşılır olan “kolay, normal, zor” ifadeleri kullanılacaktır. Görev puan sisteminin en çok ihtiyaç duyduğu kısım ise proje evreleridir. Dönem içerisinde 20 ekibin büyük çoğunluğu projeyi tamamlayamamıştır. Pro- jeyi evrelere ayırmak ve bu evrelere belli oranlarda puan vermek öğrencilerin kısmi notlandırmalarına yardımcı olacaktır. Görev puan sisteminin Trello ya da Asana gibi var olan çevrim içi hizmet- lerle birlikte kullanılması zorluklar çıkarmaktadır. Çevrim içi proje yönetiminin görev puan sistemi ile bütünleşik olması projelerin daha kolay yürütülmesini sağlayacaktır. Ayrıca takımların ilerlemelerinin çevrim içi izlenebilmesi projeden uzaklaşan takımların daha erken fark edilerek tekrar kazanılmalarına yardımcı olacaktır. Görev puan sistemi projenin takip ve değerlendirilmesi için kolaylık sağlasa da anket sonuçlarında öğrencilerin yine de organizasyon ve yönetime çok fazla süre ayırırken yazılım tasarımına çok daha az süre ayırdıkları ve takım ar- kadaşlarından memnun olmadıkları, dolayısıyla iletişim için de az zaman har- cadıkları ortaya çıkmıştır. Bunları projelerin büyük çoğunluğunun tamamlana- mamasının nedenleri olarak da sayabiliriz. Görev Puan Sisteminin proje yü- rütülmesinin önüne geçmeden ve ek yük çıkarmadan işlemesi yönetime har- canan süreyi de daha az etkilemesini sağlayacaktır. İletişimin daha iyi olması da öğrencilerin takım oluştururken arkadaşlarını daha yakından tanımaları ile mümkün olacaktır. Öğrencilerin geçmiş projelerine ait bilgilerin tutulması, dönem başında takımlar oluşturulurken yardımcı olacaktır. Teşekkürler SE315 Yazılım Proje Yönetimi dersini 2016/2017 Bahar döneminde alan iki şubedeki bütün öğrenci arkadaşlarımıza, katkılarından dolayı değerli hakemle- rimize ve Damla Oğuz’a teşekkür ederiz. 194 Kaynakça 1. Vasilevskaya, M., Broman, D., Sandahl, K.: Assessing large-project courses: Model, activities, and lessons learned. Trans. Comput. Educ. 15(4) (Decem- ber 2015) 20:1–20:30 2. Coppit, D.: Implementing large projects in software engineering courses. Computer Science Education 16(1) (2006) 53–73 3. Ardis, M., Budgen, D., Hislop, G.W., Offutt, J., Sebern, M., Visser, W.: Se 2014: Curriculum guidelines for undergraduate degree programs in software engineering. Computer 48(11) (Nov 2015) 106–109 4. Börstler, J., Hilburn, T.B.: Team projects in computing education. Trans. Comput. Educ. 15(4) (December 2015) 16:1–16:5 5. Wilkins, D.E., Lawhead, P.B.: Evaluating Individuals in Team Projects. In: Proceedings of the Thirty-first SIGCSE Technical Symposium on Computer Science Education. SIGCSE ’00, New York, NY, USA, ACM (2000) 172–175 6. Clark, N., Davies, P., Skeers, R.: Self and Peer Assessment in Software Engineering Projects. In: Proceedings of the 7th Australasian Conference on Computing Education - Volume 42. ACE ’05, Darlinghurst, Australia, Australia, Australian Computer Society, Inc. (2005) 91–100 7. Herbert, N.: Quantitative Peer Assessment: Can Students Be Objective? In: Proceedings of the Ninth Australasian Conference on Computing Edu- cation - Volume 66. ACE ’07, Darlinghurst, Australia, Australia, Australian Computer Society, Inc. (2007) 63–71 8. Farrell, V., Ravalli, G., Farrell, G., Kindler, P., Hall, D.: Capstone Project: Fair, Just and Accountable Assessment. In: Proceedings of the 17th ACM Annual Conference on Innovation and Technology in Computer Science Edu- cation. ITiCSE ’12, New York, NY, USA, ACM (2012) 168–173 9. Farrell, V., Farrell, G., Kindler, P., Ravalli, G., Hall, D.: Capstone Project Online Assessment Tool Without the Paper Work. In: Proceedings of the 18th ACM Conference on Innovation and Technology in Computer Science Education. ITiCSE ’13, New York, NY, USA, ACM (2013) 201–206 10. Aggarwal, P., O’Brien, C.L.: Social Loafing on Group Projects: Structu- ral Antecedents and Effect on Student Satisfaction. Journal of Marketing Education 30(3) (2008) 255–264 195