Successfully reported this slideshow.
Your SlideShare is downloading. ×

Georgia Pantalona

Georgia Pantalona

Download to read offline

Identifying software engineer profiles using data extracted from version control systems

Identifying software engineer profiles using data extracted from version control systems

More Related Content

More from ISSEL

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Georgia Pantalona

  1. 1. Αναγνώριση Προφίλ Μηχανικών Λογισμικού από Δεδομένα Συστημάτων Ελέγχου Εκδόσεων issel ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ & ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΕΠΕΞΕΡΓΑΣΙΑΣ ΠΛΗΡΟΦΟΡΙΩΝ ΚΑΙ ΥΠΟΛΟΓΙΣΜΩΝ Γεωργία Πανταλώνα - 8537 Αναπληρωτής Καθηγητής Ανδρέας Συμεωνίδης Μεταδιδακτορικός Ερευνητής Θεμιστοκλής Διαμαντόπουλος Υποψήφιος διδάκτορας Μιχάλης Παπαμιχαήλ
  2. 2. Εισαγωγή – ο ορισμός του προβλήματος • Ανάγκη διαφορετικών δεξιοτήτων για διαφορετικούς ρόλους • Ανάγκη αναγνώρισης αυτών των δεξιοτήτων • Κλασικές μέθοδοι δεν είναι αρκετές • Αυξημένη χρήση συστημάτων ελέγχου εκδόσεων 19-Jul-19 Πανταλώνα Γεωργία 2
  3. 3. Εισαγωγή – σκοπός της εργασίας • Δημιουργία μοντέλου για την αντικειμενική αναγνώριση δεξιοτήτων των μηχανικών • Συγκριτική αξιολόγηση των δεξιοτήτων σε ένα σύνολο μηχανικών • Δημιουργία εφαρμογής που θα παρουσιάζονται τα αποτελέσματα 19-Jul-19 Πανταλώνα Γεωργία 3
  4. 4. Θεωρητικό Υπόβαθρο 19-Jul-19 Πανταλώνα Γεωργία 4
  5. 5. Μοντέλα ανάπτυξης λογισμικού 19-Jul-19 Πανταλώνα Γεωργία 5 • Κλασικές μέθοδοι πχ.Μοντέλοκαταρράκτη,Επαναληπτικήμέθοδος • Ευέλικτες μέθοδοι πχ.SCRUM,ExtremeProgrammingκλπ. • DevOps προσέγγιση • Για κάθε διαφορετική προσέγγιση χρειάζονται άτομα με διαφορετικές δεξιότητες για διαφορετικούς ρόλους Πχ.Developer,Operationsmanager,Projectmanager,Analyst,Qualitymanager,tester
  6. 6. Πλατφόρμα GitHub • Πλατφόρμα διατήρησης και ανάπτυξης λογισμικού • Διατήρηση αρχείου αλλαγών • Υποστήριξη συνεργασίας στο ίδιο project από απόσταση • Υποστήριξη σχολίων και δημιουργία issue 19-Jul-19 Πανταλώνα Γεωργία 7
  7. 7. Παρόμοιες έρευνες • Πολλές έρευνες για την αναγνώριση δεξιοτήτων • Οπτικοποίηση τεχνικών δεξιοτήτων σε tag cloud • Οπτικό βιογραφικό με δεδομένα από πλατφόρμες διατήρησης και ανάπτυξης λογισμικού και πλατφόρμες με τεχνικές ερωτήσεις και απαντήσεις !!Κανένα με συγκριτική αξιολόγηση 19-Jul-19 Πανταλώνα Γεωργία 8
  8. 8. Υλοποίηση 19-Jul-19 Πανταλώνα Γεωργία 9
  9. 9. Επισκόπηση υλοποίησης 19-Jul-19 Πανταλώνα Γεωργία 10
  10. 10. Συλλογή και οργάνωση δεδομένων 19-Jul-19 Πανταλώνα Γεωργία 11 • Συλλογή δεδομένων από το API του GitHub • Δεδομένα από • Commit • Issue • Comments • Userinformation Οργάνωση δεδομένων User_name commits committed Sha.json Commits authored Sha.json Issues Commented id.json Issues authored id.json Issues assigned id.json issues mentions id.json Comments on issues id.json Comments on commits id.json Repositories owned id.json user info.json user stats.json
  11. 11. Ανάλυση δεδομένων συνεισφοράς • Αναγνώριση πέντε κατηγοριών δεξιοτήτων • Γενική Παραγωγικότητα • Παραγωγικότητα σε θέματαdevelopment • Παραγωγικότητα σε θέματαoperations • Δεξιότητεςσε θέματαprojectmanagement • Δεξιότητεςσε θέματαquality και testing • Δημιουργία μετρικών που μπορούν να αντικατοπτρίσουν τις παραπάνω δεξιότητες 19-Jul-19 Πανταλώνα Γεωργία 12
  12. 12. Ανάλυση δεδομένων συνεισφοράς Παραδείγματα μετρικών 19-Jul-19 Πανταλώνα Γεωργία 13 Γενική Παραγωγικότητα: Μέση συχνότητα δραστηριοτήτων τον μήνα, Μέσος αριθμός project τον μήνα Dev Παραγωγικότητα: % των pull request του χρήστη που έγιναν merge, Μέσος όρος αρχείων που άλλαξαν σε ένα commit Ops Παραγωγικότητα: % σχολίων με λέξη σχετική́ με το documentation, Μέσος χρόνος απάντησης σε @αναφορά́ Project management: % σχολίων με λέξεις σχετική́ με project management, % issues με label Quality & Testing: % σχολίων που περιέχουν αναφορά́ σε issue, % αρχείων σχετικών με testing που έκανε commit ο χρήστης
  13. 13. Μοντέλο συγκριτικής αξιολόγησης • Συγκριτική αξιολόγηση μετρικών • Κατηγοριοποίηση μετρήσεων των μηχανικών ανάλογα με το σύνολο των δεδομένων 19-Jul-19 Πανταλώνα Γεωργία 14 Outlier elimination Normalisa- tion Profile assignment Metric limit assignment Διαδικασία που ακολουθήθηκε για κάθε μετρική
  14. 14. Πειραματικά αποτελέσματα • Για την δημιουργία του συστήματος χρησιμοποιήθηκαν 99 χρήστες. Αυτοί οι χρήστες έπρεπε να έχουν 10 repositories, 20 ακόλουθους και πάνω από 100 commits. • Το τελικό αποτέλεσμα των πειραμάτων είναι ένα json αρχείο με όλες τις μετρικές, για κάθε μετρική περιέχεται: • Όνομα μετρικής • Κατηγορία δεξιοτήτων • Προφίλ (ascending/descending/middle) 19-Jul-19 Πανταλώνα Γεωργία 15 • Score(good/average/bad) • Πραγματικήτιμή • Κανονικοποιημένη τιμή
  15. 15. Οπτικοποίηση αποτελεσμάτων - mockup 19-Jul-19 Πανταλώνα Γεωργία 16
  16. 16. Οπτικοποίηση αποτελεσμάτων - mockup 19-Jul-19 Πανταλώνα Γεωργία 17
  17. 17. Επίδειξη χρήσης προφίλ με GUI 19-Jul-19 Πανταλώνα Γεωργία 18
  18. 18. Αξιολόγηση & Συμπεράσματα 19-Jul-19 Πανταλώνα Γεωργία 19
  19. 19. Αξιολόγηση I. Αναγνώριση δεξιοτήτων μηχανικών από το προφίλ τους II. Κατηγοριοποίηση των μηχανικών σε προφίλ Dev Ops DevOps Ανάλογα με τις δεξιότητες τους 19-Jul-19 Πανταλώνα Γεωργία 20
  20. 20. Συμπεράσματα 19-Jul-19 Πανταλώνα Γεωργία 21 • Η αναγνώριση δεξιοτήτων από τη συνεισφορά των μηχανικών σε project είναι δυνατόν να γίνει • Η αναγνώριση και κατηγοριοποίηση των μηχανικών σε προφίλ με βάση τις δεξιότητες είναι εφικτή • Διάφορες παράμετροι επηρεάζουν το επίπεδο δεξιοτήτων των μηχανικών  τα αποτελέσματα που φαίνονται στο προφίλ δεν είναι απόλυτα
  21. 21. Μελλοντική εργασία • Βελτίωση μετρικών • Βελτίωσηανάλυσηςσχολίωνκαι μνημάτων • Αξιολόγησηποιότηταςκώδικα που παράγει ο μηχανικός • Μετρικές που αντικατοπτρίζουν δεξιότητες για άλλους ρόλους (πχ database administrator, analyst) 19-Jul-19 Πανταλώνα Γεωργία 22 • Βελτίωση σετ δεδομένων • περισσότεροι χρήστες, • δεδομένα από περισσότερες πλατφόρμες • Βελτίωση εφαρμογής • Ταχύτερααποτελέσματα • Γρηγορότερη προσπέλαση αυτών
  22. 22. Ευχαριστίες Θα ήθελα να ευχαριστήσω τους επιβλέποντες της διπλωματικής μου εργασίας, τον Αναπληρωτή Καθηγητή κ. Συμεωνίδη Ανδρέα καθώς και τον μεταδιδακτορικού ερευνητή Θεμιστοκλή Διαμαντόπουλο και τον υποψήφιου διδάκτορα Μιχάλη Παπαμιχαήλ για την εμπιστοσύνη που μου έδειξαν, τη βοήθειά τους και την καθοδήγηση που μου παρείχαν. 19-Jul-19 Πανταλώνα Γεωργία 23
  23. 23. Ευχαριστώ για την προσοχή σας 19-Jul-19 Πανταλώνα Γεωργία 24
  24. 24. Παραδείγματα πιθανών συμπερασμάτων από μετρικές 19-Jul-19 Πανταλώνα Γεωργία 25 Μετρική Συμπέρασμα % issue που έκλεισε ο χρήστης με ταμπέλα σχετική με bugs Ασχολείται ενεργά με την επίλυση προβλημάτων που πολλές φορές υπάρχουν και ως ανοιχτά issue % issues με label Προσπαθεί να έχει οργανωμένο το project του και κατηγοριοποιημένα τα προβλήματα που συναντάει. Μέσος χρόνος απάντησης σε @αναφορά Απαντάει γρήγορα ή όχι σε σχόλια που έχουν αναφέρει το user name του. Αξιολογήσουμε τις επικοινωνιακές του δεξιότητες % των pull request του χρήστη που έγιναν merge Βλέπουμε κατά πόσο οι προτάσεις και ο κώδικας του χρήστη είναι αποδεκτός από τον ιδιοκτήτη του εκάστοτε project.
  25. 25. Διαγραφή εξωκείμενων τιμών • Διαγραφή τιμών που είναι εκτός του 98ου εκατοστημορίου • Πχ. Η τιμή 70 στα παρακάτω δεδομένα 19-Jul-19 Πανταλώνα Γεωργία 26
  26. 26. Κανονικοποίηση των μετρικών • Ελάχιστη και μέγιστη τιμή διαφορετική του 0 και 100 αντίστοιχα • Ανάγκη κανονικοποίησης για δυνατότητα σύγκρισης 19-Jul-19 Πανταλώνα Γεωργία 27 𝜅𝛼𝜈𝜊𝜈𝜄𝜅𝜊𝜋𝜊𝜄𝜂𝜇έ𝜈𝜂 𝜏𝜄𝜇ή = 𝛼𝜌𝜒𝜄𝜅ή 𝜏𝜄𝜇ή−𝜀𝜆ά𝜒𝜄𝜎𝜏𝜂 𝜏𝜄𝜇ή 𝜎𝜐𝜈ό𝜆𝜊𝜐 𝜇έ𝛾𝜄𝜎𝜏𝜂 𝜏𝜄𝜇ή 𝜎𝜐𝜈ό𝜆𝜊𝜐−𝜀𝜆ά𝜒𝜄𝜎𝜏𝜂 𝜏𝜄𝜇ή 𝜎𝜐𝜈ό𝜆𝜊𝜐
  27. 27. Παραδείγματα αιτιολόγησης επιλογής προφίλ 19-Jul-19 Πανταλώνα Γεωργία 28 Μετρική Προφίλ Αιτιολόγηση % των pull request του χρήστη που έγιναν merge Ascending Όσο περισσότερα pull request έγιναν merge τόσο ποιοτικότερος κώδικας Μέση χρονική διαφορά μεταξύ την ανάθεση και το κλείσιμο ενός issue από το χρήστη Descending Όσο περισσότερο χρόνο κάνει τόσο λιγότερο αποδοτικός είναι Μέσος αριθμός απαντήσεων σε σχόλια Middle Αν είναι πολλά τότε πιθανόν να μην εξηγεί ότι χρειάζεται καλά, ενώ αν είναι λίγα τότε δεν υπάρχει αρκετό υλικό για να κατανοήσουμε τις επικοινωνιακές του δεξιότητες
  28. 28. Δημιουργία τελικών σκορ • Ascending: 𝑣𝑎𝑙𝑢𝑒 = 𝑣𝑎𝑙𝑢𝑒 • Descending: 𝑣𝑎𝑙𝑢𝑒 = 100 − 𝑣𝑎𝑙𝑢𝑒_𝑖𝑛𝑖𝑡𝑖𝑎𝑙 • Middle: 𝑣𝑎𝑙𝑢𝑒 = 100 −2 ∗ |50 − 𝑣𝑎𝑙𝑢𝑒_𝑖𝑛𝑖𝑡𝑖𝑎𝑙 | 19-Jul-19 Πανταλώνα Γεωργία 29
  29. 29. Παραδείγματα ιστογραμμάτων μετρικών 19-Jul-19 Πανταλώνα Γεωργία 30 • Μέσω αυτών έγινε • η αναγνώριση δυνατότητας συγκριτικής αξιολόγησης • η αναγνώριση διαχωρισμού των χρηστών σε 2ή 3κατηγορίες
  30. 30. Παράδειγμα τελικού json αρχείου 19-Jul-19 Πανταλώνα Γεωργία 31
  31. 31. Παραδείγματα αιτιολόγησης επιλογής τύπου γραφήματος 19-Jul-19 Πανταλώνα Γεωργία 32 Μετρική Γράφημα Αιτιολόγηση μέσος αριθμός δραστηριοτήτων (comments, commits. Issues) stacked area chart 1. Ποιες χρονικές περίοδοι ήταν πιο παραγωγικές 2. Τι είδους δραστηριότητες απασχολείται περισσότερο % σχολίων που περιέχουν λέξεις σχετικές με testing Bar chart Εύκολη αξιολόγηση αν είναι αποδοτικός στη συγκεκριμένη μετρική Ποσοστά παραγωγής λογισμικού σε κάθε γλώσσα προγραμματισμού Stacked bar chart Αναγνώριση σε ποιες γλώσσες υπάρχει εμπειρία
  32. 32. Παραδείγματα συμπερασμάτων για προφίλ μηχανικού -1 19-Jul-19 Πανταλώνα Γεωργία 33 • Προφίλ devOps • Χαρακτηριστικά • Καλέςεπικοινωνιακές δεξιότητες • Καλές δεξιότητες παραγωγής λογισμικού και ελέγχου • Καλέςδεξιότητες σε project management
  33. 33. Παραδείγματα συμπερασμάτων για προφίλ μηχανικού - 2 19-Jul-19 Πανταλώνα Γεωργία 34 • Προφίλ devOps • Χαρακτηριστικά • Καλές επικοινωνιακές δεξιότητες • Καλές δεξιότητες παραγωγής λογισμικού • Καλέςδεξιότητες ελέγχου • Καλέςδεξιότητες σε project management
  34. 34. Παραδείγματα συμπερασμάτων για προφίλ μηχανικού - 3 19-Jul-19 Πανταλώνα Γεωργία 35 • Προφίλ devOps • Χαρακτηριστικά • Καλέςεπικοινωνιακές δεξιότητες • Καλές δεξιότητες παραγωγής λογισμικού • Καλέςδεξιότητες ελέγχου • Καλέςδεξιότητες σε project management
  35. 35. Παραδείγματα συμπερασμάτων για προφίλ μηχανικού - 4 19-Jul-19 Πανταλώνα Γεωργία 36 • Προφίλ devOps • Χαρακτηριστικά • Καλέςεπικοινωνιακές δεξιότητες • Καλές δεξιότητες παραγωγής λογισμικού • Καλές δεξιότητες ελέγχου • Καλέςδεξιότητες σε project management
  36. 36. Παραδείγματα συμπερασμάτων για προφίλ μηχανικού - 5 19-Jul-19 Πανταλώνα Γεωργία 37 • Προφίλ devOps • Χαρακτηριστικά • Καλέςεπικοινωνιακές δεξιότητες • Καλές δεξιότητες παραγωγής λογισμικού • Καλέςδεξιότητες ελέγχου • Καλές δεξιότητες σε project management

Editor's Notes

  • Ονομάζομαι γεωργία πανταλώνα και θα σας παρουσιάσω τη διπλωματική μου εργασία με θέμα αναγνώριση προφιλ μηχανικών λογισμικού από δεδομένα συστημάτων ελέγχου εκδόσεων
  • Με την αύξηση παραγωγής λογισμικού άρχισαν να δημιουργούνται όλο και περισσότερες ομάδες παραγωγής λογισμικού. Έτσι αυξήθηκε και η ανάγκη μηχανικών που να καλύπτουν αυτές τις ομάδες και όλους τους ρόλους. Κάθε ρόλος όμως απαιτεί διαφορετικές δεξιότητες να είναι πιο ανεπτυγμένες για να καλύπτεται επιτυχώς ο ρόλος. Έτσι αυξήθηκε περισσότερο από ποτέ η ανάγκη αναγνώρισης αυτών των δεξιοτήτων με ένα αντικειμενικό τρόπο. Οι κλασικές μέθοδοι αναγνώρισης δεξιοτήτων και αντιστοίχισης μηχανικών σε ρόλους αν και ήταν παλιότερα αρκετές πλέον δεν καλύπτουν επαρκώς την ανάγκη. Τέλος με την αύξηση της παραγωγής λογισμικού αυξήθηκε και η χρήση συστημάτων ελέγχου εκδόσεων που διαθέτουν πολλά δεδομένα για την δουλειά του κάθε μηχανικού.

    - Ανάγκη οι μηχανικοί να έχουν διαφορετικές δεξιότητες για διαφορετικούς ρόλους σε μια ομάδα ανάπτυξης λογισμικού
    - Ανάγκη αναγνώρισης αυτών των δεξιοτήτων από
    - Κλασικές μέθοδοι δεν είναι αρκετές για την αντικειμενική αναγνώριση αυτών των δεξιοτήτων
    - Αυξημένη χρήση πλατφόρμων ανάπτυξης και διατήρησης λογισμικού
  • Σκοπός αυτής της διπλωματικής είναι η κάλυψη αυτής της ανάγκης, δηλαδή η δημιουργία ενός μοντέλου που θα βοηθάει στην αντικειμενική αναγνώριση των δεξιοτήτων ενός μηχανικού. Επίσης θα γίνει μια συγκριτική αξιολόγηση των δεξιοτήτων σε ένα σύνολο μηχανικών για την κατηγοριοποίηση και την αναγνώριση αν ο μηχανικός αποδίδει στη συγκεκριμένη δεξιότητα και τέλος δημιουργήθηκε μια εφαρμογή στην οποία παρουσιάζονται τα αποτελέσματα
  • Τώρα θα παρουσιάσω το θεωρητικό υπόβαθρο
  • Με την αύξηση των ομάδων παραγωγής λογισμικού αυξήθηκαν και τα μοντέλα που χρησιμοποιούνται από αυτές για την οργάνωση των ομάδων. Χρησιμοποιούνται μοντέλα όπως οι κλασικές μεθόδοι, για παραδειγμα η μεθοδος του καταρράκτη ή η επαναλληπτική μέθοδος, οι ευέλικτες μεθόδους που η δημοτικότητά τους έχει αυξηθεί ιδιαίτερα τα τελευταία χρόνια. Και τέλος η πιο συχνή χρήση της devOps προσέγγισης.

    Κάθε μέθοδος πρέπει να περιέχει άτομα με διαφορετικούς ρόλους, όπως είναι ο developer, operations manager, tester κλπ, και κάθε ρόλος απαιτεί διαφορετικές δεξιότητες από τα άτομα που τους καλύπτουν.
  • Κάποιοι από αυτούς τους ρόλους είναι … και οι δεξιόητες που πρεπει να έχουν ανεπτυγμένες είναι …
    Developer  προγραμματισμό, επίλυση προβλημάτων
    Operations Manager  Επικοινωνία, διαχείριση πόρων, marketing
    Project Manager  Επικοινωνία, project management, διαχείριση πόρων
    Analyst  συγκέντρωση και ανάλυση απαιτήσεων, επικοινωνία
    Quality manager  προγραμματισμό, εύρεση προβλημάτων, γνώση τεχνικών ελέγχου ποιότητας λογισμικού
    Tester  αναγνώριση και επίλυση προβλημάτων, δημιουργία test cases
    Database administrator  βασεις δεδομένων
  • Επίσης σημαντικό είναι να αναφερθεί η πλατφόρμα του github. Τι είναι αυτό, είναι μια πλατφόρμα διατήρησης και ανάπτυξης λογισμικού που επιτρέπει τη διατήρηση αρχείου αλλαγών. Δηλαδή καθ’όλη τη διάρκεια που μια ομαδα εργαζεται σε ένα πρότζεκτ ότι αλλαγές γίνονται αποθηκεύονται και μπορούν να αναγνωστούν οποιαδήποτε στιγμή. Επίσης μέσω αυτής της πλατφόρμας άτομα ανεξάρτητα αν βρίσκονται στο ίδιο γραφείο ή σε διαφορετικές ηπείρους μπορούν να συνεργαστούν για κάποιο προτζεκτ. Τέλος η πλατφόρμα υποστηρίζει σχόλια και τη δημιουργία issue. Τα σχόλια είναι χρησιμα για την επικοινωνία των μηχανικων και τα issue για την αρχειοθέτηση των προβλημάτων και τη συλλογική επίλυσή τους.
  • Στο παρελθόν έχουν γίνει διάφορες έρευνες που καλύπτουν κοινά μέρη με τη διπλωματική εργασία. Δηλαδή έρευνες για την αναγνώριση δεξιοτήτων αλλά και την οπτικοποίηση τους. Για παράδειγμα μια έρευνα παρουσιάζει σε ένα tag cloud τεχνικές δεξιότητες μηχανικών. Μια άλλη έρευνα δημιουργεί κάτι σαν οπτικό βιογραφικό με δεδομένα από πλατφόρμες διατήρησης και ανάπτυξης λογισμικού, όπως το github και πλατφόρμες με τεχνικές ερωτήσεις και απαντήσεις, όπως το stack overflow. Αλλά κανένα δεν έχει εφαρμόσει συγκριτική αξιολόγηση.
  • Παρακάτω θα μιλήσω για την υλοποίηση του μοντέλου
  • Εδώ βλέπουμε τη ροή των δεδομένων από την πλατφόρμα του github μέχρι την παρουσίαση των αποτελεσμάτων. Ουσιαστικά κατεβάζω δεδομένα, τα αποθηκεύω βγάζω μετρικές για τις οποίες δημιουργείται το μοντέλο συγκριτικής αξιολόγησης και τέλος περνάνε τα αποτελέσματα ενός χρήστη από το μοντέλο και παρουσιάζονται
  • Πιο λεπτομερειακάά τα δεδομένα συλλέγονται με τη χρήση του ΑΡΙ του github. Δεδομένα που συλλέγονται είναι τα commit, issues, comments και πληροφορίες για τον χρήστη. Γενικά όλα τα δεδομένα είναι επικεντρωμένα στον χρήστη. Δηλαδή τα commit που έκανε ο χρήστης, τα issues που συμμετείχε, τα σχόλια που έγραψε κλπ. Στη συνέχεια αποθηκεύονται τοπικά. Για κάθε χρήστη δημιουργήθηκε ένας φάκελος που περιέχει όλα τα δεδομένα που σχετίζονται με αυτόν.
  • Έπειτα έγινε η ανάλυση αυτών των δεδομένων. Ουσιαστικά αναγνωρίστηκαν πέντε κατηγορίες δεξιοτήτων για τις οποίες βρέθηκαν μετρικές οι οποίες μπορούν να αντικατοπτρίσουν το πόσο εξελιγμένες είναι αυτές οι δεξιότητες.
  • Κάποια παραδείγματα μετρικών μπορούμε να τα δούμε εδώ. Για παράδειγμα τη κατηγορία παραγωγικότητα μια μετρική είναι η μέση συχνότητα δραστηριοτήτων τον μήνα. Συνολικά συλλέχθηκαν 39 μετρικές για όλες τις κατηγορίες μαζί.
  • Πέρα από την αναγνώριση των μετρικών που καθορίζουν τα επίπεδα δεξιοτήτων των μηχανικών στην παρούσα διπλωματική έγινε και μια συγκριτική αξιολόγηση των περισσότερων μετρικών αυτών. Αυτό για τον σκοπό της κατηγοριοποίησης των αποτελεσμάτων των μετρικών κάθε μηχανικού ανάλογα με το σύνολο των δεδομένων.

    Η διαδικασία που ακολουθήθηκε για κάθε μετρική ξεχωριστά είναι η εξής:
    Αρχικά έγινε μια ξεκαθαρίσει των δεδομένων, από το σύνολο τους αφαιρέθηκαν οι εξωκείμενες τιμές
    Στη συνέχεια για όλες τις μετρικές έγινε η κανονικοποίηση τους. Ο τρόπος κανονικοποίηση είναι το πηλίκο της αρχικής τιμής μείον της ελάχιστης τιμής του συνόλου προς τη μέγιστη τιμή του συνόλου μείον την ελάχιστη τιμή.
    Έπειτα για κάθε μετρική επιλέχθηκε ένα προφίλ. Τα πιθανά προφίλ είναι αύξον – όταν όσο μεγαλύτερη τιμή της μετρικής τόσο καλύτερη η απόδοση στη συγκεκριμένη μετρική, το φθίνον – όταν όσο μικρότερη η τιμή της μετρικής τόσο καλύτερη η απόδοσή του και το μέσο – που η καλύτερη απόδοση είναι όταν η τιμή της μετρικής είναι περίπου στη μέση.
    Τέλος για κάθε μετρική ανάλογα με με την πόλωσή της έγινε ο διαχωρισμός σε δύο ή τρία τμήματα. Με αυτό τον τρόπο κάθε τιμή κάποιου μηχανικού παίρνει κάποιο σκορ – τα πιθανά σκορ είναι καλό, κακό και μέσο.
  • Πηγαίνοντας στα πειραματικά αποτελέσματα, για τη δημιουργία του συστήματος χρησιμοποιήθηκαν 99 χρήστες. Αυτοί οι χρήστες έχουν 10 repositories 20 ακολούθους και πάνω από 100 commit. Το τελικό αποτέλεσμα είναι ένα json αρχείο που περιέχει όλες τις μετρικές, είτε έχουν πάρει μέρος στη συγκριτική αξιολόγηση είτε όχι. Για τη κάθε μετρική περιλαμβάνονται πληροφορίες όπως το όνομα της, κατηγορία δεξιοτήτων, προφίλ, πραγματική και κανονικοποιημένη τιμή και το σκορ.
  • Όπως αναφέρθηκε στην αρχή ένα κομμάτι του σκοπού της διπλωματικής ήταν η παρουσίαση των αποτελεσμάτων οπτικά σε μια διεπαφή. Για το σκοπό αυτό έγιναν κάποια mockup. Για κάθε διαφορετική κατηγορία δεξιοτήτων δημιουργήθηκε μια σελίδα στην εφαρμογή. Ανάλογα με τον τύπο της μετρικής χρησιμοποιήθηκε το καταλληλότερο είδος γραφήματος. Για παράδειγμα στις δραστηριότητες τον μήνα στη σελίδα της παραγωγικότητας χρησιμοποιήθηκε ένα stacked area chart για να φαίνεται το σύνολο των δραστηριοτήτων αλλά και ξεχωριστά η κάθε δραστηριότητα.

    Τέλος ίσως παρατηρήσατε ότι για κάθε κατηγορία δεξιοτήτων παρουσιάζεται ένα γενικό σκορ, για παράδειγμα μπορείτε να το δείτε στη γενική σελίδα. Για τη δημιουργία του κάθε γενικού σκορ χρησιμοποιούνται οι μετρικές για τις οποίες έγινε η συγκριτική αξιολόγηση σε κάθε κατηγορία δεξιοτήτων.
  • Με την παρουσίαση των δεδομένων οποιοσδήποτε μπορεί να καταλάβει απλά κοιτώντας το προφίλ αν ο μηχανικός έχει ανεπτυγμένες τις δεξιότητες που χρειάζεται ο κάθε ρόλος.
  • Τέλος έγινε η υλοποίηση της εφαρμογής. Εδώ μπορούμε να δούμε ένα βίντεο που παρουσιάζει την εφαρμογή.

    Σχολιασμός κάθε κατηγορίας καθώς το βίντεο παίζει. Επισήμανση του search box στο τέλος
  • Η αξιολόγηση του συστήματος έγινε με βάση το αν γίνεται η αναγνώριστη των δεξιοτήτων των μηχανικών βλέποντας το προφίλ τους και αν μπορούμε μεσω αυτών των προφίλ να κατηγοριοποιήσουμε τους μηχανικούς σε προφιλ/ρολους όπως dev, ops ή devOps με βάση τις δεξιότητές τους.
  • Τα συμπεράσματα είναι αρχικά ότι μπορούν να αναγνωριστούν οι δεξιότητες από τη συνεισφορά των μηχανικών σε project και ότι κατά κύριο λόγο μπορούμε να κατηγοριοποιήσουμε τους μηχανικούς σε προφίλ/ρόλους βλέποντας αυτές τις δεξιότητες.

    Βέβαια πρέπει να τονίσουμε ότι πολλές παράμετροι επηρεάζουν τις δεξιότητες ενός μηχανικού, και ότι δεν είναι απόλυτα τα αποτελέσματα που βγαίνουν. Για παράδειγμα ένας μηχανικός δεν εργάζεται μόνο στο github αλλά μπορεί και σε άλλες πλατφόρμες, με αποτέλεσμα τα δεδομένα που έχουμε και τα συμπεράσματα που που βγάζουμε να είναι ελλιπή.
  • Κατά τη διάρκεια εκπόνησης της διπλωματικής παρατήρησα κάποια σημεία που μπορούν να βελτιωθούν για να γίνει το σύστημα καλύτερο.

    Αρχικά στο τομέα των μετρικών, κάποιες μετρικές θα μπορούσαν να βελτιωθούν, για παράδειγμα αυτές που βασίζονται στην ανάλυση σχολίων θα μπορούσαν να γίνουν με τη χρήση μηχανικής μάθησης για πιο αξιόπιστα αποτελέσματα. Επίσης θα μπορούσαν να προστεθούν γραφήματα με την αξιολόγηση της ποιότητας κώδικα. Για τώρα στην παραγωγικότητα σε θέματα development δεν αναλύεται ο κώδικας αλλά μόνο πιο γενικές μετρικές. Αν θέλουμε να αξιολογήσουμε ένα developer πρέπει να αξιολογήσουμε και το λογισμικό που παράγει. Τέλος για πιο ολοκληρωμένη ανάθεση ρόλων θα μπορούσαν να προστεθούν μετρικές που αντικατοπτρίζουν δεξιότητες χρήσιμες σε άλλους ρόλους όπως πχ για κάποιον analyst ή database administrator.

    Για τη βελτίωση των αποτελεσμάτων θα μπορούσε να βελτιωθεί και το σετ δεδομένων. Ένα μέρος βελτίωσης είναι να χρησιμοποιηθούν περισσότεροι χρήστες και ένα άλλο μέρος είναι να χρησιμοποιηθούν δεδομένα από περισσότερες πλατφόρμες.

    Τέλος για την εξαγωγή μιας τέτοιας εφαρμογής στην αγορά θα πρέπει να βγαίνουν τα αποτελέσματα ταχύτερα και να γίνεται γρηγορότερα η προσπέλασή τους.
  • Κλείνοντας την παρουσίαση αυτή θα ήθελα να ευχαριστήσω των κ Συμεωνίδη που μου εμπιστεύτηκε για διεκπεραιώσω αυτή τη διπλωματική καθώς και το Θέμη και τον Μιχάλη για την βοήθεια και καθοδήγηση που μου παρείχαν, που χωρίς αυτή θα ήταν πολύ πιο δύσκολο να φέρω σε πέρας αυτή την εργασία.

×