Towards an auction-based reward mechanism for effective bug resolution
- Global styles
- Apa
- Bibtex
- Chicago Fullnote
- Help
Abstract
Hata yönetimi, bir projede hatanın keşfedilmesinden raporlanmasına kadar geçen süreci kapsar. Hata, yazılım geliştirme yaşam döngüsünün herhangi bir adımında çıkabilir ve yazılım geliştirme süreçlerini iyi yönetebilmek çıkabilecek hata sayısını azaltır. Özellikle geniş ölçekli yazılım projelerinde yazılım geliştirme süreçlerini daha iyi tanımlayabilmek, birbirleri ile olan ilişkilerini yönetebilmek için UYY (Uygulama Yaşam Döngüsü Yönetimi) adlı yaklaşım geliştirilmiştir. UYY, yazılım geliştirme projelerinde kodun geliştirilmesi, yönetilmesi ve bakımının yapılması gibi adımları kapsayan bir süreçler bütünüdür.Bugün, yazılım mühendisliğinde karşılaşılan zorluklardan biri Uygulama Yaşam Döngüsü Yönetimi (UYY) araçlarının yazılım geliştirmede verimli şekilde kullanılamamasıdır. Teslimat sürecinde, geliştirilen ürünün olabildiğince az hata içermesi, yazılım kalitesinin ve müşteri memnuniyetinin artmasını sağlar fakat bunun için sadece ürünün iyi test edilmesi yeterli olmayabilir. İş planlaması sırasında ilgili hata kayıtlarının yazılım geliştiricilere zaman açısından olabildiğince verimli dağıtılması ve hızlı çözülmesi de önemlidir. Bu noktada oyunlaştırma ve ödüllendirme mekanizmalarını kullanmak yazılım hatalarının dağıtımı ve çözümünde daha verimli olunmasını sağlar. Oyunlaştırma, bir iş veya süreç için yeni teknolojiyle geliştirilen araçlar ile geleneksel oyun metotlarını birleştirerek öğrenme işlemini zorlaştıran, iş verimini azaltan engelleri ortadan kaldıran yöntemler sunar. Ödüllendirme mekanizmaları ise oyun içindeki her oyuncuyu bir hedef doğrultusunda motive edip, başarılı olması koşuluyla ödüllendirerek oyuncudan alınan verimi artırmayı amaçlar.Bu çalışmada, oyunlaştırmanın yazılım geliştiricilerin hata çözmelerine olan etkisi Monte Carlo simülasyonu kullanarak gözlemlenmiştir. Çalışma HAVELSAN bünyesinde geliştirilmiş bir proje üzerinde gerçekleştirilmiştir. İlk olarak bir pilot proje seçilmiş ve bu projedeki hata kayıtlarının çözüm süreleri incelenmiştir. Daha sonrasında, oyunlaştırmanın gerçek kullanıcıların eğitiminde kullanıldığı bir başka çalışma incelenmiş ve oyunlaştırma kullanımının eğitim sonucu yapılan sınav sonuçlarına etkisi matematiksel olarak hesaplanmıştır. Bu hesap ile elde edilen değer üzerinden Monte Carlo simülasyonu tasarlanmış ve pilot projeye ait hata kayıtlarının çözüm sürelerine olan etkisi incelenmiştir. Simülasyonda sanal açık artırmalar ve sanal oyuncular yaratılmış, açık artırmalara bu oyuncular tarafından teklif verilmiştir. Her açık artırma öğesi hata kayıtları üzerinden yaratılmıştır. Pilot projeye ait hata çözüm süreleri ile simülasyon sonunda elde edilen çözüm süreleri kıyaslanarak oyunlaştırmanın hata çözümünden alınan verimi artırdığı gözlemlenmiştir. Bug management involves all the processes from discovering to reporting in a project. A bug may occur at any stage of software development lifecycle, and managing software development processes better reduces the number of bugs that may occur. In particular, in large-scale software development projects, the approach called ALM (Application Life Cycle Management) has been developed to define software development processes well and to manage their relationship with each other. ALM is a set of process covering the development, management and maintenance of source code in software development projects.One of today's software engineering problems is the inability to use the Application Lifecycle Management (ALM) tools efficiently in software development. Within the delivery process fewer bugs improves software quality and customer satisfaction, however it may not be enough to test the product well. It is also significant that the relevant bug records are distributed to software practitioners as efficiently as possible and quickly resolved during business planning. At this point, using gamification and reward mechanisms can be more efficient in the distribution and solution of software bugs. Gamification provides methods that make learning easier and therefore eliminates barriers to work efficiency by combining methods developed with new technology for a business or process with traditional game methods. Rewarding mechanisms aim to motivate each player in the game in line with a goal and increase the efficiency of the players by rewarding them provided that they are successful.In this study, the effect of gamification on software developers' bug solving was observed by using Monte Carlo simulation. The study was carried out on a project developed within HAVELSAN. Firstly, a pilot project was selected and the resolution times of the bug records in this project were examined. Later, another study in which gamification was used in the training of real users was examined and the effect of gamification on the test results was calculated mathematically. We calculated a metric named as `gamification ratio` by comparing the pre-test and post-test results in this study. Monte Carlo simulation was designed on the value obtained with this calculation and the impact of the bug records of the pilot project on the resolution times was examined. In the simulation, virtual auctions and virtual players were created and these auctions were bid by the players. Each auction item has been created through bug records. After all, by comparing the bug resolution times of the pilot project with the resolution times obtained at the end of Monte Carlo simulation, it was observed that gamification increased the efficiency obtained from the bug resolution.
Collections