Η ανάγκη για την παραγωγή νέου λογισμικού αυξάνεται διαρκώς, τόσο λόγω της ψηφιοποίησης των διαδικασιών στη βιομηχανία, όσο και λόγω των αυξανόμενων απαιτήσεων των καταναλωτών για νέες ψηφιακές εμπειρίες. Η διαδικασία παραγωγής λογισμικού παραμένει, όμως, δύσκολη και πολύπλοκη, με πολλά έργα να μην φτάνουν στο τελικό στάδιο και να παραμένουν ανολοκλήρωτα. Για την αντιμετώπιση των προβλημάτων της διαδικασίας παραγωγής λογισμικού, οι εταιρίες ωθούνται να εφαρμόσουν νέες διαδικασίες και μεθόδους παραγωγής, όπως το Ευέλικτο μοντέλο. Είναι αναγκαίο, οπότε, να προσλάβουν τους κατάλληλους προγραμματιστές για τις θέσεις, που θα κατέχουν όχι μόνο τις απαραίτητες τεχνικές γνώσεις, αλλά και τις επικοινωνιακές δεξιότητες. Τα ανοιχτά αποθετήρια κώδικα μπορούν να προσφέρουν λύση στο πρόβλημα αυτό, καθώς παρέχουν πληροφορίες για τις τεχνικές ικανότητες και τις γλώσσες προγραμματισμού που χρησιμοποιούν οι προγραμματιστές. Επιπλέον, μέσω της αλληλεπίδρασης των προγραμματιστών, με σχόλια σε Issues και Pull Requests, μπορεί να αντληθεί πληροφορία για τις δεξιότητες επικοινωνίας τους. Στο πλαίσιο αυτό, η παρούσα διπλωματική εργασία προτείνει ένα σύστημα άντλησης και ανάλυσης των συνεισφορών των προγραμματιστών από τη πλατφόρμα GitHub, για τη παραγωγή χρήσιμων μετρικών, και ένα μοντέλο μη-εποπτευόμενης μάθησης για τον διαχωρισμό των προγραμματιστών σε ομάδες ανάλογα με τις δεξιότητές τους.
5. GitHub to the Rescue
• Πραγματικές τεχνικές δεξιότητες των μηχανικών
• Γλώσσες προγραμματισμού
• Εργαλεία
• Δεξιότητες επικοινωνίας
Ιούλιος 2023 ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ 5
6. Σκοπός Διπλωματικής
Αξιοποίηση των συνεισφορών των
προγραμματιστών σε αποθετήρια
ανοιχτού κώδικα
Δημιουργία συστήματος άντλησης
συνεισφορών και παραγωγής μετρικών
Κατασκευή μοντέλου
κατηγοριοποίησης προγραμματιστών
ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ
Ιούλιος 2023 6
7. Γνώσεις που αποκτήθηκαν
• Κατασκευή διακομιστή
• Γνώσεις προγραμματισμού σε
JavaScript/TypeScript
• Χρήση web εργαλείων και framework
(Node.js, Express) και API (REST,
GraphQL)
• Χρήση ΣΔΒΔ MongoDB
• Αλγόριθμοι και μοντέλα ομαδοποίησης
• Τεχνικές προεπεξεργασίας δεδομένων
• Γνώσεις προγραμματισμού σε Python
ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ
Ιούλιος 2023 7
9. Δεδομένα
Στατιστικά dataset
Μετρική Τιμή
Αριθμός Χρηστών 10.213
Αριθμός Αποθετηρίων 147.176
Αριθμός Commit 2.115.880
Αριθμός Issue 113.520
Αριθμός Pull Request 258.517
Αριθμός Pull Request
Review
317.449
Αριθμός Σχολίων σε
Commit
6.898
Αριθμός Σχολίων σε Issue 1.089.506
Συνολικό Μέγεθος
Δεδομένων
5.38GB (1.56GB
Συμπιεσμένα)
Μετρικές που χρησιμοποιήθηκαν για την
εκπαίδευση του μοντέλου
Όνομα Περιγραφή
Commits.daily_count__sum Συνολικός αριθμός commit
Issues.daily_count__sum Συνολικός αριθμός issue
PullRequests.daily_count__sum Συνολικός αριθμός pull request
PullRequestReviews.daily_count
__sum
Συνολικός αριθμός pull request
review
UserIssueComments.
PullRequests_daily_count__sum
Συνολικός αριθμός σχολίων σε
pull request
UserIssueComments.
Issues_daily_count__sum
Συνολικός αριθμός σχολίων σε
issue
Commits.code_ratio Ποσοστό αρχείων σχετικά με
συγγραφή κώδικα
Commits.doc_ratio Ποσοστό αρχείων σχετικά με
τεκμηρίωση
Commits.CICD_ratio Ποσοστό αρχείων σχετικά με
εργαλεία CI/CD
ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ
Ιούλιος 2023 9
10. Προεπεξεργασία
Αρχικός αριθμός δεδομένων: 180.028
Τελικός αριθμός δεδομένων: 11.488
ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ
Ιούλιος 2023 10
Οργάνωση δεδομένων ανά
χρήστη και αποθετήριο
Αφαίρεση bot λογαριασμών
Επιλογή αριθμού ελάχιστων
συνεισφορών
Αφαίρεση εξωκείμενων
τιμών
Κανονικοποίηση στο εύρος
[0, 1]
12. Agglomerative Model
Ιούλιος 2023 ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ 12
13. Agglomerative Model
ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ
Ιούλιος 2023 13
14. Agglomerative Model
ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ
Ιούλιος 2023 14
15. Ρόλοι Προγραμματιστών
Agile Developer
•Κύριο μέλημα την
συγγραφή κώδικα
•Μικρό μέγεθος
commit
•Αυξημένη χρήση
εργαλείων CI/CD
Developer
(commits)
•Κύρια μέριμνα
είναι η εγγραφή
πηγαίου κώδικα
για την ανάπτυξη
του προϊόντος
•Συμμετοχή σε
προσωπικά έργα
•Μη-προσωπικά
έργα στα οποία
είναι
συνδημιουργοί
Project
Management Team
•Συνεισφορά κατά
κύριο λόγο με
σχόλια σε Pull
Requests και Issues
•Παλαιότερος ρόλος
των μελών μπορεί
να ήταν η
συγγραφή κώδικα
•Πλέον έχει
μετατοπιστεί σε
έναν περισσότερο
διοικητικό ρόλο
DevOps
•Συμμετοχή σε
ολόκληρη τη
διαδικασία
ανάπτυξης του
έργου λογισμικού
Developer (pull
Requests)
•Τα μέλη της
ομάδας αυτής
ενδιαφέρονται
κατά κύριο λόγο
για την συγγραφή
πηγαίου κώδικα
•Δεν συμμετέχουν
σε άλλες
δραστηριότητες,
όπως το άνοιγμα
issue
•Συνεισφορές σε
αποθετήρια που
δεν είναι δικά τους
•Είναι συχνά core
members των
αποθετηρίων
Operations
(documentation)
•Συνεισφορές σε
commit τα οποία
είναι σχετικά με
την τεκμηρίωση
πηγαίου κώδικα ή
την τεκμηρίωση
του έργου
λογισμικού.
•Συχνά, τα
αποθετήρια που
συμμετέχουν είναι
εξειδικευμένα για
την συγγραφή
τεκμηρίωσης
Reviewer
•Πραγματοποίηση
Pull Request
Reviews
•Αποθετήρια στα
οποία, είναι
συνιδρυτές,
•Αποθετήρια στα
οποία κατέχουν
εξέχουσα θέση
Ιούλιος 2023 ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ 15
16. Μοντέλο στην Παραγωγή
• Αδυναμία χρήσης Agglomerative
μοντέλου
• Εκπαίδευση μοντέλου ταξινόμησης
RandomForest
• Ακρίβεια (accuracy) 93,8%
ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ
Ιούλιος 2023 16
17. Ανακεφαλαίωση
Αξιοποίηση συνεισφορών για μοντελοποίηση προφίλ προγραμματιστών
Κατασκευή ενιαίου συστήματος συλλογής δεδομένων και παραγωγής μετρικών
Κατασκευή μοντέλου ομαδοποίησης για την αντιστοίχιση προγραμματιστών με
ρόλους
Επιτυχή αντιστοίχιση προγραμματιστών σε ρόλους
Εκπαίδευση μοντέλου ταξινόμησης για χρήση στη παραγωγή
Ιούλιος 2023 ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ 17
18. Μελλοντική Εργασία
• Δημιουργία γραφικής διεπαφής
• Επέκταση Dataset
• Χρήση καθημερινών συνεισφορών προγραμματιστών
Ιούλιος 2023 ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ 18
19. Ευχαριστίες
Ιούλιος 2023 ΑΝΑΛΥΣΗ ΚΑΙ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΠΡΟΦΙΛ ΠΡΟΓΡΑΜΜΑΤΙΣΤΩΝ ΜΕΣΩ ΤΕΧΝΙΚΩΝ ΕΞΟΡΥΞΗΣ ΓΝΩΣΗΣ ΑΠΟ ΑΠΟΘΕΤΗΡΙΑ ΑΝΟΙΧΤΟΥ ΛΟΓΙΣΜΙΚΟΥ 19
Θα ήθελα να ευχαριστήσω τους επιβλέποντες της διπλωματικής μου
εργασίας, τον καθηγητή μου κ. Συμεωνίδη Ανδρέα και τον Δρ. Παπαμιχαήλ
Μιχάλη για την βοήθεια και καθοδήγηση που μου προσέφεραν.
Η ανάπτυξη λογισμικού είναι μια πολύπλοκη και χρονοβόρα διαδικασία,
με τη βιωσιμότητα των έργων λογισμικού να μην είναι πάντοτε εγγυημένη.
Οι απαιτήσεις του λογισμικού μπορεί να αλλάξουν σε οποιοδήποτε σημείο του κύκλου ζωής του,
η κλίμακα και η πολυπλοκότητα του έργου μπορεί να ξεπεράσουν τους αρχικούς στόχους του έργου,
ενώ η κακή επικοινωνία μεταξύ των μελών της ομάδας ή η παρερμηνεία των απαιτήσεων μπορεί να οδηγήσει σε λανθασμένη υλοποίηση.
Τα προβλήματα αυτά μπορεί να οδηγήσουν το έργο να υπερβεί τον αρχικό οικονομικό προϋπολογισμό,
ακόμα και στον τερματισμό του και τη μη ολοκλήρωσή του.
Για την αποτροπή των δυσκολιών αυτών οι εταιρίες έχουν εφαρμόσει κατά καιρούς διαφορετικές διαδικασίες και μεθόδους παραγωγής και οργάνωσης.
Όπως το Μοντέλο του Καταρράκτη, την Επαναληπτική μέθοδο, διάφορες Ευέλικτες μεθόδους και την DevOps προσέγγιση.
Ως αποτέλεσμα της εφαρμογής των μεθόδων λογισμικού, είναι η εμφάνιση συγκεκριμένων ρόλων και αρμοδιοτήτων των προγραμματιστών.
Developer:
από τους παλαιότερους ρόλους,
Είναι αυτός που θα μελετήσει τις απαιτήσεις και στη συνέχεια θα πρέπει να σχεδιάσει το σύστημα
υπεύθυνος υλοποίησης όλων των χαρακτηριστικών και λειτουργιών του λογισμικού
μπορεί, επίσης, να επεκτείνεται στην δοκιμή του συστήματος για την εύρεση σφαλμάτων, προτού φτάσει στην παραγωγή
Operator
υπεύθυνος για την παράδοση του λογισμικού
σωστή και αδιάκοπη λειτουργία του στη παραγωγή
Σωστή τεκμηρίωση κώδικα και υπηρεσιών
Συγγραφή αναφορών σφαλμάτων και προβλήματα που πρέπει να διορθωθούν
κλιμάκωση των υπηρεσιών ανάλογα με την κατανάλωση πόρων
DevOps
συνδυάζει τις αρμοδιότητες των developers και operators
υπεύθυνοι για ολόκληρο τον κύκλο ζωής της ανάπτυξης λογισμικού
σχεδιασμό και την κωδικοποίηση έως την ανάπτυξη και τη συντήρηση
Το λογισμικό κατασκευάζεται και αναπτύσσεται αποτελεσματικά και αποδοτικά
έμφαση στην αυτοματοποίηση και τη συνεχή βελτίωση
Σημαντική η επικοινωνία μεταξύ των μελών της ομάδας
Product Owner/ Project Manager
PM προέρχεται από την Waterfall μεθοδολογία
υπεύθυνος για την διαχείριση του πρότζεκτ
στόχος η παράδοσή του εντός χρόνου
Χωρίς να υπερβεί τον προϋπολογισμό
διατηρώντας το απαιτούμενο επίπεδο ποιότητας
σωστή διαχείριση του ανθρώπινου δυναμικού
διαθέτοντας τους πόρους και την υποστήριξη που χρειάζεται για την ολοκλήρωση των καθηκόντων
PO η εξέλιξη του Project Manager μέσα στο Agile περιβάλλον
υπεύθυνος για την διαχείριση της ομάδας του
Μεγιστοποίηση της αξίας του προϊόντος με την υλοποίηση των κατάλληλων λειτουργιών από αυτές που εκκρεμούν
PO αναπτύσσει τον δίαυλο επικοινωνίας με τον πελάτη, για τη συνεχή συνεννόηση και ικανοποίηση των αναγκών και προσδοκιών του
Reviewer
επανεξετάζει τις αλλαγές στον κώδικα για την διασφάλιση ποιότητας και απαιτήσεων
Μπορεί να ελέγξει για τρωτά σημεία ασφαλείας
κάλυψη του κώδικα από tests
δίνει σχόλια για τις θετικές και για τις αρνητικές αλλαγές που πραγματοποιήθηκαν
Quality Assurance
υπεύθυνοι για την ορθή και αδιάκοπη λειτουργία του λογισμικού
δημιουργία των προτύπων ποιότητας και πολιτικών
σχεδιάζουν και εφαρμόζουν tests και διερευνητικές δοκιμές, με σκοπό την εύρεση αδυναμιών και σφαλμάτων λογισμικού πριν φτάσουν στην παραγωγή
Παρατηρώντας τις δυσκολίες της διαδικασίας ανάπτυξής λογισμικού και
Τις ανάγκες των εταιριών
Ανάγκη εταιριών να βρουν τα κατάλληλα άτομα για τις θέσεις που χρειάζονται.
Για να μπορούν να ικανοποιούν στους ρόλους των ομάδων λογισμικού
Παλαιότερα, οι εταιρίες είχαν ως μόνα τους εργαλεία το βιογραφικό του μηχανικού λογισμικού και
την συνέντευξή του για την πραγματοποίηση της αξιολόγησής του.
διαδεδομένη χρήση συστημάτων ελέγχου έκδοσης (git) + ανάπτυξη πλατφορμών όπως το GitHub => Προσφέρουν νέες προοτικές
άντληση πληροφορίας για τις πραγματικές τεχνικές δεξιότητες των μηχανικών,
τις ικανότητές τους και τις γλώσσες προγραμματισμού
Καθώς, και τα εργαλεία που χρησιμοποιούν
Με τα PR, Issues και τα σχόλια σε αυτά, μπορούν να αξιολογηθούν οι δεξιότητες επικοινωνίας του μηχανικού
Αξιοποίηση των συνεισφορών των προγραμματιστών σε αποθετήρια ανοιχτού κώδικα,
Για την παραγωγή έγκυρης αξιολόγηση των τεχνικών και επικοινωνιακών δεξιοτήτων των μηχανικών
Για τον σκοπό αυτό δημιουργήθηκε σύστημα άντλησης συνεισφορών και παραγωγής μετρικών
μοντέλο μη-εποπτευόμενης μάθησης, το οποίο είναι ικανό να κατηγοριοποιεί τους προγραμματιστές σε ρόλους βάσει των δεξιοτήτων τους
Με/Κατά την εκπόνηση της διπλωματικής
Αποτελείται από τρία διακριτά υποσυστήματα, τον διακομιστή, το σύστημα διαχείρισηςβάσης δεδομένων (ΣΔΒΔ) (DataBase Management System, DBMS), και τομοντέλο μηχανικής μάθησης
Διακομιστής:
Ως απλός web server με χρήση API
Ως GitHub App
Άντληση πληροφοριών συνεισφορών, επεξεργασία, παραγωγή μετρικών και αποθήκευση
Παραγωγή μετρικών
DBMS:
Αποθήκευση πληροφοριών σε συλλογές
ML model:
Κατηγοριοποίηση των προγραμματιστών σε ρόλους
Για την εύρεση των ρόλων των προγραμματιστών χρησιμοποιήθηκε η διαδικασία της ομαδοποίησης
Αφου δεν ήταν εκ τον προτέρων γνωστοί οι ρόλοι για να μπορέσουν να εφαρμοστούν αλγόριθμοι ταξινόμισης
Καλύτερη ομαδοποίηση για cosine average 6 και
Cosine complete(ολικού) 8
Επιλέχτηκε Cosine complete 8 διότι παρήγαγε πιο ισορροπημένες ομάδες
Επιλέχτηκε τελικώς το Agglomerative μοντέλο με metric=‘cosine’, linkage=‘complete’ και 8 ομάδες.
Σε σχέση με linkage=‘average’ οι ομάδες ήταν καλύτερα κατανεμημένες
Τελικά, βρέθηκαν 7 ρόλοι προγραμματιστών: δυο ομάδες συγχωνευτήκαν σε μία (PM Team)
Agile Developer:
Κύριο μέλημα την συγγραφή κώδικα
Μικρό μέγεθος commit
Αυξημένη χρήση εργαλείων CI/CD
Developer (commits):
Κύρια μέριμνα είναι η εγγραφή πηγαίου κώδικα για την ανάπτυξη του προϊόντος
Συμμετοχή σε προσωπικά έργα
Μη-προσωπικά έργα στα οποία είναι συνδημιουργοί
PM Team:
Συνεισφορά κατά κύριο λόγο με σχόλια σε Pull Requests και Issues
Παλαιότερος ρόλος των μελών μπορεί να ήταν η συγγραφή κώδικα
Πλέον έχει μετατοπιστεί σε έναν περισσότερο διοικητικό ρόλο
DevOps:
Συμμετοχή σε ολόκληρη τη διαδικασία ανάπτυξης του έργου λογισμικού
Developer (pull Requests)
Τα μέλη της ομάδας αυτής ενδιαφέρονται κατά κύριο λόγο για την συγγραφή πηγαίου κώδικα
Δεν συμμετέχουν σε άλλες δραστηριότητες, όπως το άνοιγμα issue
Συνεισφορές σε αποθετήρια που δεν είναι δικά τους, αποθετήρια open source κοινότητας
Μεγάλα αποθετήρια με πολλούς χρήστες
Είναι συχνά core members των αποθετηρίων
Operations (documentation):
Συνεισφορές σε commit τα οποία είναι σχετικά με την τεκμηρίωση πηγαίου κώδικα ή την τεκμηρίωση του έργου λογισμικού.
Συχνά, τα αποθετήρια που συμμετέχουν είναι εξειδικευμένα για την συγγραφή τεκμηρίωσης
Reviewer
Πραγματοποίηση Pull Request Reviews
Αποθετήρια στα οποία, είναι συνιδρυτές,
Αποθετήρια στα οποία κατέχουν εξέχουσα θέση
Εφαρμόζοντας δεκαπλή αντεπικύρωση (stratified 10 fold cross validation) για 5 επαναλήψει
δηλώνει ότι το μοντέλο ταξινόμησης Random Forest μπορεί να ταξινομεί με επιτυχία νέους προγραμματιστές.
Δυσκολίες:
μικρός αριθμός προγραμματιστών χρησιμοποιεί το GitHub επαγγελματικά ή σε Open-Source Repos => μικρός αριθμός συνεισφορών
Sparce Contributions
Γραφική διεπαφή == website, mobile app
Επέκταση Dataset, με επιπλέον δεδομένα χρηστών από Open Source Repos
ή ιδιωτικά αποθετήρια εταιριών, για την πραγματοποίηση σύγκρισης δεδομένων
Χρήση καθημερινών συνεισφορών προγραμματιστών: Dynamic Time Warping για πρόβλεψη παραγωγικότητας