|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ανάλυση απαιτήσεων λογισμικού: Αναγκαία και αποτελεσματική
"Η ανάλυση απαιτήσεων λογισμικού (software requirements analysis) συνιστά πρακτική διεξοδικού καταρτισμού, επεξεργασίας και εξέτασης στόχων, πριν, κατά τη διάρκεια και μετά την υλοποίηση κάθε έργου πληροφορικής (π.χ. η εγκατάσταση συστήματος ERP, η δημιουργία ηλεκτρονικού καταστήματος κ.ά.). Αν και όχι ιδιαίτερα γνωστή στην Ελλάδα, αξίζει της προσοχής μας, καθώς συνεισφέρει σημαντικά στην επιτυχημένη ολοκλήρωση έργων."
Ορίζοντας την ανάλυση απαιτήσεων Είναι καλύτερο να προλαμβάνεις, παρά να θεραπεύεις. Είναι αποτελεσματικότερο να φτιάχνεις κάτι προσεκτικά σχεδιασμένο από την αρχή, παρά να το διορθώνεις εκ των υστέρων. Καλύτερα να προηγείσαι παρά να έπεσαι, να προλαμβάνεις και να προβλέπεις παρά να περιμένεις την έκβαση και κατόπιν να δράσεις. Καλύτερα να έχεις κατασταλαγμένες επιθυμίες και να ξέρεις τι ζητάς. Αυτές είναι εν πολλοίς οι βασικές αρχές που διέπουν την ανάλυση απαιτήσεων (requirements analysis), όσον αφορά στην πληροφορική και τα διάφορα έργα που περιλαμβάνει.
Η ανάλυση απαιτήσεων είναι μια διαδικασία κατάρτισης μιας λίστας, όπου αναφέρονται οι προδιαγραφές που πρέπει να πληροί το προϊόν (η λύση) πληροφορικής που πρόκειται να δημιουργηθεί ή να εγκατασταθεί. Το προϊόν μπορεί να είναι μια νέα εφαρμογή που αναπτύσσεται κατά παραγγελία, η εγκατάσταση ενός έτοιμου προγράμματος, η δημιουργία ενός δικτυακού τόπου, ηλεκτρονικού καταστήματοςκ.λπ. Οι προδιαγραφές που προσδιορίζονται μπορεί να είναι τεχνολογικές, επιχειρηματικές, λειτουργικές, να σχετίζονται με τη μορφή, το κόστος, τη διάρκεια, το χρόνο απόσβεσης κ.ά.
Η λίστα που καταρτίζεται χρησιμεύει τόσο σε αυτούς που θα εγκαταστήσουν ή θα αναπτύξουν τη λύση λογισμικού όσο και σ' εκείνους που θα τη χρησιμοποιήσουν (χρήστες, πελάτες) και εφαρμόζεται σε μεγάλα αλλά και μικρά έργα πληροφορικής. Η μόνη διάφορα τους είναι ότι στα μικρά έργα το ανθρώπινο δυναμικό που απασχολείται είναι αισθητά μειωμένο, έναντι των εργαζομένων που λαμβάνουν μέρος στην ανάλυση απαιτήσεων μεγάλων έργων. Πέραν αυτών, η ανάλυση απαιτήσεων είναι μία συνεργατική διαδικασία όπου διαφορετικά άτομα με διαφορετικές αφετηρίες συναντιούνται, αλληλεπιδρούν, διαφωνούν και συμφωνούν γύρω από την ίδια αντικειμενική σφαίρα: το έργο. Ο πελάτης ζητά κάτι στο οποίο ο προγραμματιστής αναλαμβάνει να δώσει μορφή. Ο αναλυτής βοηθά τον προγραμματιστή να δημιουργήσει κάτι εύκολο και φιλικό στη χρήση. Ο project manager εποπτεύει το έργο εξ αρχής μέχρι την ολοκλήρωσή του κ.ο.κ.
Συχνά προγραμματιστές, αναλυτές, πελάτες και δυνητικοί χρήστες υποτιμούν την ανάλυση απαιτήσεων και δεν της αποδίδουν τη δέουσα σημασία. Αυτό έχει ως αποτέλεσμα τη δημιουργία έργων που χρήζουν βελτιώσεων ή αλλαγών, γιατί δεν ανταποκρίνονται στους στόχους και τις επιδιώξεις που είχαν αρχικά τεθεί. Ωστόσο, οι βελτιώσεις και αλλαγές στα έργα πληροφορικής είναι ιδιαίτερα δαπανηρές, δύσκολες και χρονοβόρες, ενώ η πραγματοποίησή τους μπορεί να απαιτήσει εκ θεμελίων αναδημιουργία. Για το λόγο αυτό, η ανάλυση απαιτήσεων θεωρείται εκ των ων ουκ άνευ συστατικό για επιτυχημένη υλοποίηση εφαρμογών. Στις ενότητες που ακολουθούν θα εμβαθύνουμε στα οφέλη και θα ασχοληθούμε αναλυτικά με τομείς όπου η ανάλυση απαιτήσεων βρίσκει εφαρμογή.
Τα οφέλη Οι σημαντικότερες ωφέλειες που απορρέουν από τη χρήση της ανάλυσης των απαιτήσεων είναι οργανωτικές, λειτουργικές και οικονομικές, με αυτήν ακριβώς τη σειρά, όχι βάσει σπουδαιότητας αλλά χρονικής ακολουθίας. Η ανάλυση απαιτήσεων συντελεί στην καλή οργάνωση και εκτέλεση του έργου, που με τη σειρά τους εξασφαλίζουν τη λειτουργικότητά του για όλες τις εμπλεκόμενες πλευρές. Στο τέλος, τα οφέλη αυτά έχουν άμεσο αντίκρισμα στη μείωση του κόστους, τόσο για την επιχείρηση που υλοποιεί το έργο όσο και για τον πελάτη που θα το χρησιμοποιήσει.
Η ανάλυση απαιτήσεων, για οποιοδήποτε έργο πληροφορικής, προσφέρει στο σύνολο των εμπλεκομένων (προγραμματιστών, αναλυτών, διευθυντών, πελατών, χρηστών) σημαντική ευκαιρία για καλύτερη οργάνωση, προγραμματισμό και διαχείριση του έργου. Τους φέρνει σε επαφή με την πραγματική φύση του έργου, φωτίζει αθέατες πλευρές και αδυναμίες, εντοπίζει τις ελλείψεις, προφυλάσσει και προειδοποιεί. Αναλυτικότερα, ο διευθυντής του έργου γνωρίζει ποια πρέπει να είναι η τελική του μορφή και κατευθύνει τους υφισταμένους του βάσει συγκεκριμένου σχεδίου. Οι προγραμματιστές και οι αναλυτές γνωρίζουν εκ των προτέρων τι ακριβώς πρέπει να δημιουργήσουν, τι και υπό ποιες συνθήκες να δοκιμάσουν (τεστάρουν). Οι πελάτες είναι προετοιμασμένοι για το τι θα παραλάβουν, γνωρίζουν δηλ. τι να περιμένουν. Εν ολίγοις, η εξέλιξη του έργου είναι -σε μεγάλο βαθμό- προβλέψιμη και οι δυσάρεστες εκπλήξεις περιορίζονται αισθητά.
Επιπλέον, η ανάλυση απαιτήσεων συμπιέζει σημαντικά το κόστος υλοποίησης του έργου, καθώς εξασφαλίζει ότι η ολοκλήρωσή του θα γίνει βάσει χρονοδιαγράμματος, πλαισίου και συγκεκριμένων προδιαγραφών. Αυτό έχει μεγάλη αξία, γιατί -όχι σπάνια- σε έργα για τα οποία δεν έχει προηγηθεί ανάλυση απαιτήσεων παρατηρούνται φαινόμενα όπως:
α) Το πρόγραμμα αποδεικνύεται ότι έχει αρκετά ελαττώματα (bugs), τα οποία πρέπει να διορθωθούν με "μπαλώματα" και τη συγγραφή καινούργιου κώδικα. β) Η εφαρμογή που δημιουργήθηκε αποκλειστικά για ένα συγκεκριμένο πελάτη αποδεικνύεται ελλιπής στην πράξη και χρήζει βελτίωσης. γ) Ο πελάτης συνειδητοποίησε -την τελευταία στιγμή- ότι θέλει το ηλεκτρονικό του κατάστημα να περιέχει και "κάτι ακόμα".
Ασφαλώς, σε αυτά τα τρία παραδείγματα θα μπορούσαν να προστεθούν και πολλά άλλα. Αυτό στο οποίο οφείλουμε να εστιάσουμε είναι ότι η προσθήκη, η βελτίωση, η "επισκευή" σε ένα έργο πληροφορικής αποτελούν ιδιαίτερα κοστοβόρα και χρονοβόρα υπόθεση. Δεν είναι λίγες οι φορές που η προσθήκη κάποιας νέας εφαρμογής απαιτεί την εκ θεμελίων αναδόμηση και ανασυγκρότηση του προγράμματος, γεγονός που ισοδυναμεί με πολλές εργατοώρες και ασφαλώς κόστος. Για το ζήτημα αυτό διάφορες έρευνες έχουν επισημάνει ότι κάθε εργατοώρα που επενδύεται στην ανάλυση απαιτήσεων εξοικονομεί δεκάδες εργατοώρες για μετέπειτα εργασίες βελτίωσης, αναπροσαρμογής κ.λπ. Ένα ρητό που προφέρεται συχνά από τα χείλη των προγραμματιστών είναι ότι καλύτερα να ξαναγράψεις κώδικα δέκα φορές, παρά να διορθώσεις μία…
Ανάλυση απαιτήσεων ηλεκτρονικού καταστήματος Η ανάλυση απαιτήσεων θα πρέπει να προηγείται της δημιουργίας δικτυακού τόπου, ειδικά όταν αυτός προορίζεται για την άσκηση ηλεκτρονικού εμπορίου. Ο ορθολογικός σχεδιασμός, η μακρόπνοη στρατηγική και η ορθή εκτίμηση των προοπτικών θα συμβάλουν στη δημιουργία ενός site που θα έχει όλα τα εχέγγυα για να θεωρείται επιτυχημένο.
Ας δούμε αναλυτικά πώς μπορεί να διαρθρωθεί η ανάλυση των απαιτήσεων για έναηλεκτρονικό κατάστημα: το καλύτερο γι' αυτόν το σκοπό είναι να συνταχθεί μία λίστα με ερωτήματα, στα οποία θα πρέπει να δοθούν απαντήσεις.
Στην αρχή θα πρέπει να τεθούν προς απάντηση ορισμένα επιχειρηματικά ζητήματα. Μεταξύ άλλων, ποιο ή ποια είναι τα προϊόντα που θέλουμε να εμπορευόμαστε, αν υπάρχει ανταγωνισμός στα συγκεκριμένα προϊόντα και τι επιπέδου, ποιο είναι το στοχευμένο κοινό (target group) στο οποίο θα απευθυνθούμε, τι ποσό μπορούμε να επενδύσουμε για την ανάπτυξη του καταστήματος, τι μεθόδους διανομής και πληρωμών θα ακολουθήσουμε κ.ο.κ. Επιπλέον, ποιος είναι ο μέγιστος αριθμός πελατών που θα μπορούν να εξυπηρετούνται ηλεκτρονικά ταυτόχρονα; Τι μέτρα θα λάβουμε για τηνασφάλεια των συναλλαγών και των προσωπικών δεδομένων;
Στη συνέχεια θα πρέπει να τεθούν τεχνικά ζητήματα, σε συνεννόηση με κάποιον τεχνικό. Για παράδειγμα: θα επιλεγεί κάποια προκατασκευασμένη πλατφόρμα ή τοηλεκτρονικό κατάστημα θα αναπτυχθεί εκ του μηδενός; Αν επιλεγεί προκατασκευασμένη πλατφόρμα θα προτιμηθεί κλειστού ή ανοιχτού κώδικα και γιατί; Πού θα φιλοξενηθεί (hosting) το ηλεκτρονικό κατάστημα; Θα ενοικιάσουμε χώρο σε δικό μας διακομιστή ή σε κάποιον πάροχο; Ποιες ακριβώς λειτουργίες θέλουμε να επιτελεί και τι δυνατότητες θέλουμε να προσφέρει στους χρήστες; Ποια επιθυμούμε να είναι η δομή του; Σε ποιους φυλλομετρητές (browsers) θέλετε να είναι καλύτερα προσβάσιμο; Θέλετε να συνεργάζεται με κάποια βάση δεδομένων και με ποια; Θα προτιμήσετε κάποιο εισαγωγικό με animation (κίνηση εικόνας); Πώς επιθυμείτε να γίνεται η διαχείριση του περιεχομένου και η συντήρηση του site; Πόσο γρήγορα θα ανοίγουν οι σελίδες που καλούνται μέσω αργών συνδέσεων;
Τα παραπάνω δεν αποτελούν παρά ελάχιστα από τα ερωτήματα που θα μπορούσαν να τεθούν. Ωστόσο, οι απαντήσεις που θα δοθούν αρκούν για τη χάραξη της αρχικής στρατηγικής. Έτσι στα ερωτήματα που τέθηκαν θα μπορούσαμε να απαντήσουμε τα εξής ενδεικτικά: "Επιθυμούμε να δημιουργήσουμε ένα ηλεκτρονικό κατάστημα για να εμπορευόμαστε 40 περίπου βιολογικά προϊόντα. Ο ανταγωνισμός στο συγκεκριμένο είδος είναι μικρός και το κοινό στο οποίο θέλουμε να απευθυνθούμε απαρτίζεται από χρήστες με οικονομική άνεση και οικολογική ευαισθησία. Μας ενδιαφέρει να διανέμουμε τα προϊόντα μας σε όλη την Ελλάδα και θέλουμε ο πελάτης να μπορεί να πληρώνει είτε με αντικαταβολή είτε με πιστωτική κάρτα. Για την ανάπτυξη του καταστήματος μπορούμε να διαθέσουμε ως και 15 χιλιάδες ευρώ και θέλουμε το κατάστημα να μπορεί να υποστηρίξει την ταυτόχρονη παραγγελία έως και 500 χρηστών.
Ακόμα, να έχει εγκατεστημένο το πλέον προηγμένο σύστημα για την ταυτοποίηση των χρηστών και την ασφάλεια των δεδομένων. Δεν μας απασχολεί αν θα επιλεγεί μία έτοιμη πλατφόρμα ή θα κατασκευαστεί κάποια εξ αρχής. Αυτό που μας ενδιαφέρει είναι η διαχείριση του περιεχομένου να γίνεται εύκολα, να μην απαιτείται συντήρηση και να συνεργάζεται με μία βάση δεδομένων Oracle που διαθέτουμε. Επίσης, θέλουμε οι σελίδες να ανοίγουν γρήγορα ακόμα και στους επισκέπτες που δεν διαθέτουνγρήγορες συνδέσεις και να υποστηρίζει βέλτιστα τους browsers που διαθέτουν οι περισσότεροι χρήστες...". Κατόπιν αυτών, η εταιρία που πρόκειται να αναλάβει την ανάπτυξη του έργου έχει ήδη λάβει τα πρώτα βασικά στοιχεία. Βεβαίως, η ανάλυση απαιτήσεων δεν σταματά εδώ. Γίνεται όμως έτσι μια πολύ καλή αρχή που θέτει γερά θεμέλια για την αποτελεσματικότερη δόμηση του έργου.
Ανάλυση απαιτήσεων λογισμικού Η ανάλυση απαιτήσεων λογισμικού ταξινομείται βασικά σε δύο ευδιάκριτες κατηγορίες: α) ανάλυση απαιτήσεων για την ανάπτυξη νέας εφαρμογής, και β) ανάλυση απαιτήσεων για κάποιο ήδη υπάρχον πακέτο που πρόκειται να παραμετροποιηθεί για μια επιχείρηση (λ.χ. ERP, CRM κ.λπ.).
Στην πρώτη περίπτωση, η ανάλυση απαιτήσεων συνίσταται στην κατάρτιση των προδιαγραφών (λειτουργικών, τεχνολογικών, κ.ά.) που πρέπει να έχει η καινούργια εφαρμογή. Σε αντίθεση με υπολογίσιμη μερίδα προγραμματιστών που γράφουν κώδικα βάσει ενός πολύ γενικού οδηγού (ή ακόμα και απουσία αυτού), η ανάλυση απαιτήσεων υπαγορεύει λεπτομερή κατάρτιση ενεργειών και στόχων. Για παράδειγμα, τι ακριβώς θα επιτελεί η εφαρμογή και ποιες δυνατότητες θα προσφέρει στο χρήστη, πόσο γρήγορα θα "τρέχει" και πόσους υπολογιστικούς πόρους θα καταναλώνει, αν θα μπορεί να αναβαθμιστεί, αν θα είναι συμβατή με συγκεκριμένα λειτουργικά προγράμματα, ποιες θα είναι οι λεγόμενες απαιτήσεις συστήματος ("system requirements"), και τελικά ποια θα είναι τα κριτήρια που θα καθορίσουν αν η εφαρμογή πληροί τους στόχους που τέθηκαν εξ αρχής. Στις προδιαγραφές αυτές εντάσσονται και θέματα κανονιστικά. Ένα τέτοιο πρόσφατο και σχετικό παράδειγμα είναι το ύψος του ΦΠΑ στις εμπορολογιστικές εφαρμογές. Πριν από λίγο καιρό, ο φόρος αυτός αυξήθηκε κατά μία μονάδα (από 18% σε 19%). Τα προγράμματα εμπορικής και λογιστικής διαχείρισης που είχαν προβλέψει ότι ο ΦΠΑ μπορεί να αυξομειώνεται, αντιμετώπισαν εύκολα τη νέα εξέλιξη. Οι λοιπές εφαρμογές εμφάνισαν προβλήματα. Το συγκεκριμένο παράδειγμα ισχύει και για κάθε είδους κανονιστικές ρυθμίσεις που ενσωματώνονται σε κάποιο πρόγραμμα.
Στη δεύτερη περίπτωση (παραμετροποίηση υπάρχουσας εφαρμογής), η ανάλυση απαιτήσεων σχετίζεται με τον καθορισμό των προδιαγραφών που πρέπει να τηρεί το πρόγραμμα που θα εγκατασταθεί. Στον καθορισμό αυτό εξέχουσα θέση κατέχουν τα εξής: • Οι δυνατότητες του προγράμματος, λεπτομερώς • Ο χρόνος αποπεράτωσης (υλοποίησης) του έργου • Η σειρά με την οποία θα γίνει η ολοκλήρωση • Ο χρόνος που θα απαιτηθεί για την εκπαίδευση των χρηστών • Η συμβατότητα και η επικοινωνία του με άλλες εφαρμογές λογισμικού αλλά και συσκευές που ήδη υπάρχουν στην επιχείρηση • Οι δυνατότητες αναβάθμισης • Το συνολικό κόστος του έργου, έστω και κατά προσέγγιση • Το κόστος για ετήσια συντήρηση • O χρόνος επενδυτικής απόσβεσης
Αντί συμπεράσματος Δυστυχώς, δεν είναι λίγες οι φορές που πολυδάπανες επενδύσεις σε λογισμικό απέτυχαν γιατί δεν είχε γίνει εκ των προτέρων σωστός σχεδιασμός. Ατυχώς, αρκετοί επιχειρηματίες αδιαφορούν ή δίνουν μειωμένη βαρύτητα στον προγραμματισμό, και λαμβάνουν ως "αντίτιμο" την εμπειρία μιας αποτυχίας. Ευτυχώς, τα τελευταία χρόνια οι ίδιες οι εταιρίες λογισμικού προτείνουν "φορτικά" την ανάλυση απαιτήσεων ή την παρέχουν δωρεάν, προκειμένου να εξασφαλίσουν την τελική επιτυχία του έργου και ασφαλώς την υστεροφημία τους. Το μοντέλο αυτό είναι το ενδεδειγμένο, δημιουργεί όμως και ορισμένες αντιφάσεις. Ναι μεν τα στελέχη των εταιριών που θα προμηθεύσουν το λογισμικό γνωρίζουν άριστα και το προϊόν, τις συνθήκες και διαθέτουν εμπειρία, όμως εύλογα προωθούν τα συμφέροντα της εταιρίας τους. Για το λόγο αυτό, το βέλτιστο είναι η συνεργασία του ανθρώπινου δυναμικού και από τις δύο πλευρές.
|
|
|
|
|
|
|
|
|
|
|
|