Ένα έργο ανάπτυξης λογισμικού μπορεί να αντιμετωπίσει διάφορους παράγοντες κινδύνους που επηρεάζουν την επιτυχία του. Ο Barry Boehm στην αναφορά του σχετικά με τους κινδύνους στα έργα ανάπτυξης λογισμικού παρουσίασε ένα σύνολο από δέκα κορυφαίους παράγοντες κινδύνου έργων λογισμικού, τους οποίους κατέταξε με βάση τη συχνότητα και την επίδρασή τους στα έργα λογισμικού.
Ακολουθεί μια αναλυτική και πλήρης σύγκριση για τους 10 κορυφαίους παράγοντες κινδύνου έργων λογισμικού του Boehm (1991) και των σύγχρονων κινδύνων ανάπτυξης λογισμικού, συμπεριλαμβάνοντας και την πρωτότυπη διατύπωση στα Αγγλικά.
Δέκα παράγοντες κινδύνου έργων λογισμικού
1. Έλλειψη προσωπικού – Personnel shortfalls
- Σήμερα: Έλλειψη εξειδικευμένου προσωπικού
- Σχέση & Σύγκριση: Απόλυτη ταύτιση. Η ανεπάρκεια προγραμματιστών, αναλυτών ή διαχειριστών έργου μπορεί να προκαλέσει καθυστερήσεις και προβλήματα ποιότητας. Σήμερα, η ζήτηση για εξειδικευμένο προσωπικό είναι ακόμα μεγαλύτερη.
2. Μη ρεαλιστικά χρονοδιαγράμματα και προϋπολογισμοί – Unrealistic schedules and budgets
- Σήμερα: Καθυστερήσεις και υπέρβαση κόστους
- Σχέση & Σύγκριση: Απόλυτη ταύτιση. Η υποεκτίμηση κόστους και χρόνου ήταν και παραμένει ένας από τους μεγαλύτερους κινδύνους.
3. Ανάπτυξη λανθασμένων λειτουργιών λογισμικού – Developing the wrong software functions
- Σήμερα: Ασαφείς ή μεταβαλλόμενες απαιτήσεις
- Σχέση & Σύγκριση: Σχετίζονται άμεσα. Οι ασαφείς ή λανθασμένες απαιτήσεις μπορεί να οδηγήσουν στην ανάπτυξη λογισμικού που δεν καλύπτει τις ανάγκες των χρηστών.
4. Ανάπτυξη λανθασμένου UI – Developing the wrong user interface
- Σήμερα: Κακή σχεδίαση εμπειρίας χρήστη (UX/UI)
- Σχέση & Σύγκριση: Σχετίζονται. Αν το UI/UX δεν είναι λειτουργικό, το λογισμικό μπορεί να αποτύχει, ακόμα κι αν είναι τεχνικά σωστό.
5. Προσθήκη περιττών χαρακτηριστικών – Gold plating
- Σήμερα: Προβλήματα υπερβολικών ή μη χρήσιμων λειτουργιών
- Σχέση & Σύγκριση: Ταυτίζονται. Η υπερβολική πολυπλοκότητα μπορεί να αυξήσει το κόστος και τον χρόνο ανάπτυξης χωρίς πραγματική αξία.
6. Συνεχείς αλλαγές στις απαιτήσεις – Continuing stream of requirements changes
- Σήμερα: Αποτυχία διαχείρισης αλλαγών
- Σχέση & Σύγκριση: Απόλυτη ταύτιση. Οι συνεχείς αλλαγές στις απαιτήσεις δυσχεραίνουν την ανάπτυξη, ειδικά σε Waterfall μοντέλα.
7. Ανεπάρκεια εξωτερικών στοιχείων – Shortfalls in externally furnished components
- Σήμερα: Τεχνολογικοί κίνδυνοι
- Σχέση & Σύγκριση: Σχετίζονται. Η εξάρτηση από τρίτες τεχνολογίες (APIs, frameworks) μπορεί να προκαλέσει προβλήματα λειτουργικότητας και ασφάλειας.
8. Ανεπάρκεια εξωτερικών υπηρεσιών (outsourcing) – Shortfalls in externally performed tasks
- Σήμερα: Έλλειψη ελέγχου σε εξωτερικές συνεργασίες
- Σχέση & Σύγκριση: Σχετίζονται. Όταν εργασίες ανατίθενται σε τρίτους χωρίς επαρκή έλεγχο, μπορεί να προκύψουν καθυστερήσεις και προβλήματα ποιότητας.
9. Προβλήματα απόδοσης σε πραγματικό χρόνο – Real-time performance shortfalls
- Σήμερα: Κακή ποιότητα κώδικα & προβλήματα απόδοσης
- Σχέση & Σύγκριση: Απόλυτη ταύτιση. Αν το σύστημα δεν ανταποκρίνεται σωστά σε πραγματικό χρόνο, μπορεί να καταστεί άχρηστο.
10. Υπερβολικές τεχνικές προκλήσεις – Straining computer-science capabilities
- Σήμερα: Λανθασμένη επιλογή τεχνολογιών
- Σχέση & Σύγκριση: Σχετίζονται. Αν επιλεχθούν λάθος τεχνολογίες ή προσεγγίσεις που είναι πέρα από τις δυνατότητες της ομάδας, το έργο μπορεί να αποτύχει.
Συμπέρασμα
Η ανάλυση του Boehm παραμένει ιδιαίτερα επίκαιρη, αλλά οι σημερινοί κίνδυνοι περιλαμβάνουν νέες προκλήσεις όπως η ασφάλεια και η ταχεία τεχνολογική αλλαγή.
Βασική διαφορά: Σήμερα, οι κίνδυνοι ασφάλειας, κακής ποιότητας κώδικα και εξωτερικών εξαρτήσεων έχουν γίνει ακόμα πιο σημαντικοί.
Η αποτελεσματική διαχείριση κινδύνων, η ευέλικτη προσέγγιση στην ανάπτυξη λογισμικού και η συστηματική αξιολόγηση του έργου συμβάλλουν στη μείωση των κινδύνων και αυξάνουν τις πιθανότητες επιτυχίας. Σήμερα, οι αλλαγές στις απαιτήσεις μπορούν να διαχειριστούν πιο αποδοτικά μέσω των πρακτικών Agile και DevOps, σε αντίθεση με το παραδοσιακό μοντέλο Waterfall, το οποίο ήταν πιο διαδεδομένο το 1991.