Πίνακας περιεχομένων[Κρύβω][Προβολή]
Η βιομηχανία των υπολογιστών είναι γεμάτη με διφορούμενη γλώσσα, σκληρή ορολογία και περίπλοκες ιδέες που είναι δύσκολο να κατανοηθούν και μπορούν να οδηγήσουν το μυαλό σας σε μια φρενίτιδα υπολογιστικής προσωρινής αποθήκευσης.
Υδατόπτωση? Scrum; Ευκίνητος?
Εάν αυτές οι φράσεις είναι εντελώς ξένες για εσάς, μην ανησυχείτε. Η εξυπηρετική ομάδα των τεχνικών geek του HashDork είναι εδώ για να σας βοηθήσει να κατανοήσετε τις διακρίσεις μεταξύ αυτών των κρίσιμων σταδίων της διαδικασίας ανάπτυξης, ώστε να αποκτήσετε γνώση.
Οι τεχνικές agile, scrum και waterfall θα καλυφθούν όλες σε αυτήν την ανάρτηση ιστολογίου, μαζί με το πώς η καθεμία μπορεί να βοηθήσει την ομάδα σας στο σύνολό της.
Ας ξεκινήσουμε με τους ευκίνητους και θα κουβαλήσουμε και τα υπόλοιπα.
Τι είναι το Agile;
Η ευέλικτη ανάπτυξη λογισμικού ακολουθεί μια επαναληπτική, σταδιακή προσέγγιση. Αντί για εκτεταμένη προετοιμασία στην αρχή ενός έργου, οι τεχνικές Agile είναι ευέλικτες στις μεταβαλλόμενες ανάγκες με την πάροδο του χρόνου και προωθούν τη συνεχή ανατροφοδότηση από τους τελικούς χρήστες.
Οι διαλειτουργικές ομάδες εργάζονται σε επαναλήψεις προϊόντων με την πάροδο του χρόνου και αυτή η εργασία κατηγοριοποιείται σε ανεκτέλεστο και ιεραρχείται με βάση την αξία της επιχείρησης ή του πελάτη. Ο σκοπός κάθε επανάληψης είναι να δημιουργήσει ένα χρησιμοποιήσιμο προϊόν.
Η ηγεσία προωθεί τη συνεργασία, την υπευθυνότητα και την πρόσωπο με πρόσωπο επικοινωνία στις μεθοδολογίες Agile.
Τα ενδιαφερόμενα μέρη της επιχείρησης και οι προγραμματιστές πρέπει να συνεργαστούν για να διασφαλίσουν ότι το προϊόν ανταποκρίνεται στις απαιτήσεις του καταναλωτή και στους στόχους της εταιρείας.
Η φράση «ευκίνητη ανάπτυξη» αναφέρεται σε μια ποικιλία μεθόδων και πλαισίων που βασίζονται στα ιδανικά και τις αρχές που περιγράφονται στο Ευκίνητο μανιφέστο.
Οι ειδικοί συμβουλεύουν να τηρείτε τις ευέλικτες αρχές και αξίες και να τις χρησιμοποιείτε ως οδηγό για να αποφασίσετε τις σωστές ενέργειες που πρέπει να κάνετε σε ένα συγκεκριμένο περιβάλλον κατά την προσέγγιση της ανάπτυξης λογισμικού.
Η συνεργατική και αυτοοργάνωση ομάδα είναι οι κύριοι τομείς εστίασης για την ευέλικτη κοινότητα ανάπτυξης λογισμικού.
Οι ομάδες επιτρέπεται να αποφασίζουν αυτόνομα πώς θα αντιμετωπίσουν ένα συγκεκριμένο έργο, αλλά αυτό δεν σημαίνει ότι οι επόπτες είναι ανύπαρκτοι. Οι ευέλικτες ομάδες είναι επομένως διαλειτουργικές.
Σε ένα ευέλικτο παράδειγμα, οι μάνατζερ εξακολουθούν να είναι απαραίτητοι. Φροντίζουν ώστε κάθε μέλος της ομάδας να έχει ή να αποκτά τις απαραίτητες ικανότητες για το έργο.
Οι διευθυντές σε ένα ευέλικτο πλαίσιο λειτουργούν καλλιεργώντας μια ατμόσφαιρα που αναδεικνύει το καλύτερο στην ομάδα. Αλλά αντί να αναλάβουν την ηγεσία, συχνά παίρνουν πίσω και αφήνουν την ομάδα να αποφασίσει πώς θα παραδώσει τα πράγματα.
Οι διευθυντές εμπλέκονται μόνο όταν οι ομάδες προσπαθούν επανειλημμένα να επιλύσουν προβλήματα χωρίς επιτυχία.
Ευκίνητος Κύκλος Ανάπτυξης
Τα στάδια του κύκλου ανάπτυξης Agile παρατίθενται παρακάτω. Είναι σημαντικό να θυμάστε ότι αυτές οι φάσεις δεν πρέπει να γίνονται με τη σειρά επειδή είναι ευέλικτες και αλλάζουν συνεχώς. Πολλά από αυτά τα στάδια πραγματοποιούνται ταυτόχρονα.
- Σχεδιασμός: Αφού μια ομάδα έργου αποφασίσει ότι μια ιδέα είναι πρακτική και εφαρμόσιμη, αρχίζει να ψάχνει για χαρακτηριστικά. Αυτή η φάση στοχεύει να δώσει προτεραιότητα σε κάθε χαρακτηριστικό και να το αντιστοιχίσει σε μια επανάληψη μετά τη διάσπαση της ιδέας σε μικρότερα τεμάχια εργασίας (τα χαρακτηριστικά).
- Ανάλυση απαιτήσεων: Για τον προσδιορισμό των επιχειρηματικών απαιτήσεων, αυτό το βήμα συνεπάγεται αρκετές συζητήσεις με διαχειριστές, ενδιαφερόμενους φορείς και χρήστες. Ποιος θα χρησιμοποιήσει το προϊόν και πώς θα το χρησιμοποιήσει είναι μεταξύ των λεπτομερειών που πρέπει να συγκεντρώσει η ομάδα. Αυτά τα πρότυπα πρέπει να είναι συγκεκριμένα, εφαρμόσιμα και ποσοτικά.
- Υπηρεσίες: Οι απαιτήσεις που βρέθηκαν στο προηγούμενο στάδιο χρησιμοποιούνται για την προετοιμασία του συστήματος και του σχεδιασμού λογισμικού. Η ομάδα πρέπει να λαμβάνει υπόψη την εμφάνιση του προϊόντος ή της λύσης. Μια στρατηγική ή σχέδιο για τη δοκιμή αναπτύσσεται επίσης από την ομάδα δοκιμής.
- Υλοποίηση, κωδικοποίηση ή ανάπτυξη: Η εστίαση αυτού του σταδίου είναι στη δημιουργία και αξιολόγηση χαρακτηριστικών και στον προγραμματισμό της ανάπτυξης επαναλήψεων (ακολουθώντας την προσέγγιση επαναληπτικής και σταδιακής ανάπτυξης [IID]). Επειδή δεν παρέχονται δυνατότητες, ξεκινά η επανάληψη 0 της περιόδου ανάπτυξης. Ολοκληρώνοντας δραστηριότητες όπως η σύναψη συμβάσεων, η ρύθμιση ρυθμίσεων και η χρηματοδότηση, αυτή η επανάληψη παρέχει τη βάση για μελλοντική ανάπτυξη.
- Δοκιμές: Αφού δημιουργηθεί ο κώδικας, ελέγχεται σε σχέση με τις απαιτήσεις για να διασφαλιστεί ότι το προϊόν ικανοποιεί πραγματικά τις απαιτήσεις των χρηστών και πληροί τους επιχειρηματικούς στόχους. Σε αυτό το στάδιο διεξάγονται δοκιμές μονάδας, ενοποίησης, συστήματος και αποδοχής.
- Ανάπτυξη: Μετά τη δοκιμή, το προϊόν αποστέλλεται στους πελάτες ώστε να μπορούν να το χρησιμοποιήσουν. Ωστόσο, το έργο δεν έχει ολοκληρωθεί μετά την ανάπτυξη. Οι πελάτες μπορούν να αντιμετωπίσουν πρόσθετα προβλήματα αφού αρχίσουν να χρησιμοποιούν το προϊόν, τα οποία θα χρειαστεί η ομάδα του έργου να βρει μια λύση.
Πλεονεκτήματα
- Ταχύτερη, υψηλότερης ποιότητας παράδοση: Αναλύοντας το έργο σε επαναλήψεις (διαχειρίσιμες μονάδες), η ομάδα είναι σε θέση να επικεντρωθεί σε συνεργασία, ανάπτυξη και δοκιμή υψηλότερης ποιότητας. Όταν η δοκιμή γίνεται με κάθε επανάληψη, τα προβλήματα εντοπίζονται και επιδιορθώνονται πιο γρήγορα. Επιπλέον, με συνεχείς, επακόλουθες αναθεωρήσεις, αυτό το λογισμικό υψηλής ποιότητας μπορεί να παρέχεται πιο γρήγορα.
- Η αλλαγή είναι ευπρόσδεκτη: Αν και οι κύκλοι σχεδιασμού είναι μικρότεροι, είναι απλό να αποδεχτείτε και να ενσωματώσετε τις αλλαγές σε οποιοδήποτε σημείο του έργου. Το ανεκτέλεστο μπορεί πάντα να βελτιωθεί και να ιεραρχηθεί εκ νέου, επιτρέποντας στις ομάδες να κάνουν αλλαγές στο έργο σε μερικές εβδομάδες.
- Ο τελικός στόχος μπορεί να μην είναι γνωστός: Το Agile είναι εξαιρετικό για έργα όταν ο τελικός στόχος δεν είναι σαφώς καθορισμένος. Καθώς το έργο προχωρά περαιτέρω, οι στόχοι θα γίνουν σαφείς και η ανάπτυξη θα είναι σε θέση να καλύψει εύκολα αυτές τις μεταβαλλόμενες ανάγκες.
- Συνεχής βελτίωση: Τα ευέλικτα προγράμματα προωθούν τη συνεισφορά των χρηστών και της ομάδας σε όλα τα στάδια του έργου, επιτρέποντας την εφαρμογή όσων έχουν μάθει για καλύτερη την επόμενη επανάληψη.
- Οι απόψεις των πελατών εκτιμώνται: Υπάρχουν πολλές ευκαιρίες για τους πελάτες να παρακολουθήσουν την ολοκλήρωση της εργασίας, να προσφέρουν σχόλια και να επηρεάσουν πραγματικά το τελικό αποτέλεσμα. Αλληλεπιδρώντας τόσο στενά με την ομάδα του έργου, μπορεί να αναπτύξουν μια αίσθηση ιδιοκτησίας.
- Ισχυρή ομαδική εργασία: Το Agile τονίζει τη σημασία της τακτικής επικοινωνίας και των προσωπικών συναντήσεων. Οι άνθρωποι μπορούν να αναλάβουν την ευθύνη και να κατέχουν ορισμένα στοιχεία του έργου όταν εργάζονται σε ομάδες.
Μειονεκτήματα
- Τα μέλη της ομάδας πρέπει να έχουν γνώσηε: Οι ευέλικτες ομάδες είναι συχνά μικρές. Έτσι, τα μέλη της ομάδας πρέπει να έχουν ένα ευρύ φάσμα δεξιοτήτων. Επιπλέον, πρέπει να κατανοήσουν και να αισθάνονται άνετα χρησιμοποιώντας την επιλεγμένη τεχνική Agile.
- Ο προγραμματισμός θα μπορούσε να είναι λιγότερο ακριβής: Περιστασιακά μπορεί να είναι δύσκολο να καθοριστεί μια ακριβής ημερομηνία παράδοσης. Το Agile βασίζεται σε χρονική παράδοση και οι διαχειριστές έργου αναδιατάσσουν συχνά τις προτεραιότητες των εργασιών. Έτσι, είναι πιθανό κάποια από τα παραδοτέα που είχαν αρχικά προγραμματιστεί για παράδοση να μην ολοκληρωθούν στην ώρα τους. Επιπλέον, μπορεί να προστεθούν περισσότερα σπριντ σε οποιοδήποτε σημείο του έργου, επιμηκύνοντας ολόκληρο το πρόγραμμα.
- Η τεκμηρίωση μπορεί να αγνοηθεί: Ορισμένα μέλη της ομάδας μπορεί να πιστεύουν ότι η εστίαση στην τεκμηρίωση είναι λιγότερο κρίσιμη, καθώς το Agile Manifesto ευνοεί το λειτουργικό λογισμικό πάνω από την πλήρη τεκμηρίωση. Οι ευέλικτες ομάδες θα πρέπει να επιτύχουν την ιδανική ισορροπία μεταξύ τεκμηρίωσης και διαλόγου, ακόμη κι αν η ενδελεχής τεκμηρίωση δεν μπορεί να εγγυηθεί την επιτυχία του έργου από μόνη της.
- Η τελική έξοδος μπορεί να διαφέρει πολύ: Μπορεί να μην υπήρχε ξεκάθαρη στρατηγική για το αρχικό έργο Agile, και ως εκ τούτου το τελικό αποτέλεσμα μπορεί να αλλάξει πολύ από αυτό που αναμενόταν αρχικά. Μια ουσιαστικά διαφορετική τελική έξοδος μπορεί να προκύψει από την προσθήκη νέων επαναλήψεων με βάση την αλλαγή εισόδου πελάτη, καθώς το Agile είναι τόσο προσαρμόσιμο.
- Χρονική δέσμευση των προγραμματιστών: Η ομάδα ανάπτυξης πρέπει να είναι πλήρως αφοσιωμένη στο έργο για να είναι αποτελεσματικό το agile. Η μέθοδος Agile, η οποία διαρκεί περισσότερο από μια συμβατική προσέγγιση, απαιτεί συνεχή ενεργό συμμετοχή και συνεργασία. Επιπλέον, υπονοεί ότι οι προγραμματιστές πρέπει να δεσμευτούν για την πλήρη διάρκεια του έργου.
Τι είναι ο Καταρράκτης;
Η πιο δημοφιλής επανάληψη του κύκλου ζωής ανάπτυξης του συστήματος (SDLC) για έργα μηχανικής λογισμικού και πληροφορικής είναι γνωστή ως «προσέγγιση καταρράκτη», η οποία ακολουθεί μια διαδοχική, γραμμική διαδικασία.
Ένα γράφημα Gantt, μια μορφή ραβδωτού γραφήματος που εμφανίζει τις ημερομηνίες έναρξης και λήξης κάθε εργασίας, χρησιμοποιείται περιστασιακά για τον προγραμματισμό της.
Η ομάδα ανάπτυξης προχωρά στο ακόλουθο επίπεδο μετά την ολοκλήρωση μιας από τις οκτώ φάσεις. Η ομάδα δεν μπορεί να επιστρέψει σε προηγούμενο στάδιο χωρίς να χρειαστεί να επανεκκινήσει ολόκληρη τη διαδικασία.
Επιπλέον, ο πελάτης μπορεί να χρειαστεί να αξιολογήσει και να αποδεχτεί τις απαιτήσεις προτού η ομάδα προχωρήσει στο επόμενο επίπεδο.
Το μοντέλο καταρράκτη αναπτύχθηκε σε εξαιρετικά οργανωμένα περιβάλλοντα των τομέων της κατασκευής και των κατασκευών, όπου οι προσαρμογές μπορεί να είναι απαγορευτικά δαπανηρές ή ακόμα και αδύνατες.
Η τεχνική του καταρράκτη ονομάζεται έτσι επειδή προορίζεται να ρέει προς μία μόνο κατεύθυνση - προς τα κάτω - ακριβώς όπως ένας καταρράκτης. Οι φάσεις του περιλαμβάνουν ανάλυση, έναρξη, δοκιμή, σχεδιασμό, κατασκευή, ανάπτυξη, συντήρηση και δοκιμή.
Η τεχνική του καταρράκτη έχει πολλά πλεονεκτήματα, όπως και κάθε άλλη στρατηγική. Το ένα είναι ότι οι φάσεις του σχεδιασμού και του σχεδιασμού του έργου είναι πιο καλά εδραιωμένες.
Οι πελάτες και η ομάδα ανάπτυξης είναι πιο ευθυγραμμισμένοι όσον αφορά τα παραδοτέα του έργου, ενώ χρησιμοποιούν την ανάπτυξη λογισμικού waterfall. Επειδή γνωρίζετε το εύρος του έργου από την αρχή, η ανάπτυξη καταρράκτη καθιστά επίσης πιο εύκολη την παρακολούθηση της προόδου.
Η διαδικασία του καταρράκτη χρησιμοποιεί ειδικούς, προγραμματιστές, αναλυτές και δοκιμαστές για να επικεντρωθούν στις δουλειές τους στο έργο αντί να δώσει έμφαση σε ένα βήμα ολόκληρης της ομάδας.
Στάδια του καταρράκτη
Τα έξι βήματα του Καταρράκτη πρέπει να συμβαίνουν το ένα μετά το άλλο:
- Απαιτήσεις συλλογής και αποθήκευσης: Θα πρέπει να συγκεντρώσετε εμπεριστατωμένη γνώση σχετικά με το τι απαιτεί αυτό το έργο αυτή τη στιγμή. Υπάρχουν πολλές τεχνικές για τη συλλογή αυτών των δεδομένων, συμπεριλαμβανομένων συνεντεύξεων, ερευνών και συλλογικού καταιγισμού ιδεών. Οι ανάγκες του έργου θα πρέπει να είναι εμφανείς μέχρι να τελειώσει αυτή η φάση και η ομάδα σας θα πρέπει να έχει λάβει ένα αντίγραφο του εγγράφου απαιτήσεων.
- Σχεδιασμός συστήματος: Το σύστημα έχει σχεδιαστεί από την ομάδα σας χρησιμοποιώντας προκαθορισμένες προδιαγραφές. Σε αυτό το στάδιο, δεν γίνεται κωδικοποίηση, αλλά η ομάδα θέτει απαιτήσεις για το υλικό ή τη γλώσσα προγραμματισμού.
- Εκτέλεση: Αυτό το στάδιο περιλαμβάνει κωδικοποίηση. Τα δεδομένα του προηγούμενου σταδίου χρησιμοποιούνται από προγραμματιστές για την κατασκευή ενός χρησιμοποιήσιμου προϊόντος. Ο κώδικας εφαρμόζεται συχνά σε μικροσκοπικά κομμάτια που συνδυάζονται στο τέλος μιας φάσης ή στην αρχή μιας άλλης.
- Δοκιμές: Το προϊόν μπορεί να αρχίσει να δοκιμάζεται μετά την ολοκλήρωση του κωδικού. Τυχόν προβλήματα εντοπίζονται σχολαστικά και αναφέρονται από τους δοκιμαστές. Το έργο σας μπορεί να χρειαστεί να επιστρέψει στην πρώτη φάση για επαναξιολόγηση εάν εμφανιστούν σημαντικά προβλήματα.
- Παράδοση/ανάπτυξη: Το προϊόν έχει ολοκληρωθεί σε αυτό το σημείο και η ομάδα σας υποβάλλει τα παραδοτέα για ανάπτυξη ή κυκλοφορία.
- Συντήρηση: Ο πελάτης έχει λάβει το προϊόν και το χρησιμοποιεί. Η ομάδα σας μπορεί να χρειαστεί να αναπτύξει διορθώσεις και ενημερώσεις όταν εμφανίζονται προβλήματα για να τα διορθώσει. Και πάλι, σημαντικά προβλήματα μπορεί να απαιτούν επιστροφή στο πρώτο βήμα.
Πλεονεκτήματα
- Απλό στη λειτουργία και τη διαχείριση: Η προσέγγιση Waterfall είναι απλή στη χρήση και στην κατανόηση, καθώς κάθε έργο αντιμετωπίζεται με τον ίδιο διαδοχικό τρόπο. Πριν ξεκινήσετε ένα έργο Waterfall, η ομάδα δεν απαιτείται να έχει προηγούμενη εμπειρία ή εκπαίδευση. Η προσέγγιση του καταρράκτη είναι πολύ αυστηρή. κάθε στάδιο έχει ένα σύνολο παραδοτέων και μια ανασκόπηση, καθιστώντας το απλό στη διαχείριση και τη διατήρησή του.
- Απαιτείται μια καλά τεκμηριωμένη μεθοδολογία: Η τεκμηρίωση που απαιτείται από τη μεθοδολογία του καταρράκτη βοηθά στην αποσαφήνιση του συλλογισμού πίσω από τις δοκιμές και τον κώδικα. Επιπλέον, δημιουργεί μια χάρτινη διαδρομή σε περίπτωση που οι ενδιαφερόμενοι θέλουν πρόσθετες πληροφορίες για μια συγκεκριμένη φάση ή για μελλοντικές πρωτοβουλίες.
- Επιβολή πειθαρχίας: Κάθε βήμα σε ένα έργο καταρράκτη έχει μια αρχή και ένα τέλος, γεγονός που καθιστά εύκολη την επικοινωνία με τους ενδιαφερόμενους και τους πελάτες της προόδου. Η ομάδα μπορεί να μειώσει την πιθανότητα να χαθεί μια προθεσμία βάζοντας πρώτα τις απαιτήσεις και το σχεδιασμό πριν από την παραγωγή κώδικα.
Μειονεκτήματα
- Μπορεί να είναι δύσκολο να συγκεντρωθούν ακριβείς απαιτήσεις: Η συζήτηση με τους καταναλωτές και τους ενδιαφερόμενους για τον προσδιορισμό των αναγκών τους είναι ένα από τα αρχικά στάδια ενός έργου Waterfall. Σε αυτό το πρώιμο στάδιο του έργου, μπορεί να είναι δύσκολο να εξακριβωθούν οι ιδιαίτερες απαιτήσεις τους. Οι πελάτες συχνά μαθαίνουν για τις απαιτήσεις τους καθώς αναπτύσσεται το έργο αντί να τις εκφράζουν εκ των προτέρων.
- Οι αλλαγές είναι δύσκολο να προσαρμοστούν: Το πλήρωμα δεν μπορεί να συνεχίσει την εργασία μετά την ολοκλήρωση μιας φάσης. Είναι πολύ δύσκολο και ακριβό να επιστρέψετε και να το επισκευάσετε εάν μάθουν κατά τη φάση της δοκιμής ότι η λειτουργικότητα έλειπε κατά τη διαδικασία απαιτήσεων.
- Το λογισμικό παρέχεται μετά την ημερομηνία λήξης του: Δύο έως τέσσερις φάσεις του έργου πρέπει να ολοκληρωθούν πριν ξεκινήσει η πραγματική κωδικοποίηση. Ως αποτέλεσμα, οι ενδιαφερόμενοι δεν θα δουν το λειτουργικό λογισμικό μέχρι αργά τον κύκλο ζωής.
Τι είναι το Scrum;
Ένα από τα πιο δημοφιλή πλαίσια διαδικασιών για την εφαρμογή του Agile είναι το Scrum, το οποίο είναι ένα υποσύνολο του Agile.
Είναι ένα επαναληπτικό παράδειγμα για τη διαχείριση της δημιουργίας πολύπλοκου λογισμικού και προϊόντων. Τα σπριντ, τα οποία είναι επαναλήψεις σταθερού μήκους που εκτελούνται από μία έως δύο εβδομάδες, επιτρέπουν στην ομάδα να κυκλοφορεί λογισμικό σε κανονικό πρόγραμμα.
Οι ενδιαφερόμενοι και τα μέλη της ομάδας συγκεντρώνονται για να συζητήσουν τα επόμενα βήματα μετά από κάθε σπριντ. Οι ρόλοι, οι ευθύνες και οι συναντήσεις στο Scrum παραμένουν σταθερές.
Για παράδειγμα, το Scrum καθορίζει τον προγραμματισμό σπριντ, το καθημερινό stand-up, την επίδειξη σπριντ και την αναδρομική σπριντ ως τις τέσσερις τελετουργίες που παρέχουν κάθε δομή σπριντ.
Η ομάδα θα χρησιμοποιήσει οπτικά τεχνουργήματα, όπως πίνακες εργασιών ή γραφήματα καύσης κατά τη διάρκεια κάθε σπριντ για να δείξει την πρόοδο και να λάβει σταδιακά σχόλια.
Στο scrum, η ομάδα και ο ιδιοκτήτης του προϊόντος συνεργάζονται στενά για τον εντοπισμό και την ιεράρχηση της λειτουργικότητας του συστήματος. Αυτό το επιτυγχάνουν δημιουργώντας ένα ανεκτέλεστο προϊόν, το οποίο περιέχει όλες τις απαραίτητες εργασίες για την παραγωγή λογισμικού που λειτουργεί όπως προβλέπεται.
Οι ενημερώσεις κώδικα σφαλμάτων, οι μη λειτουργικές απαιτήσεις και οι λειτουργίες θα πρέπει να περιλαμβάνονται στην ουρά. Οι διαλειτουργικές ομάδες πρέπει να εκτιμήσουν και να εγγραφούν για να παρέχουν αυξήσεις λογισμικού κατά τη διάρκεια των συνεχών Sprint, τα οποία συνήθως διαρκούν 30 ημέρες, αφού έχουν καθοριστεί οι στόχοι.
Μόνο η ομάδα μπορεί να προσθέσει λειτουργικότητα στο Sprint αφού πραγματοποιήσει το ανεκτέλεστο για αυτό το σπριντ.
Επόμενη παράδοση Sprint, το ανεκτέλεστο προϊόν αξιολογείται και, εάν είναι απαραίτητο, επαναπροσδιορίζεται η προτεραιότητα, και το ακόλουθο σετ παραδοτέων επιλέγεται ως μέρος του επόμενου σπριντ.
Διαδικασία Scrum
- Υπόλειψη προϊόντος: Για να παραγγείλετε τα στοιχεία στο ανεκτέλεστο προϊόν, ο Κάτοχος Προϊόντος και η Ομάδα Scrum συναντώνται (η εργασία για το ανεκτέλεστο προϊόν προέρχεται από ιστορίες και απαιτήσεις χρηστών). Το ανεκτέλεστο προϊόν είναι μια λίστα με όλες τις επιθυμητές δυνατότητες για το προϊόν και όχι μια λίστα εργασιών που πρέπει να ολοκληρωθούν. Μετά από αυτό, η ομάδα ανάπτυξης επιλέγει εργασίες από το ανεκτέλεστο προϊόν για εκτέλεση σε κάθε σπριντ.
- Σχεδιασμός σπριντ: Πριν από κάθε σπριντ, ο Κάτοχος Προϊόντος παραδίδει στην ομάδα τα κορυφαία στοιχεία στο ανεκτέλεστο σε μια συνάντηση προγραμματισμού σπριντ. Στη συνέχεια, η ομάδα επιλέγει στοιχεία από το ανεκτέλεστο προϊόν που μπορεί να ολοκληρώσει κατά τη διάρκεια του σπριντ και τα μετακινεί στο ανεκτέλεστο σπριντ (που είναι μια λίστα εργασιών που πρέπει να ολοκληρωθούν στο σπριντ).
- Βελτιστοποίηση/περιποίηση του εκκρεμούς: Προκειμένου να διασφαλιστεί ότι το ανεκτέλεστο έχει προετοιμαστεί για το επόμενο σπριντ, η ομάδα και ο ιδιοκτήτης του προϊόντος συναντώνται στο τέλος ενός σπριντ. Η ομάδα μπορεί να απορρίψει ιστορίες χρηστών που δεν είναι πλέον συναφείς, να προσθέσει νέες, να αναθεωρήσει τη σειρά με την οποία πρέπει να αντιμετωπιστούν ή να χωρίσει τις ιστορίες χρηστών σε μικρότερες εργασίες. Κατά τη διάρκεια αυτής της συνάντησης «καλλωπισμού», θα βεβαιωθείτε ότι το ανεκτέλεστο περιλαμβάνει μόνο πράγματα που είναι σχετικά, σε βάθος και σύμφωνα με τους στόχους του έργου.
- Scrum συναντήσεις κάθε μέρα: Σε μια stand-up συνάντηση διάρκειας 15 λεπτών που ονομάζεται Daily Scrum, κάθε μέλος της ομάδας συζητά τους στόχους του και τυχόν προβλήματα που έχουν προκύψει. Καθημερινά καθ' όλη τη διάρκεια του σπριντ, η ομάδα συμμετέχει στο Daily Scrum, το οποίο κρατά τους πάντες στη δουλειά.
- Συνάντηση για την αξιολόγηση του σπρινt: Η ομάδα παρουσιάζει τη δουλειά της σε μια συνάντηση ανασκόπησης σπριντ στο τέλος κάθε σπριντ. Αντί για μια αναφορά ή μια παρουσίαση PowerPoint, αυτή η συνάντηση θα πρέπει να περιλαμβάνει μια πραγματική επίδειξη.
- Αναδρομική συνάντηση σπριντ: Η ομάδα συζητά τυχόν τροποποιήσεις που πρέπει να γίνουν στο επόμενο σπριντ καθώς και πόσο καλά λειτουργεί το Scrum για αυτές στο τέλος κάθε σπριντ. Η ομάδα μπορεί να συζητήσει τις θετικές πτυχές του σπριντ, τις αρνητικές πτυχές και τους τομείς για βελτίωση.
Πλεονεκτήματα
- Περισσότερη ευθύνη από την ομάδα: Δεν υπάρχει διαχειριστής έργου που να καθοδηγεί την ομάδα scrum για το τι να κάνει και πότε. Το έργο που μπορεί να ολοκληρωθεί σε κάθε σπριντ αποφασίζεται από την ομάδα ως σύνολο. Όλοι συνεργάζονται και προσφέρουν το ένα χέρι στον άλλο, ενισχύοντας την ομαδική εργασία και ενισχύοντας την ατομικότητα σε κάθε μέλος της ομάδας.
- Βελτιωμένη προβολή και διαφάνεια του έργου: Υπάρχουν λιγότερες παρεξηγήσεις και αβεβαιότητα αφού όλοι στην ομάδα γνωρίζουν τις ευθύνες τους χάρη στις συχνές stand-up συναντήσεις. Η ομάδα μπορεί να αντιμετωπίσει προβλήματα προτού ξεφύγουν από τον έλεγχο μιας και τα προβλήματα εντοπίζονται εκ των προτέρων.
- Ενισχυμένες μειώσεις κόστους: Η συνεχής επικοινωνία κρατά την ομάδα ενήμερη για τυχόν προβλήματα ή αλλαγές μόλις συμβούν, γεγονός που συμβάλλει στην εξοικονόμηση κόστους και στη βελτίωση της ποιότητας. Τα μικρότερα κομμάτια χαρακτηριστικών παρέχουν συνεχή ανατροφοδότηση και επιτρέπουν την έγκαιρη διόρθωση σφαλμάτων προτού τα μεγαλύτερα σφάλματα γίνουν πολύ ακριβά για να διορθωθούν.
- Απλή προσαρμογή στις αλλαγές: Είναι πιο απλό να αντιμετωπίζετε και να προσαρμόζεστε στις αλλαγές όταν υπάρχουν συχνοί βρόχοι ανατροφοδότησης και σύντομα σπριντ. Ενδεικτικά, εάν η ομάδα συναντήσει μια ολοκαίνουργια ιστορία χρήστη κατά τη διάρκεια ενός σπριντ, μπορεί να προσθέσει γρήγορα αυτήν τη δυνατότητα στο επόμενο σπριντ στη συνάντηση βελτίωσης του ανεκτέλετου.
Μειονεκτήματα
- Κίνδυνος ερπυσμού πεδίου: Λόγω της έλλειψης καθορισμένης ημερομηνίας ολοκλήρωσης, ορισμένα έργα Scrum ενδέχεται να αντιμετωπίσουν ερπυσμό εμβέλειας. Οι ενδιαφερόμενοι θα μπορούσαν να δελεαστούν να συνεχίσουν να απαιτούν περισσότερες δυνατότητες, εάν δεν υπάρχει προθεσμία ολοκλήρωσης.
- Ένας κακός Scrum Master μπορεί να εκτροχιάσει τα πάντα: Ένας διαχειριστής έργου δεν είναι το ίδιο με έναν master scrum. Ο Scrum Master πρέπει να εμπιστεύεται την ομάδα που εποπτεύει και να μην τους δίνει ποτέ οδηγίες. Ο Scrum Master δεν έχει εξουσία πάνω στην ομάδα. Το έργο θα αποτύχει εάν ο scrum master προσπαθήσει να διαχειριστεί την ομάδα.
- Ζητήματα ακρίβειας ενδέχεται να προκύψουν από εργασίες που δεν έχουν δηλωθεί σωστά: Εάν οι εργασίες δεν προσδιορίζονται σαφώς, τα έξοδα και τα χρονοδιαγράμματα του έργου δεν θα είναι ακριβή. Ο προγραμματισμός γίνεται δύσκολος και τα σπριντ μπορεί να διαρκέσουν περισσότερο από το αναμενόμενο, εάν δεν έχουν καθοριστεί οι αρχικοί στόχοι.
- Η εμπειρία και η αφοσίωση είναι απαραίτητα για μια ομάδα: Για να είναι επιτυχημένη η ομάδα, πρέπει να καθοριστούν σαφώς οι ρόλοι και τα καθήκοντα. Η Ομάδα Scrum απαιτεί μέλη της ομάδας με τεχνικές δεξιότητες επειδή δεν υπάρχουν σαφώς καθορισμένοι ρόλοι (όλοι κάνουν τα πάντα). Η ομάδα πρέπει επίσης να δεσμευτεί να συμμετέχει στις καθημερινές συνεδρίες Scrum και να παραμένει μαζί για όλη τη διάρκεια του έργου.
Agile Vs Scrum
Παρόλο που το Agile και το Scrum χρησιμοποιούν την ίδια μεθοδολογία, υπάρχουν κάποιες παραλλαγές μεταξύ των δύο. Το Agile Manifesto περιγράφει ένα σύνολο αρχών για τη δημιουργία λογισμικού μέσω επαναληπτικής ανάπτυξης.
Το Scrum, από την άλλη πλευρά, είναι ένα σύνολο οδηγιών που πρέπει να τηρούνται κατά την ανάπτυξη λογισμικού Agile. Το Agile είναι μια έννοια, ενώ το Scrum είναι μια τεχνική για την εφαρμογή της.
Το Scrum είναι μια μέθοδος εφαρμογής Agile, επομένως και τα δύο έχουν πολλά κοινά πράγματα. Και οι δύο προσεγγίσεις είναι επαναληπτικές, δίνουν προτεραιότητα στην έγκαιρη και συχνή παράδοση λογισμικού και αποδέχονται την αλλαγή. Υποστηρίζουν επίσης το άνοιγμα και τη συνεχή ανάπτυξη.
Agile Vs Καταρράκτη
Το Rigid vs. Flexible περιγράφει καλύτερα τις διακρίσεις μεταξύ της διαδικασίας Waterfall και Agile. Ενώ το Agile είναι ρευστό και συνεχώς αλλάζει, το Waterfall είναι μια πολύ πιο αυστηρή, πιο άκαμπτη μεθοδολογία.
Αυτές οι περαιτέρω διακρίσεις μεταξύ τους είναι οι εξής:
- Το Agile δεν απαιτεί γραμμική προσέγγιση, ενώ το Waterfall είναι διαδοχικό.
- Ενώ οι ανάγκες είναι συχνά προκαθορισμένες στα έργα Waterfall, αναμένεται να αλλάξουν και να προσαρμοστούν στις πρωτοβουλίες Agile.
- Σε αντίθεση με το Agile, τα έργα Waterfall δεν επιτρέπουν να γίνουν τροποποιήσεις σε εργασίες που ολοκληρώθηκαν σε προηγούμενο στάδιο.
- Ο καταρράκτης είναι μια οργανωμένη διαδικασία κατά την οποία πρέπει να ολοκληρώσετε κάθε βήμα πριν προχωρήσετε στο επόμενο. Ωστόσο, το Agile είναι μια ευέλικτη μεθοδολογία που σας επιτρέπει να προχωρήσετε στο έργο με τον δικό σας ρυθμό.
Agile Vs Waterfall Vs Scrum
- Ο καταρράκτης αυξάνει την εμπιστοσύνη σε αυτό που θα παρασχεθεί πολύ σύντομα μετά τον προγραμματισμό του. Το Agile βασίζεται στις βέλτιστες πρακτικές ενός αναπτυξιακού περιβάλλοντος. Εδώ, ένας αριθμός κινδύνων του έργου μπορεί να αντιμετωπιστεί σωστά, καθώς τα αποτελέσματα αξιολογούνται συνεχώς.
- Το Waterfall δεν προβλέπει ότι η ομάδα και το έργο θα εδρεύουν στην ίδια τοποθεσία. Ενώ το scrum και το agile χρειάζονται συστέγαση εργαζομένων.
- Το Agile εστιάζει στη μείωση της εκ νέου επεξεργασίας του έργου και ενθαρρύνει τις αλλαγές να ενσωματωθούν πολύ νωρίτερα. Σε αντίθεση με τον καταρράκτη, ο οποίος ανταποκρίνεται διαφορετικά, το scrum επιτρέπει επίσης την έγκαιρη ανακάλυψη αλλαγών.
- Ένα πιο συμπαγές σχέδιο για το τελικό προϊόν παρέχεται από το agile and scrum. Αυτό δημιουργεί πρόβλημα με τις υποσχέσεις που δίνονται στον αγοραστή. Αντίθετα, το γραφικό του καταρράκτη δίνει στους πελάτες και τους προγραμματιστές καλύτερη εντύπωση για το τελικό αποτέλεσμα.
- Κάθε μία από αυτές τις τεχνικές έχει ένα σύνολο εργαλείων για την οργάνωση και την προσομοίωση των εργασιών που εμπλέκονται στη δημιουργία τους.
Συμπέρασμα
Εάν έχετε ακολουθήσει μέχρι στιγμής και είστε σίγουροι για τη γνώση σας για τις διακρίσεις μεταξύ των διαδικασιών Waterfall, Agile και Scrum, θα πρέπει ήδη να γνωρίζετε ποια στρατηγική θα λειτουργήσει καλύτερα για εσάς και την ομάδα σας.
Η τεχνική Waterfall, η οποία είναι για έργα με συγκεκριμένο εύρος, χρονοδιάγραμμα και προϋπολογισμό, μπορεί να είναι η καλύτερη επιλογή σας εάν σας αρέσουν οι σκληροί κανόνες και διαδικασίες και διαπιστώσετε ότι προσφέρουν σαφήνεια.
Από την άλλη πλευρά, εάν η ελευθερία και η προσαρμοστικότητα που προσφέρει το Agile σας εμπνέουν, θα μπορούσε να είναι εκεί που πρέπει να εστιάσετε την προσοχή σας.
Το Scrum είναι ο τρόπος που πρέπει να κάνετε, ωστόσο, εάν επιθυμείτε λίγη πειθαρχία μέσα σε ένα ευέλικτο πλαίσιο.
Ωστόσο, πρέπει να εξετάσετε αυτές τις προσεγγίσεις υπό το φως του έργου στο οποίο εργάζεστε και του τελικού αποτελέσματός σας.
Αφήστε μια απάντηση