Οδηγός

Εκσυγχρονισμός παλαιού λογισμικού χωρίς ριζική επανεγγραφή

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

Have a nice dayHave a nice day15 λεπτά ανάγνωσης
Εκσυγχρονισμός παλαιού λογισμικού χωρίς ριζική επανεγγραφή

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

Έχω δει τη μεγάλη επανεγγραφή να πηγαίνει στραβά αρκετές φορές ώστε να έχω ένα αντανακλαστικό γι' αυτό. Ένας ιδρυτής μου δείχνει το ετοιμόρροπο σύστημα παραγγελιών του ή το αρχαίο εργαλείο προγραμματισμού του, αναστενάζει και λέει κάποια εκδοχή του «απλώς πρέπει να αντικαταστήσουμε όλο το πράγμα». Και ίσως κάποια μέρα να το κάνετε. Όμως η πλήρης επανεγγραφή — βγάζεις το παλιό σύστημα, χτίζεις ένα λαμπερό καινούργιο παράλληλα, γυρίζεις έναν διακόπτη — είναι μία από τις πιο ριψοκίνδυνες κινήσεις σε όλο το λογισμικό. Είναι ακριβή, παίρνει πολύ περισσότερο χρόνο απ' όσο υποσχέθηκε, και για όλη τη διάρκεια τρέχετε στα τυφλά, ελπίζοντας ότι το καινούργιο καλύπτει κάθε παράξενη ακραία περίπτωση που το παλιό χειριζόταν αθόρυβα επί δεκαπέντε χρόνια.

Τα καλά νέα είναι ότι η ριζική επανεγγραφή δεν είναι σχεδόν ποτέ η μόνη επιλογή, και σπάνια η καλύτερη. Υπάρχει ένας πιο ήρεμος τρόπος εκσυγχρονισμού — σταδιακός, αναστρέψιμος και ήπιος προς την επιχείρηση που πρέπει να συνεχίσει να βγάζει χρήματα όσο εργάζεστε. Αυτός είναι ένας οδηγός γι' αυτόν τον τρόπο: πώς να καταλάβετε τι χρειάζεται πραγματικά διόρθωση, πώς να αντικαταστήσετε τα επώδυνα μέρη χωρίς να ρίξετε όλο το σύστημα, και πώς να ξέρετε πότε μια πλήρης επανεγγραφή είναι όντως η σωστή επιλογή.

Γιατί η ριζική επανεγγραφή είναι τόσο δελεαστική — και τόσο επικίνδυνη

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

Η βαθύτερη παγίδα είναι το πρόβλημα του παράλληλου σύμπαντος. Για τους μήνες ή τα χρόνια που χρειάζεται για να χτιστεί η αντικατάσταση, έχετε δύο συστήματα: το παλιό, που πρέπει ακόμη να τρέχει την επιχείρηση, και το νέο, που δεν είναι ακόμη έτοιμο. Κάθε αλλαγή που χρειάζεται η επιχείρηση πρέπει να γίνεται δύο φορές, αλλιώς το νέο σύστημα μένει πίσω από την πραγματικότητα προτού καν λανσαριστεί. Οι ομάδες εξαντλούνται κρατώντας και τα δύο ζωντανά. Και επειδή κανείς δεν επιτρέπεται να μεταβεί μέχρι το νέο σύστημα να κάνει τα πάντα, δεν υπάρχει πρώιμη νίκη, ούτε ανατροφοδότηση, ούτε απόδειξη ότι δουλεύει — μόνο μια μακρά, αγχωτική αναμονή για μια τεράστια, όλα-ή-τίποτα ημέρα λανσαρίσματος.

Μια επανεγγραφή σάς ζητά να ποντάρετε την επιχείρηση σε μία και μόνη ημέρα λανσαρίσματος, χρόνια μακριά, για ένα σύστημα που κανείς δεν έχει χρησιμοποιήσει ακόμη. Αυτό δεν είναι σχέδιο — είναι στοίχημα.
ό,τι λέω σε όποιον απλώνει το χέρι στο κουμπί επανεκκίνησης

Υπάρχει μια γνωστή λαϊκή σοφία του κλάδου εδώ, και είναι κερδισμένη: το δεύτερο σύστημα, η μεγάλη επανεγγραφή, έχει τη συνήθεια να παίρνει τριπλάσιο χρόνο από τον εκτιμώμενο και να φτάνει με λιγότερες λειτουργίες από αυτό που αντικαθιστά. Η εκτίμηση δεν είναι λάθος επειδή οι άνθρωποι είναι απρόσεκτοι. Είναι λάθος επειδή κανείς δεν μπορεί να δει, στην αρχή, όλα τα μικρά πράγματα που το παλιό σύστημα κάνει σιωπηλά σωστά.

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

Τι σημαίνει πραγματικά «παλαιό» (δεν έχει να κάνει με την ηλικία)

Πετάμε τη λέξη παλαιό σαν να σημαίνει απλώς γέρικο. Δεν σημαίνει. Πολύ λογισμικό που τρέχει εδώ και μια δεκαετία είναι μια χαρά — βαρετό, σταθερό, πληρωμένο, κάνει τη δουλειά του. Η ηλικία από μόνη της δεν είναι λόγος να αγγίξετε τίποτα. Το πιο ακριβό λάθος σε όλον αυτόν τον τομέα είναι ο εκσυγχρονισμός κάτι που δούλευε αθόρυβα, μόνο και μόνο επειδή έδειχνε παλιομοδίτικο.

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

Διαγνώστε προτού αγγίξετε οτιδήποτε

Προτού ξαναγραφτεί μία και μόνη γραμμή, χρειάζεστε έναν ειλικρινή χάρτη του πού ζει πραγματικά ο πόνος. Τις περισσότερες φορές, το σύστημα που όλοι μισούν είναι 80% μια χαρά. Το πρόβλημα συγκεντρώνεται σε λίγα συγκεκριμένα σημεία — μια αργή οθόνη, μια χαλασμένη ενσωμάτωση, μια ροή εργασίας που επιβάλλει διπλή καταχώριση δεδομένων — και αυτά τα λίγα σημεία γεννούν σχεδόν όλα τα παράπονα. Βρείτε τα, και έχετε βρει όλο το έργο σας.

Ο τρόπος να τα βρείτε δεν είναι πρώτα ένας τεχνικός έλεγχος — είναι μια συζήτηση. Καθίστε με τους ανθρώπους που χρησιμοποιούν το πράγμα κάθε μέρα και ρωτήστε τους πού πονάει. Πού περιμένουν; Τι ξαναπληκτρολογούν; Τι αποφεύγουν επειδή είναι επώδυνο; Πού κρατούν ένα ιδιωτικό υπολογιστικό φύλλο για να παρακάμψουν το επίσημο σύστημα; Αυτές οι παρακάμψεις είναι χρυσός: η καθεμία είναι μια ακριβής ακτινογραφία ενός προβλήματος που αξίζει να διορθωθεί.

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

Όταν το κάνετε αυτό ειλικρινά, το έργο συνήθως συρρικνώνεται. Ο ιδιοκτήτης που μπήκε λέγοντας «αντικαταστήστε τα πάντα» βγαίνει συνειδητοποιώντας ότι χρειάζεται να διορθώσει τρία πράγματα. Αυτό δεν είναι απογοήτευση — είναι ανακούφιση. Τρία διορθώσιμα πράγματα είναι ένα έργο που μπορείτε να τελειώσετε αυτό το τρίμηνο. Μια πλήρης αντικατάσταση είναι ένας χρόνος που ίσως δεν επιβιώσετε.

Η μέθοδος strangler: αντικαταστήστε το ένα κομμάτι τη φορά

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

Στην πράξη δουλεύει ως εξής. Διαλέγετε ένα επώδυνο κομμάτι — ας πούμε, τη μονάδα τιμολόγησης που όλοι μισούν. Χτίζετε μια σύγχρονη αντικατάσταση για μόνο αυτό το κομμάτι. Δρομολογείτε την τιμολόγηση στη νέα μονάδα ενώ όλα τα υπόλοιπα συνεχίζουν να τρέχουν στο παλιό σύστημα, ανέγγιχτα. Το παρατηρείτε για λίγο. Όταν είναι σταθερό, αυτό το μέρος του παλιού συστήματος σιωπά, και προχωράτε στο επόμενο κομμάτι. Το παλιό σύστημα συρρικνώνεται σταδιακά, σαν κερί, αντί να γκρεμίζεται όλο μαζί.

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

Αυτό που το κάνει τόσο πιο ασφαλές από μια επανεγγραφή είναι ότι κάθε βήμα είναι μικρό, ζωντανό και αναστρέψιμο. Δεν τρέχετε ποτέ στα τυφλά. Κάθε νέο κομμάτι μπαίνει γρήγορα σε πραγματική χρήση, οπότε μαθαίνετε γρήγορα αν όντως λειτουργεί. Αν κάτι πάει στραβά, έχετε ρισκάρει μόνο μία μονάδα, όχι όλη την επιχείρηση — και συνήθως μπορείτε να επιστρέψετε στην παλιά διαδρομή όσο τη διορθώνετε. Παίρνετε νίκες στην πορεία αντί για ένα τρομακτικό λανσάρισμα στο τέλος. Και η επιχείρηση συνεχίζει να τρέχει, κανονικά, όλον αυτόν τον καιρό.

Πώς μοιάζει πραγματικά ο ρυθμός

  1. 1
    Διαλέξτε το πιο επώδυνο, πιο αυτόνομο κομμάτι
    Θέλετε υψηλό πόνο και καθαρά όρια — μια μονάδα που πονάει πολύ και δεν έχει τα δάχτυλά της σε όλα τα υπόλοιπα. Αυτός είναι ο πρώτος σας στόχος.
  2. 2
    Βάλτε ένα λεπτό στρώμα μπροστά από το παλιό σύστημα
    Ένα μικρό στρώμα δρομολόγησης αποφασίζει ποια αιτήματα πάνε στο παλιό σύστημα και ποια στο νέο κομμάτι. Αυτή είναι η ραφή που κάνει εφικτά όλα τα υπόλοιπα.
  3. 3
    Χτίστε και λανσάρετε μόνο αυτό το ένα κομμάτι
    Αντικαταστήστε μία μονάδα, βάλτε την σε πραγματικά χέρια και δρομολογήστε μόνο εκείνο το κομμάτι δουλειάς σ' αυτήν. Εβδομάδες, όχι χρόνια — και το υπόλοιπο σύστημα δεν κουνήθηκε ποτέ.
  4. 4
    Σταθεροποιήστε, μετά προχωρήστε στο επόμενο κομμάτι
    Μόλις η νέα μονάδα γίνει αξιόπιστη, το αντίστοιχο μέρος του παλιού συστήματος αδρανοποιείται. Επαναλάβετε με το επόμενο επώδυνο κομμάτι, μαθαίνοντας στην πορεία.
  5. 5
    Αποσύρετε το παλιό σύστημα όταν αδειάσει
    Τελικά το παλαιό σύστημα δεν κάνει τίποτα στο οποίο να βασίζεται κανείς. Μόνο τότε το σβήνετε — αθόρυβα, χωρίς δράμα, γιατί ό,τι σημαντικό υπήρχε έχει ήδη μεταφερθεί.

Προσέξτε τι διαφέρει σ' αυτό από την επανεγγραφή: δεν υπάρχει μία και μόνη ημέρα λανσαρίσματος για να φοβάστε. Δεν υπάρχει παράλληλο σύμπαν για να συντηρείτε. Το νέο σύστημα είναι στην παραγωγή από την τρίτη εβδομάδα, βγάζοντας τα προς το ζην και διδάσκοντάς σας πράγματα, αντί να περιμένει σε ένα εργαστήριο για ένα λανσάρισμα που όλο γλιστράει.

Καμιά φορά δεν χρειάζεται καν να το αντικαταστήσετε

Προτού αντικαταστήσετε οτιδήποτε, αξίζει να αναρωτηθείτε αν το παλιό σύστημα χρειάζεται αντικατάσταση ή απλώς να πάψει να είναι νησί. Ένας εκπληκτικός αριθμός προβλημάτων «χρειαζόμαστε νέο σύστημα» είναι στην πραγματικότητα προβλήματα «τα συστήματά μας δεν μιλούν μεταξύ τους». Το παλιό λογισμικό κάνει μια χαρά τη δουλειά του — απλώς κάθεται σε ένα σιλό, αναγκάζοντας τους ανθρώπους να μεταφέρουν δεδομένα μέσα κι έξω με το χέρι.

Σ' αυτές τις περιπτώσεις, η φθηνότερη, ταχύτερη λύση δεν είναι ένα νέο σύστημα. Είναι μια γέφυρα. Τυλίγετε το παλιό λογισμικό με μια σύνδεση — μια ενσωμάτωση που του επιτρέπει να ανταλλάσσει δεδομένα με τα άλλα σας εργαλεία αυτόματα — και ένα σύγχρονο στρώμα από πάνω για τα μέρη που πραγματικά αγγίζουν οι άνθρωποι. Η παλιομοδίτικη μηχανή συνεχίζει να βουίζει από κάτω· η ομάδα παίρνει μια καθαρή επιφάνεια και ένα τέλος στην αντιγραφή-επικόλληση. Δεν είναι λαμπερό, αλλά συχνά είναι η υψηλότερη απόδοση ανά ευρώ σε όλη την προσπάθεια.

ΠροσέγγισηΡίσκοΧρόνος έως αξίαΠότε ταιριάζει
Ενσωμάτωση / σύνδεσηΧαμηλόΜέρες–εβδομάδεςΤο σύστημα δουλεύει αλλά ζει σε σιλό
Νέα διεπαφή σε παλιά μηχανήΧαμηλόΕβδομάδεςΗ λογική είναι μια χαρά, ο πόνος είναι η εμπειρία χρήσης
Αντικατάσταση κομμάτι-κομμάτιΜεσαίοΕβδομάδες ανά κομμάτιΣυγκεκριμένες μονάδες σας κρατούν πίσω
Πλήρης ανακατασκευήΥψηλόΜήνες+Το θεμέλιο όντως δεν μπορεί να σας πάει μπροστά
Τέσσερις τρόποι εκσυγχρονισμού, από το ελαφρύτερο άγγιγμα στο βαρύτερο. Ξεκινήστε από την κορυφή και κατεβείτε μόνο όταν πρέπει.

Πότε μια πλήρης επανεγγραφή είναι όντως η σωστή επιλογή

Πέρασα όλον αυτόν τον οδηγό προσπαθώντας να σας αποτρέψω από τη μεγάλη επανεγγραφή, οπότε ας είμαι δίκαιος: καμιά φορά είναι όντως η απάντηση. Υπάρχουν θεμέλια τόσο σάπια που καμία ποσότητα μπαλωμάτων, γεφυρώματος ή κομμάτι-κομμάτι αντικατάστασης δεν θα τα σώσει, και το να προσποιείστε το αντίθετο απλώς καθυστερεί το αναπόφευκτο ενώ ξοδεύετε χρήματα στηρίζοντας ένα πτώμα.

Τα ειλικρινή σημάδια είναι συγκεκριμένα. Η τεχνολογία πάνω στην οποία είναι χτισμένο το σύστημα είναι νεκρή ή πεθαίνει — καμία υποστήριξη, καμία ενημέρωση ασφαλείας, κανείς δεν έχει μείνει να μπορεί να δουλέψει πάνω της. Η επιχείρηση έχει αλλάξει τόσο θεμελιωδώς που το παλιό μοντέλο δεν αντιστοιχεί πια καθόλου στην πραγματικότητα. Ή το σύστημα είναι τόσο μπερδεμένο που ακόμη και μικρές αλλαγές χαλούν τακτικά πράγματα σε άσχετα σημεία, κάτι που συνήθως σημαίνει ότι δεν υπάρχουν καθαρές ραφές για να κάνετε εξαρχής μια μέθοδο strangler. Όταν δύο ή τρία απ' αυτά ισχύουν ταυτόχρονα, η σταδιακή δουλειά παύει να είναι η ασφαλέστερη επιλογή.

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

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

Το κομμάτι που κανείς δεν αναφέρει: αφορά κυρίως τους ανθρώπους

Να κάτι που οι τεχνικοί οδηγοί παραλείπουν. Το δυσκολότερο κομμάτι του εκσυγχρονισμού παλιού λογισμικού συνήθως δεν είναι ο κώδικας — είναι οι άνθρωποι που πέρασαν χρόνια προσαρμοζόμενοι σ' αυτό. Ξέρουν τις ιδιοτροπίες του. Έχουν μνήμη μυών για τις παράξενες συντομεύσεις του. Μια νέα μονάδα που είναι αντικειμενικά καλύτερη μπορεί να φαίνεται χειρότερη τις πρώτες δύο εβδομάδες, απλώς επειδή είναι αγνώριστη. Αν το αγνοήσετε αυτό, ακόμη και μια τέλεια τεχνική μετάβαση μπορεί να αποτύχει.

Η σταδιακή προσέγγιση βοηθά κι εδώ, σχεδόν κατά τύχη. Επειδή η αλλαγή φτάνει ένα μικρό κομμάτι τη φορά, οι άνθρωποι την απορροφούν σταδιακά αντί να τους ζητείται να ξαναμάθουν τα πάντα ένα και μόνο πρωινό Δευτέρας. Φέρτε τους καθημερινούς χρήστες νωρίς. Αφήστε τους να διαμορφώσουν την αντικατάσταση προτού ολοκληρωθεί. Η ομάδα που βοήθησε να σχεδιαστεί η νέα οθόνη τιμολόγησης θα την υπερασπιστεί· η ομάδα στην οποία απλώς της πετάχτηκε θα τη μισήσει, ακόμη κι αν είναι πανομοιότυπη. Ο εκσυγχρονισμός είναι ένα έργο διαχείρισης αλλαγής φορώντας μια στολή λογισμικού.

Έχετε ένα σύστημα που όλοι απειλούν συνεχώς να αντικαταστήσουν;

Προτού δεσμευτείτε σε μια επανεγγραφή, αξίζει μία ειλικρινής συζήτηση για το τι χρειάζεται όντως διόρθωση. Θα σας βοηθήσουμε να χαρτογραφήσετε πού ζει πραγματικά ο πόνος και να βρείτε τον ελαφρύτερο δρόμο που τον λύνει — συχνά πολύ μικρότερο απ' όσο θα περιμένατε.

Δείτε πώς προσεγγίζουμε το λογισμικό κατά παραγγελία

Συχνές ερωτήσεις

Είναι φθηνότερο να ξαναγράψετε το παλιό λογισμικό ή να το εκσυγχρονίσετε;
Ο σταδιακός εκσυγχρονισμός είναι σχεδόν πάντα φθηνότερος στην πράξη, γιατί μια πλήρης επανεγγραφή τείνει να ξεφεύγει άσχημα — πρέπει να ξαναχτίσει χρόνια ατεκμηρίωτης επιχειρηματικής λογικής προτού αποδώσει οποιαδήποτε αξία. Η αντικατάσταση του συστήματος κομμάτι-κομμάτι, ή απλώς η σύνδεση και η ανανέωσή του, σας δίνει αποτελέσματα σε εβδομάδες και σας επιτρέπει να πάψετε να ξοδεύετε τη στιγμή που ο πόνος έφυγε. Μια επανεγγραφή κερδίζει στο κόστος μόνο όταν το θεμέλιο είναι τόσο χαλασμένο που το μπάλωμά του θα κόστιζε περισσότερο από το να ξεκινήσετε από την αρχή.
Τι είναι η μέθοδος strangler με απλά λόγια;
Είναι ένας τρόπος να αντικαταστήσετε ένα παλιό σύστημα σταδιακά αντί για όλα μαζί. Χτίζετε μια σύγχρονη εκδοχή ενός επώδυνου κομματιού, δρομολογείτε μόνο εκείνη τη δουλειά σ' αυτό, και αφήνετε όλα τα υπόλοιπα να τρέχουν στο παλιό σύστημα. Όταν εκείνο το κομμάτι είναι σταθερό, προχωράτε στο επόμενο. Με τον καιρό το παλιό σύστημα κάνει όλο και λιγότερα, μέχρι να αδειάσει και να μπορείτε να το σβήσετε — χωρίς καμία τρομακτική μοναδική ημέρα λανσαρίσματος στην πορεία.
Μπορούμε να συνεχίσουμε να τρέχουμε την επιχείρηση όσο εκσυγχρονίζουμε;
Ναι — αυτό είναι όλο το νόημα του να το κάνετε σταδιακά. Επειδή αντικαθιστάτε ένα μικρό κομμάτι τη φορά και κρατάτε το παλιό σύστημα ζωντανό από κάτω, οι κανονικές λειτουργίες συνεχίζονται καθ' όλη τη διάρκεια. Κάθε αλλαγή είναι αρκετά μικρή ώστε να δοκιμαστεί σε πραγματική χρήση και, αν χρειαστεί, να αναιρεθεί. Δεν φτάνετε ποτέ σε μια στιγμή όπου η επιχείρηση εξαρτάται από μια αδοκίμαστη, όλα-ή-τίποτα μετάβαση.
Πώς ξέρουμε ποια μέρη να εκσυγχρονίσουμε πρώτα;
Μιλήστε με τους ανθρώπους που χρησιμοποιούν το σύστημα κάθε μέρα και ψάξτε τις παρακάμψεις τους — τα ιδιωτικά υπολογιστικά φύλλα, τη χειροκίνητη αντιγραφή-επικόλληση, το «αυτό το κομμάτι το κάνω με το χέρι». Κάθε παράκαμψη σηματοδοτεί ένα πραγματικό, δαπανηρό κενό. Ταξινομήστε τις κατά το πόσο συχνά δαγκώνουν, και η κορυφή αυτής της λίστας είναι από εκεί που ξεκινάτε. Συνήθως είναι μια χούφτα συγκεκριμένα σημεία, όχι όλο το σύστημα.
Πότε είναι μια πλήρης επανεγγραφή όντως η σωστή επιλογή;
Όταν η υποκείμενη τεχνολογία είναι νεκρή ή χωρίς υποστήριξη, όταν η επιχείρηση έχει αλλάξει τόσο πολύ που το παλιό μοντέλο δεν ταιριάζει πια καθόλου, ή όταν το σύστημα είναι τόσο μπερδεμένο που ακόμη και μικρές αλλαγές χαλούν άσχετα πράγματα — που σημαίνει επίσης ότι δεν υπάρχουν καθαρές ραφές για να το αντικαταστήσετε κομμάτι-κομμάτι. Όταν δύο ή τρία απ' αυτά ισχύουν μαζί, μια προσεκτική, σταδιακή ανακατασκευή γίνεται η ασφαλέστερη επιλογή. Ακόμη και τότε, κρατάτε το παλιό σύστημα σε λειτουργία και μετακινείτε χρήστες σε μικρές ομάδες, ποτέ με ένα μεγάλο άλμα.
Have a nice day
Have a nice day
Συντακτική ομάδα

Η Have a nice day είναι ένα studio λογισμικού που βοηθά μικρές και μεσαίες επιχειρήσεις να ψηφιοποιηθούν — αυτοματισμός, τεχνητή νοημοσύνη και λογισμικό κατά παραγγελία που λειτουργεί στην καθημερινή λειτουργία, όχι μόνο σε διαφάνειες.

Σχετικές υπηρεσίες