A model for the agile software development environments and its application for the finance industry - Özçelikkan, Nilay (My University, 2022)
Değişken piyasaya ayak uydurabilmek için Çevik Yazılım kullanılmaktadır. Çevik Yazılım yöntemlerinin içerisinde en popüler olanı Scrum çerçevesidir. Bir projedeki başarı, projenin gereksinimlerini ve takımın kapasitesini göz önünde bulunduran, iyi yapılmış planlar sayesinde olabilmektedir. Scrum çerçevesinin kullanıldığı projelerde, kullanıcı hikâyelerinin sprintlere atanması işi, kısıtlı kaynaklarla, etkin bir planlama ve birden çok amacın dikkate alınmasını gerektirir. Bu tezde, Scrum planlamada kullanılmak üzere, kullanıcı hikâyelerini sprintlere atayabilmek için, çok amaçlı bir karma tamsayılı programlama modeli oluşturulmuştur. Bu model, ilk aşamada, küçük ve orta ölçekli problem örneklerine uyarlanmış ve optimizasyon algoritmaları kullanılarak bu örnekler çözülebilmiştir. Ancak, büyük ölçekli problem örneği, optimizasyon yaklaşımlarını kullanılarak çözülememiştir. Bu sebeple, büyük ölçekli problem örnekleri için sezgisel yaklaşımlar kullanılmıştır. Önerilen model, sprint kapasite kullanımını maksimum seviyede kullanmak, yüksek önceliğe sahip kullanıcı hikâyelerini öncelikli sprintlere atamayı maksimum seviyeye çıkarmak ve ilgili kullanıcı hikayelerini aynı sprinte atamayı maksimum seviyeye çıkarmak şeklinde üç amacı göz önünde bulundurmaktadır. Çok amaçlı optimizasyon projeleri için, iyi sonuç verdiği kanıtlanmış bir çok algoritma bulunmaktadır. Bu algoritmaların içerisinden, Scrum planlama probleminde kullanılmak üzere, çok amaçlı problemler için, Pareto en iyi çözüme en çok yaklaşabilen iki Genetik Algoritma tekniği olan Nondominated Sorting Genetic Algorithm (NSGA-II) ve Strong Pareto Evolutionary Algorithm (SPEA2) kullanılmıştır. Bu iki algoritmanın performanslarını analiz etmek için performans ölçütleri kullanılmıştır ve sonuç olarak, Scrum planlama problemi örneklerini çözmek için her iki algoritmanın da kullanılabilir olduğu görülmüştür.

Agile software development methodologies are used to meet the changing needs in the market. The most popular framework for agile software development is the Scrum framework. The success of any project depends on proper plans which consider the requirements of the project and the capacity of the team. For the projects which use the Scrum framework, assignment of user stories to sprints requires the consideration of multiple objectives to use the limited resources more effectively. In this paper, a multi-objective integer programming model is developed to assign user stories to sprints for Scrum planning. This model is applied to the small and moderate-sized instances of the problem first and could solve these instances using optimization algorithms. However, the big-sized instances of the problem couldn't be solved by using optimization approaches. Therefore, heuristic approaches are used to deal with big instances. The proposed model considers three objectives: maximizing sprint capacity usage, minimizing the total weighted assignments of higher priority user stories to later sprints, and maximizing assignment of affine user stories to the same sprint. For multi-objective optimization problems, many algorithms are proven to give good results. Among them, two genetic algorithms that can find near-pareto optimum solutions for multi-objective problems, Nondominated Sorting Genetic Algorithm (NSGA-II) and Strong Pareto Evolutionary Algorithm (SPEA2) are used to solve the scrum planning problem. We compared the algorithms with indicators and as a result, it is found that both algorithms can be used for the instances of Scrum planning problems.
Keywords: Çevik Yazılım Geliştirme; Çok Amaçlı Model; Endüstri mühendisliği; Industrial engineering; Multi-objective Model; NSGA-II; Scrum; SPEA2; SPEA2 Agile Software Development