Το σχέδιο εκσυγχρονισμού είναι έτοιμο, ο προϋπολογισμός έχει λάβει προκαταρκτική έγκριση. Ο ανάδοχος κάνει την πρώτη ερώτηση: «Πού είναι η τεκμηρίωση του συστήματος;». Αποδεικνύεται ότι υπάρχει ένα wiki που ενημερώθηκε τελευταία φορά πριν από πέντε χρόνια, μερικά διαγράμματα «κάπου στον δικτυακό δίσκο» και κώδικας που κάνει ο ίδιος τη δουλειά της τεκμηρίωσης. Η προσφορά ανεβαίνει κατά ένα τρίτο. Γιατί ο ανάδοχος δεν κοστολογεί τη δουλειά, αλλά την αβεβαιότητα.
Αυτό το άρθρο περιγράφει μια πρακτική που βγάζει αυτή την αβεβαιότητα από το τραπέζι: πριν αγγίξει κανείς τον κώδικα μιας παλιάς εφαρμογής, ανακτάται η γνώση γι' αυτήν. Μέχρι πρόσφατα, ένα τέτοιο στάδιο σήμαινε εβδομάδες δουλειάς ενός αναλυτή και λίγοι το αποφάσιζαν. Σήμερα η AI εκτελεί το μεγαλύτερο μέρος αυτής της ανάλυσης σε εργάσιμες ημέρες. Και αυτό αλλάζει τη σειρά ολόκληρου του έργου.
Πρώτα ο χάρτης, μετά ο κώδικας
Ο εκσυγχρονισμός ενός συστήματος χωρίς επικαιροποιημένη τεκμηρίωση θυμίζει ανακαίνιση κτιρίου χωρίς σχέδια των εγκαταστάσεων. Γίνεται, αλλά κάθε γκρέμισμα τοίχου είναι λαχείο: μπορεί πίσω του να μην υπάρχει τίποτα, μπορεί όμως και ένας σωλήνας από τον οποίο εξαρτάται ο μισός όροφος. Στις εφαρμογές, αυτός ο σωλήνας είναι συχνά μια διασύνδεση με την αποθήκη δεδομένων που τη θυμόταν μόνο ο συγγραφέας του κώδικα, ή μια νυχτερινή εξαγωγή που τη χρησιμοποιεί αθόρυβα το λογιστήριο.
Γι' αυτό η λογική σειρά είναι αντίθετη από τη διαισθητική. Δεν ξεκινάς γράφοντας νέο κώδικα, ούτε καν από την κοστολόγηση. Ξεκινάς από τον χάρτη.
Τι εξάγει η AI από τον κώδικα, τη βάση και τα logs
Τα σύγχρονα εργαλεία ανάλυσης μπορούν να διαβάσουν τρεις πηγές αλήθειας για το σύστημα: τον πηγαίο κώδικα, τη δομή της βάσης δεδομένων και τα logs από την παραγωγική λειτουργία. Από τη διασταύρωσή τους προκύπτει ένας χάρτης του συστήματος που καλύπτει τέσσερα επίπεδα.
Το πρώτο είναι τα modules: από τι αποτελείται το σύστημα και για τι είναι υπεύθυνο κάθε τμήμα, περιγραμμένα σε γλώσσα κατανοητή και για ανθρώπους εκτός IT. Το δεύτερο είναι οι ροές δεδομένων: από πού μπαίνουν τα δεδομένα, τι τους συμβαίνει στη διαδρομή, πού καταλήγουν. Το τρίτο είναι οι διασυνδέσεις, δηλαδή όλα τα σημεία όπου η εφαρμογή συνομιλεί με άλλα συστήματα: λογιστήριο, αποθήκη, ηλεκτρονικό κατάστημα, συνεργάτες. Αυτές σπάνε συχνότερα κατά τις αλλαγές.
Το τέταρτο επίπεδο είναι το λιγότερο προφανές: ο νεκρός κώδικας. Η ανάλυση των logs δείχνει ποιες συναρτήσεις δεν έχουν κληθεί εδώ και χρόνια και σε ποιους πίνακες δεν γράφει κανείς από το 2019. Στα παλαιότερα συστήματα, αυτό το έρμα αποτελεί συχνά σημαντικό μέρος του συνόλου. Κάθε γραμμή που δεν χρειάζεται να μεταφερθεί είναι πραγματική εξοικονόμηση στο έργο.
Τι αλλάζει ο χάρτης στην απόφαση «να ξαναγραφτεί ή να εκσυγχρονιστεί»
Για την ίδια την απόφαση γράψαμε ξεχωριστά, στο άρθρο για τα τέσσερα κριτήρια: το πλαίσιο λήψης απόφασης. Ο χάρτης του συστήματος δίνει σε αυτά τα κριτήρια σκληρά δεδομένα. Χωρίς αυτόν, το τεχνολογικό χρέος εκτιμάται στο περίπου και ο κίνδυνος με βάση μεμονωμένες ιστορίες. Με αυτόν, φαίνεται ξεκάθαρα: ποια modules φέρουν επιχειρηματική αξία, ποια είναι νεκρά, πού βρίσκονται οι διασυνδέσεις που αυξάνουν τον κίνδυνο κάθε αλλαγής.
Τα αποτελέσματα εκπλήσσουν συχνά και προς τις δύο κατευθύνσεις. Άλλοτε ένα σύστημα που «πρέπει να ξαναγραφτεί από το μηδέν» αποδεικνύεται κατά τα τρία τέταρτα υγιές και αρκεί να αντικατασταθούν δύο modules. Άλλοτε το αντίθετο: η εφαρμογή δείχνει αθώα, αλλά ο χάρτης αποκαλύπτει καμιά δεκαπενταριά μη τεκμηριωμένες συνδέσεις που κάνουν τον μερικό εκσυγχρονισμό ακριβότερο από το πλήρες ξαναγράψιμο. Και στις δύο περιπτώσεις, η απόφαση λαμβάνεται με δεδομένα, όχι με συναισθήματα. Και ο ανάδοχος που παίρνει στα χέρια του χάρτη αντί για γρίφο κοστολογεί τη δουλειά αντί για τον κίνδυνο.
Κατά τη γνώμη μας, η ανασύσταση του χάρτη πρέπει να αποτελεί ξεχωριστό, πρώτο στάδιο της σύμβασης εκσυγχρονισμού, με δική του παραλαβή. Ακόμη κι αν μετά από αυτό το στάδιο αποφασίσεις ότι τον εκσυγχρονισμό θα τον αναλάβει κάποιος άλλος ή δεν θα τον κάνεις καθόλου, η τεκμηρίωση μένει στην εταιρεία και συνεχίζει να δουλεύει.
Πώς να επαληθεύσεις όσα δημιούργησε η AI
Η αυτόματα παραγόμενη τεκμηρίωση δεν είναι χρησμός. Πρέπει να ελεγχθεί. Η πιο αποτελεσματική μέθοδος είναι απλή: ανασκόπηση με τον άνθρωπο που γνωρίζει το σύστημα καλύτερα από όλους, συχνά τον μοναδικό τέτοιο στην εταιρεία. Η διαφορά σε σχέση με την κλασική προσέγγιση βρίσκεται στον ρόλο αυτού του ανθρώπου. Δεν του ζητάς να καταγράψει τη γνώση του, κάτι που κανείς δεν αγαπά και που τραβάει μήνες. Του ζητάς να αξιολογήσει μια έτοιμη περιγραφή, και το να υποδείξει «εδώ ισχύει, εδώ όχι» πηγαίνει πολλαπλάσια πιο γρήγορα από το γράψιμο από το μηδέν.
Καλή πρακτική είναι να περάσεις μερικές από τις σημαντικότερες διαδικασίες από την αρχή ως το τέλος: παραγγελία, τιμολόγιο, παράπονο πελάτη. Αν ο χάρτης περιγράφει σωστά τις κρίσιμες ροές και τις δειγματοληπτικά ελεγμένες λεπτομέρειες, μπορείς να τον εμπιστευτείς και στους υπόλοιπους τομείς. Αυτό γίνεται μέσα σε μία ημέρα.
Τι δεν μπορεί να ανασυστήσει η AI
Εδώ χρειάζεται μια ειλικρινής επιφύλαξη: ο κώδικας λέει τι κάνει το σύστημα, αλλά δεν λέει γιατί. Μια περίεργη εξαίρεση στον υπολογισμό μιας έκπτωσης μπορεί να είναι σφάλμα, μπορεί όμως και εμπορική συμφωνία του 2016 που εξακολουθεί να ισχύει για έναν μεγάλο πελάτη. Αυτό δεν το ξεκαθαρίζει καμία ανάλυση κώδικα. Τις επιχειρηματικές προθέσεις μιας δεκαετίας πριν τις ανασυνθέτεις με συνεντεύξεις: σύντομες συζητήσεις με τους ανθρώπους των πωλήσεων, του λογιστηρίου και των λειτουργιών, με τον χάρτη πλέον στο χέρι. Ο χάρτης υποδεικνύει τι να ρωτήσεις, αλλά τις απαντήσεις τις έχει ο άνθρωπος.
Ξεχωριστό θέμα είναι και το περιβάλλον της εφαρμογής: servers, δίκτυο, αντίγραφα ασφαλείας. Για την τεκμηρίωση αυτού του επιπέδου γράψαμε στο άρθρο για τον έλεγχο της τεκμηρίωσης υποδομής.
Στην ESKOM AI εκτελούμε το στάδιο της χαρτογράφησης με ομάδα εξειδικευμένων AI agents υπό την επίβλεψη έμπειρων μηχανικών: η ανάλυση ενός τυπικού εταιρικού συστήματος διαρκεί εργάσιμες ημέρες και το αποτέλεσμα είναι τεκμηρίωση κατανοητή τόσο για τη διοίκηση όσο και για την τεχνική ομάδα. Αν μετά από αυτήν ληφθεί απόφαση εκσυγχρονισμού, οι επόμενες εργασίες εξελίσσονται σε αυτοματοποιημένη διαδικασία ανάπτυξης λογισμικού με πλήρες εύρος δοκιμών — μοναδιαίων, ενοποίησης, E2E, διεπαφής, ασφάλειας και επιδόσεων.
Από πού να ξεκινήσεις στη δική σου εταιρεία
Διάλεξε ένα σύστημα: εκείνο του οποίου τον εκσυγχρονισμό αναβάλλεις εδώ και περισσότερο καιρό ή εκείνο που φοβάσαι περισσότερο να αγγίξεις. Ανάθεσε την ανασύσταση του χάρτη του ως αυτόνομο, μικρό στάδιο, πριν ζητήσεις από οποιονδήποτε προσφορά για την ανακατασκευή. Σε μια δωρεάν συμβουλευτική συνάντηση θα σου προτείνουμε πώς να σχεδιάσεις αυτό το στάδιο και τι να περιμένεις από αυτό.
Κλείσε δωρεάν συμβουλευτική μέσω της φόρμας επικοινωνίας →