The flood model – project management α λα ελληνικά

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

Ο καταρράκτης (waterfall model)

Επειδή λοιπόν πολλοί από τους αναγνώστες δεν είναι εξοικειωμένοι, θα ξεκινήσουμε περιγράφοντας το πιο διαδεδομένο μοντέλο ανάπτυξης λογισμικού: τον περίφημο καταρράκτη (waterfall model).

Το μοντέλο του Καταρράκτη

Το μοντέλο του Καταρράκτη (κλικ για μεγέθυνση)

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

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

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

Η πλημμύρα (Flood model)

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

Το μοντέλο της πλημμύρας

Το μοντέλο της πλημμύρας (κλικ για μεγέθυνση)

Αναλυτικότερα:

Ανάγκες:

Όπως και στον καταρράκτη, τα πάντα ξεκινάνε από τις ανάγκες του πελάτη, οι οποίες φαίνονται συνήθως να είναι μία ή περισσότερες από τις εξής:

  • Τρέχει κάποιο ευρωπαϊκό πρόγραμμα για πληροφορική στις επιχειρήσεις και πρέπει να βρεθεί τρόπος να πάρει την επιδότηση η επιχείρηση
  • Αν πρόκειται για ΔΕΚΟ, κάποιος θέλει να πάρει προαγωγή και να δείξει πως κάνει έργο
  • Το πρότεινε ένας φίλος του μπατζανάκη ο οποίος “ξέρει”
  • Το έχει κάνει και το διπλανό – ανταγωνιστικό – κατάστημα
Στην πραγματικότητα, η ανεύρεση των αναγκών είναι μια πιο περίπλοκη και, τολμώ να πω εσωτερική διαδικασία· ο πελάτης συνειδητοποιεί βαθμηδόν τις ανάγκες του, όσο προχωρά το έργο. Τις λεπτομέρειες της διαδικασίας αυτής δεν είναι δυνατόν να τις αναπτύξω στο παρόν άρθρο μια και θα είναι το αντικείμενο του προσεχούς βιβλίου μου “Έργα πληροφορικής: ο δρόμος του πελάτη προς την Αυτογνωσία” για το οποίο έχω κατωχυρώσει τον τίτλο.

Προδιαγραφές

Το έργο βρίσκεται ακόμα σε πρώιμη φάση. Το ίδιο κι οι προδιαγραφές. Σε αυτή τη φάση, μοιάζουν κάπως σαν “από πάνω σαν τηγάνι, από κάτω σα βαμβάκι κι από πίσω σαν ψαλίδι”. Ή, “ψηλός ψηλός καλόγερος και πίτα η κεφαλή του”. Ή, ακόμα χειρότερα, “ανοίγει ο μαλλιαρός και μπαίνει ο κορδωτός”. Κι έτσι όμως, είναι ένα κάποιο σημείο αφετηρίας.

Ένα άλλο χαρακτηριστικό των προδιαγραφών, είναι ο πλούτος τους. Αν, π.χ. ο πελάτης είναι στέλεχος της ΔΕΚΟ, θα περιλαμβάνουν ο,τιδήποτε αυτός νομίζει πως μπορεί να θέλει να έχει ως πληροφόρηση ο οργανισμός διευθυντής του. Αν ο πελάτης είναι ο επιχειρηματίας που θέλει να φάει αξιοποιήσει την επιδότηση, είναι κάπως διαφορετικό: ας πούμε πως η επιδότηση είναι για ξυριστικές μηχανές. Αυτό όμως που πραγματικά θέλει να πάρει ο επιχειρηματίας, είναι μια εσπρεσσιέρα. Οι προδιαγραφές λοιπόν, θα περιγράφουν μια ξυριστική μηχανή (2 σελίδες copy-paste από το κείμενο της προκήρυξης της επιδότησης) η οποία, παρεμπιπτόντως, φτιάχνει κι εσπρέσσο (30 σελίδες).

Ανάλυση

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

  • Το έργο έχει πολύ “σφιχτές” προθεσμίες
  • Η προσφορά ήταν εξωφρενικά χαμηλή και γι’ αυτό πρέπει να τελειώνουμε όσο πιο γρήγορα γίνεται
  • Η εταιρεία δε διαθέτει αναλυτές
  • Ο project manager δεν έχει χρόνο διότι ασχολείται με άλλα έργα
  • Όλα τα παραπάνω μαζί (το πιο σύνηθες)
… η φάση αυτή παραλείπεται για να περάσουμε στα πιο ενδιαφέροντα πράγματα

Ανάπτυξη – Φάση πρώτη

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

Ανάπτυξη – Φάση δεύτερη

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

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

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

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

Φάση ανάπτυξης – τρίτη φάση

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

  • Ο project manager, μπαίνει δυναμικά και προσπαθεί να βάλει μια τάξη, κάνοντας για πρώτη φορά μια πιο πλήρη ανάλυση προσπαθώντας να βρει το τι έπρεπε να έχει γίνει το τι πράγματι έχει γίνει (κι έτσι, δε βρίσκει το χρόνο να κάνει ανάλυση στα νέα έργα που ξεκινάνε)
  • Το τι έχει γίνει, είναι τελείως αδύνατο να βρεθεί. Οι μισοί από τους προγραμματιστές που είχαν ξεκινήσει το έργο έχουν φύγει από την εταιρεία. Οι άλλοι μισοί, δεν μπορούν να καταλάβουν τον κώδικα των προηγούμενων. Οι αλλαγές που έχει ζητήσει ο πελάτης, δεν είναι πουθενά καταγεγραμμένες, αφού όλες οι συνεννοήσεις είχαν γίνει τηλεφωνικά.
  • Εν τω μεταξύ ο πελάτης συνεχίζει να αλλάζει τις προδιαγραφές.
Μοιάζει κάπως έτσι: καθώς όλοι τρέχουν πανικόβλητοι, ο πελάτης στέλνει μια “μικρή” αλλαγή: κάθε λάμπα στον πολυέλαιο (που ήταν εταζέρα, που ήταν κρεββάτι, που ήταν τραπέζι, που ήταν καρέκλα) πρέπει να ελέγχεται από δικό της, ξεχωριστό dimmer. Ψάχνοντας να ξεχωρίσουν την καλωδίωση των λαμπτήρων, ανακαλύπτουν πως τρεις λαμπτήρες είναι συνδεδεμένοι σε σειρά,  ένας λαμπτήρας τραβάει καλώδιο σε χωριστή πρίζα, ενώ άλλοι δύο είναι κολλημένοι με κολλητήρι, χωρίς ντουΐ. Βρίσκουν αυτόν που το έκανε κι αυτός θυμάται πως σε κάποιο τηλέφωνο ο πελάτης είχε πει πως οι λαμπτήρες θα είναι αποκλειστικά ηλεκτρονικοί και πως δε χρειάζεται να μπορούν να αλλάξουν, μια και, μέχρι να καούν θα έχει αλλαχτεί ο πολυέλαιος. Το θυμούνται και όλοι οι υπόλοιποι, αλλά μάταια: η απαίτηση αυτή δεν έχει καταγραφεί πουθενά.

Δοκιμές

Εντάξει, σοβαρά τώρα, τι δοκιμές μπορούν να γίνουν σε ένα σύστημα όπως το παραπάνω; Μόνο οι βασικές και υποτυπώδεις. Δουλεύει το τιμόνι; Ναι – ΟΚ. Ανάβουν τα φώτα; Ναι – ΟΚ. Δουλεύει το χειρόφρενο; Μάλλον – ΟΚ. Με ποια σειρά έχουν μπει οι ταχύτητες; Κανείς δε θυμάται, άρα ούτε κι ο πελάτης – ΟΚ.

Τις δοκιμές, βεβαίως, τις κάνει κι ο πελάτης, σε δικά του σενάρια. Κι αν κάποιο από αυτά αποτύχει, σέρνει τα εξ αμάξης. Και με την ευκαιρία, στέλνει και δυο-τρεις αλλαγές ακόμα. Θα πείτε πως φταίνε οι προγραμματιστές γιατί οι δοκιμές που έκαναν ήταν ελλειπείς. Ναι, εντάξει. Αλλά ποιος θα μπορούσε να προβλέψει πως, το σενάριο που δοκίμασε ο πελάτης ήταν να τραβήξει το χειρόφρενο, ανάβοντας ταυτόχρονα το air-condition καθώς τρέχει με 12ο χλμ. την ώρα έχοντας μέσα τρίτη; Και πως το πρόβλημα για το οποίο ωρύεται είναι πως όταν το κάνει αυτό ανοίγει απροειδοποίητα η πίσω δεξιά πόρτα;

Παράδοση

Η παράδοση αναλύεται σε δύο κυρίως πράγματα: την εγκατάσταση και την τεκμηρίωση.

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

Το ωραίο είναι η τεκμηρίωση, βλπ. συγγραφή του manual. Σε αυτό το σημείο, τα νεύρα των προγραμματιστών έχουν σπάσει προ πολλού, και κανείς δε θυμάται τι κάνει και τι έπρεπε να κάνει αυτό το πρόγραμμα. Ούτε ο πελάτης (μετά από τόσες αλλαγές που έχει ζητήσει). Αυτός είναι λοιπόν ο λόγος που τα manuals είναι γραμμένα στο μοτίβο «για να αποθηκεύσετε, πατήστε το κουμπί “αποθήκευση”».

Συντήρηση

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

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

Επίλογος

Όχι, τα παραπάνω δεν είναι υπερβολικά, τα έχω δει να συμβαίνουν.

Το παρόν ποστ, αφιερώνεται στους αφελείς που πιστεύουν πως ο ιδιωτικός τομέας κι οι νέες τεχνολογίες θα μας σώσουν.

This entry was posted in Μεμονωμένα - Ανεξάρτητα and tagged , , . Bookmark the permalink.

6 Responses to The flood model – project management α λα ελληνικά

  1. A όχι, εγώ τις πιστεύω τις νέες τεχνολογίες & την καινοτομία, όπως κάνει και το Ελληνικό δημόσιο.

    Που σαν πρόταση ιντερνετικής εφαρμογής (πολύ προχώ) είχε το εξής:

    “ΠΩΛΗΣΗ ΠΑΡΑΔΟΣΙΑΚΩΝ ΓΛΥΚΩΝ ΚΟΥΤΑΛΙΟΥ ΜΕΣΩ ΔΙΑΔΙΚΤΥΟΥ”

    • kousouratos says:

      Εντάξει, το e-commerce, από μόνο του, δεν είν’ κακό. Το κακό είναι πως είμαι σίγουρος πως, αν ψάξεις, θα βρεις πολλούς έλληνες επιχειρηματίες οι οποίοι, όταν τους εξήγησαν πως δεν μπορούν να αποστείλουν το γλυκό κουταλιού στον πελάτη ως attachment σε e-mail, έγιναν έξω φρενών από την κοροϊδία και θέλανε τα λεφτά τους της επιδότησης πίσω.

  2. Ιπποδάμεια says:

    Καλά, μιλάμε, καταπληκτικό ποστ. Γέλαγα δυνατά, μόνη μου, σαν βλαμμένη.

    • kousouratos says:

      Ευχαριστώ, καλή μου Ιπποδάμεια. Πολύ φοβάμαι όμως πως οι κομπιουτεράδες που θα το διαβάσουν, δε θα γελάσουν ακριβώς…

  3. Ιπποδάμεια says:

    Το έστειλα αμέσως σε έναν φίλο μου που δουλεύει εδώ και πολλά χρόνια στην Sun (τώρα Oracle) στην Βοστόνη. Σίγουρα θα γελάσει. Και θα κλάψει. Το ότι είναι κωμικοτραγικό δεν υπάρχει αμφιβολία. Και οι κομπιουτεράδες που δουλεύουν εν Ελλάδι κατά πάσα πιθανότητα θα χύσουν περισσότερα δάκρυα απελπισίας, παρά γέλωτα, αλλά όπως και να’ χει, το χιούμορ του κειμένου σου είναι αναμφισβήτητο! 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *

Notify me of followup comments via e-mail. You can also subscribe without commenting.