Το πρόβλημα που δημιουργήθηκε είναι πολύπλευρο.
1) Η μία εκδοχή του είναι η προγραμματιστική.
Θα προσπαθήσω να το εξηγήσω λίγο πιο... ανθρώπινα.
Τα bugs χωρίζονται σε λάθος σε κώδικα και σε λογικά λάθη.
Τα λάθη στον κώδικα είναι εύκολο να τα δεις, βαράνε με το που τρέχεις το application, εκτός από κάποιες εξαιρέσεις.
Τα λογικά λάθη είναι του στυλ
Αν ο πελάτης ζητήσει μπύρα δώσε του μία μπύρα, αν ο πελάτης ζητήσει κρασί δώσε του κρασί.
Και μπαίνει ένας πελάτης και ρωτάει που είναι η τουαλέτα.
Το πρόβλημα δεν είναι ότι δεν έχεις υπολογίσει αυτή την επιλογή αλλά ότι δεν έχεις πει στο πρόγραμμα τι να κάνει αν δεν έχεις υπολογίσει αυτή την επιλογή.
Εδώ λοιπόν είχαμε ένα λογικό λάθος.
Στην C, C++ δουλεύουμε πολύ με pointers.
Ξέρουμε δηλαδή ότι στην τάδε διεύθυνση της μνήμης έχει αυτό που θέλουμε.
Βάζουμε δηλαδή τον Κώστα στην Μητροπόλεως 666 και όταν τον θέλουμε, λέμε στον κώδικα, "φέρε μου αυτόν που είναι στην Μητροπόλεως 666".
Κάπου, κάποιος, δεν σημείωσε την διεύθυνση και όταν το σύστημα ζήτησε τον Κώστα, αυτό απάντησε... τίποτα.
Το σύστημα πήρε αυτό το τίποτα και προσπάθησε να το χειριστεί, να ζητήσει να του φέρει αυτόν που μένει στο τίποτα.
Ακόμη και ένας junior προγραμματιστής σε πολυεθνική θα έβαζε έναν έλεγχο του στυλ "αν δεν πάρεις τίποτα, μην πας να το ψάξεις!"
Εδώ όμως φαίνεται ότι δεν είχαμε καν έναν junior προγραμματιστή...
Πήγανε λοιπόν να δουν στην διεύθυνση "τίποτα" τι έχει, τα windows είδαν κάτι να προσπαθεί να δει μία διεύθυνση που δεν έχουν δικαίωμα να δουν και ΜΠΟΥΜ!
Συμπέρασμα; Μάλλον βασίστηκαν πολύ στο chatgpt για να γράψουν κώδικα, υπάρχουν συγκεκριμένος τρόπος πως να γράφεις κώδικα και πως να τσιμπας τα exceptions χωρίς να σκοτώνεις όλο το σύστημα.
2) Η άλλη εκδοχή του είναι ο τρόπος που καταλήγει το software στον τελικό πελάτη.
Όταν δουλεύουμε με software, ο τελικός πελάτης δεν παίρνει τον κώδικα απευθείας με το που τον γράφει κάποιος!
Υπάρχει το στάδιο όπου μεταξύ τους οι developers κάνουν δοκιμές, με τη βοήθεια άλλων εργαζόμενων στο IT (QA team, penetration, loadtest κλπ).
Μετά πάμε στο στάδιο όπου άτομα της εταιρίας που φτιάχνει το software μαζί με της εταιρίας του πελάτη τρέχουν κάποια τεστ,
Μετά πάμε στο λεγόμενο friends and family, όπου ένας μεγάλος αριθμός ατόμων, όχι απαραίτητα εργαζόμενων, δοκιμάζουν το software. Ένα πράγμα σαν beta testing δηλαδή.
Και τέλος, αφού όλα είναι καλά, πάει στους production servers να το πάρει όλος ο κόσμος!
Εδώ λοιπόν για κάποιο λόγο βιάστηκαν να κάνουν deployment, Παρασκευή, χωρίς να περάσει προφανώς από κανένα στάδιο. Jesus!
Ούτε καν code inspection από τον lead!
Αυτά ούτε "το ξαδελφάκι που ξέρει από ίντρενε" δεν τα κάνει.
Απορώ πως μία τέτοια εταιρία έκανε κάτι τέτοιο.
1) Η μία εκδοχή του είναι η προγραμματιστική.
Θα προσπαθήσω να το εξηγήσω λίγο πιο... ανθρώπινα.

Τα bugs χωρίζονται σε λάθος σε κώδικα και σε λογικά λάθη.
Τα λάθη στον κώδικα είναι εύκολο να τα δεις, βαράνε με το που τρέχεις το application, εκτός από κάποιες εξαιρέσεις.
Τα λογικά λάθη είναι του στυλ
Αν ο πελάτης ζητήσει μπύρα δώσε του μία μπύρα, αν ο πελάτης ζητήσει κρασί δώσε του κρασί.
Και μπαίνει ένας πελάτης και ρωτάει που είναι η τουαλέτα.
Το πρόβλημα δεν είναι ότι δεν έχεις υπολογίσει αυτή την επιλογή αλλά ότι δεν έχεις πει στο πρόγραμμα τι να κάνει αν δεν έχεις υπολογίσει αυτή την επιλογή.
Εδώ λοιπόν είχαμε ένα λογικό λάθος.
Στην C, C++ δουλεύουμε πολύ με pointers.
Ξέρουμε δηλαδή ότι στην τάδε διεύθυνση της μνήμης έχει αυτό που θέλουμε.
Βάζουμε δηλαδή τον Κώστα στην Μητροπόλεως 666 και όταν τον θέλουμε, λέμε στον κώδικα, "φέρε μου αυτόν που είναι στην Μητροπόλεως 666".
Κάπου, κάποιος, δεν σημείωσε την διεύθυνση και όταν το σύστημα ζήτησε τον Κώστα, αυτό απάντησε... τίποτα.
Το σύστημα πήρε αυτό το τίποτα και προσπάθησε να το χειριστεί, να ζητήσει να του φέρει αυτόν που μένει στο τίποτα.
Ακόμη και ένας junior προγραμματιστής σε πολυεθνική θα έβαζε έναν έλεγχο του στυλ "αν δεν πάρεις τίποτα, μην πας να το ψάξεις!"
Εδώ όμως φαίνεται ότι δεν είχαμε καν έναν junior προγραμματιστή...
Πήγανε λοιπόν να δουν στην διεύθυνση "τίποτα" τι έχει, τα windows είδαν κάτι να προσπαθεί να δει μία διεύθυνση που δεν έχουν δικαίωμα να δουν και ΜΠΟΥΜ!
Συμπέρασμα; Μάλλον βασίστηκαν πολύ στο chatgpt για να γράψουν κώδικα, υπάρχουν συγκεκριμένος τρόπος πως να γράφεις κώδικα και πως να τσιμπας τα exceptions χωρίς να σκοτώνεις όλο το σύστημα.
2) Η άλλη εκδοχή του είναι ο τρόπος που καταλήγει το software στον τελικό πελάτη.
Όταν δουλεύουμε με software, ο τελικός πελάτης δεν παίρνει τον κώδικα απευθείας με το που τον γράφει κάποιος!
Υπάρχει το στάδιο όπου μεταξύ τους οι developers κάνουν δοκιμές, με τη βοήθεια άλλων εργαζόμενων στο IT (QA team, penetration, loadtest κλπ).
Μετά πάμε στο στάδιο όπου άτομα της εταιρίας που φτιάχνει το software μαζί με της εταιρίας του πελάτη τρέχουν κάποια τεστ,
Μετά πάμε στο λεγόμενο friends and family, όπου ένας μεγάλος αριθμός ατόμων, όχι απαραίτητα εργαζόμενων, δοκιμάζουν το software. Ένα πράγμα σαν beta testing δηλαδή.
Και τέλος, αφού όλα είναι καλά, πάει στους production servers να το πάρει όλος ο κόσμος!
Εδώ λοιπόν για κάποιο λόγο βιάστηκαν να κάνουν deployment, Παρασκευή, χωρίς να περάσει προφανώς από κανένα στάδιο. Jesus!
Ούτε καν code inspection από τον lead!
Αυτά ούτε "το ξαδελφάκι που ξέρει από ίντρενε" δεν τα κάνει.
Απορώ πως μία τέτοια εταιρία έκανε κάτι τέτοιο.