Γιώργος Καρανικόλας - Δημήτρης Τζήκας - Χάρης Ψαρράς
Αλεξάνδρειο ΤΕΙ Θεσσαλονίκης – Πληροφοριακά Συστήματα 1 – 1η Παρουσίαση
Με τον όρο λογισμικό (software) ορίζεται η συλλογή από προγράμματα υπολογιστών, διαδικασίες και οδηγίες χρήσης που εκτελούν ορισμένες εργασίες σε ένα υπολογιστικό σύστημα.
Με τον όρο “κρίση λογισμικού” αναφερόμαστε στα προβλήματα που σχετίζονται με την ανάπτυξη λογισμικού, τα οποία οδηγούν σε προϊόντα λογισμικού εκτός χρονοδιαγράμματος, εκτός προϋπολογισμού όπου δεν καλύπτουν τις ανάγκες για τις οποίες δημιουργήθηκαν, με αποτέλεσμα να είναι δύσχρηστα και να είναι δύσκολη η επέκταση τους ή η συντήρηση τους.
Στο τέλος της δεκαετία του ‘60 αρχίζει να γίνεται αντιληπτό από διάφορους ανθρώπους, πως δεν μπορούν να δημιουργήσουν το λογισμικό που χρειάζονται, με αποτέλεσμα την δημιουργία του όρου “κρίση λογισμικού” από ορισμένους συμμετέχοντες στην πρώτη διάσκεψη του NATO Software Engineering Conference το 1968 στο Garmisch της Γερμανίας.
Στις ΗΠΑ περισσότερα από 250 δισεκατομμύρια δολάρια ξοδεύονται για projects των 175,000 δολαρίων κάθε έτος.
Μέσο κόστος ανά εταιρία:
Μεγάλη εταιρία - $2,322,000
Μεσαία εταιρία - $1,331,000
Μικρή εταιρία - $434,000
Εκτμάται ότι οι Αμερικανικές εταιρείες και κυβερνητικές υπηρεσίες ξοδεύουν:
Επίσης βρέθηκε πως:
Στην επιτυχημένη πλευρά του μέσου όρου:
Standish Group είναι μια ανεξάρτητη διεθνής συμβουλευτική εταιρεία στον τομέα της πληροφορικής που ιδρύθηκε το 1985, γνωστή από τις εκθέσεις τους σχετικά με έργα υλοποίησης συστημάτων πληροφορικής στον δημόσιο και τον ιδιωτικό τομέα. Η εταιρεία επικεντρώνεται σε εφαρμογές λογισμικού κρίσιμης σημασίας, ειδικά με επίκεντρο τις αποτυχίες και τις πιθανές βελτιώσεις στα έργα πληροφορικής.
CHAOS report είναι μια μελέτη που βασίζεται στο Πρόγραμμα CHAOS report της Standish Group σχετικά με τα ποσοστά επιτυχίας των έργων πληροφορικής και τις βέλτιστες πρακτικές διαχείρισης έργων. Η μελέτη αναφέρεται συχνά ως “the de facto authority on success rates of IT projects”. Ξεκίνησε το 1994 και ανέφερε ότι μόνο ένα εκπληκτικά χαμηλό 16,2% των έργων πληροφορικής είναι επιτυχημένο. Τα CHAOS report ταξινομούν τα έργα σε:

Η συνέντευξη έγινε 25 Αυγούστου το 2006 από τον Deborah Hartmann Preuss
InfoQ: Do you think the CHAOS sample is representative of application development in general?
Οι σημαντικότεροι παράγοντες:
Με αυτόν τον όρο αναφερόμαστε στην προσπάθεια που χρειάζεται για την ανάπτυξη λογισμικού, η οποία έχει αυξηθεί λόγο της αυξημένης πολυπλοκότητας του λογισμικού.
Το Lean είναι μια ετικέτα που εφαρμόζεται σε μια νοοτροπία / φιλοσοφία με γνώμονα την ποιότητα που θα λάβει ο πελάτης. Μια διαδικασία Lean προσπαθεί συνεχώς να βελτιστοποιεί την ποιότητα που θα λάβει ο πελάτης, ελαχιστοποιώντας παράλληλα τα απόβλητα (τα οποία μπορεί να μετρηθούν με βάση το χρόνο, την ποιότητα και το κόστος). Τελικά, το “ταξίδι” Lean είναι η ανάπτυξη ενός εκπαιδευτικού οργανισμού. Παραδείγματα μεθόδων / διαδικασιών Lean περιλαμβάνουν τις Kanban και Scrumban.
Σε ένα πρόγραμμα ανάπτυξης λογισμικού Agile, η ομάδα ακολουθεί μια επαναληπτική διαδικασία που είναι επίσης ελαφριά, εξαιρετικά συνεργατική, αυτο-οργανωτική και επικεντρωμένη στην ποιότητα. Παραδείγματα μεθόδων Agile περιλαμβάνουν το Scrum, XP, και Disciplined Agile Delivery (DAD).
Σε ένα επαναληπτικό πρόγραμμα ανάπτυξης λογισμικού, η ομάδα ακολουθεί μια διαδικασία που οργανώνεται σε περιόδους που συχνά αναφέρονται ως επαναλήψεις ή χρονικά πλαίσια. Σε οποιαδήποτε δεδομένη ημέρα του έργου, τα μέλη της ομάδας μπορεί να συγκεντρώνουν απαιτήσεις, να σχεδιάζουν, να γράφουν κώδικα, να δοκιμάζουν και ούτω καθεξής.
Ένα παράδειγμα μιας επαναληπτικής διαδικασίας είναι η RUP. Τα ευκίνητα έργα, τα οποία ορίζονται ως επαναληπτικά έργα που εκτελούνται με εξαιρετικά συνεργατικό και ελαφρύ τρόπο, αντιμετωπίζονται με καθυστέρηση.
Σε ένα έργο ανάπτυξης λογισμικού ad hoc, η ομάδα δεν ακολουθεί μια καθορισμένη διαδικασία.
Σε ένα παραδοσιακό πρόγραμμα ανάπτυξης λογισμικού, η ομάδα ακολουθεί μια σταδιακή διαδικασία, όπου προσδιορίζονται πρώτα οι απαιτήσεις, τότε ορίζεται η αρχιτεκτονική / σχεδιασμός, στη συνέχεια γίνεται η κωδικοποίηση, κατόπιν δοκιμάζεται και αναπτύσσεται. Οι παραδοσιακές διαδικασίες συχνά αναφέρονται ως "καταρράκτες" ή απλά "σειριακές" διαδικασίες.
Ο σχεδιασμός της εμπειρίας χρήστη (UX, UXD, UED ή XD) είναι η διαδικασία βελτίωσης της ικανοποίησης των χρηστών από ένα προϊόν, βελτιώνοντας τη χρηστικότητα, την προσβασιμότητα και την ευχαρίστηση που παρέχονται στην αλληλεπίδραση με το προϊόν.
Ο σχεδιασμός εμπειρίας χρήστη περιλαμβάνει τον παραδοσιακό σχεδιασμό αλληλεπίδρασης μεταξύ ανθρώπων και ηλεκτρονικών υπολογιστών (HCI), επεκτείνεται με την αντιμετώπιση όλων των πτυχών ενός προϊόντος ή μιας υπηρεσίας όπως γίνεται αντιληπτή από τους χρήστες.
Είναι σημαντικό γιατί καθορίζει την άποψη του χρήστη και αυτό μπορεί να έχει μεγάλη επίπτωση στο προϊόν ή στην εταιρία.
Paper: Productivity Impacts of Software Complexity and Developer Experience by Geoffrey K. Gill and Chris F. Kemerer (MIT Sloan School WP #3107-90 Junuary 1990)