Διαφορά μεταξύ Extreme Programming και SCRUM
Extreme Programming vs SCRUM | XP vs SCRUM
Με την πάροδο των ετών χρησιμοποιήθηκαν διάφορες μεθοδολογίες ανάπτυξης λογισμικού στη βιομηχανία λογισμικού, όπως η μέθοδος ανάπτυξης Waterfall, V-Model, RUP και λίγες άλλες γραμμικές, επαναληπτικές και συνδυασμένες γραμμικές-επαναληπτικές μέθοδοι. Το ευέλικτο μοντέλο (ή πιο ορθά, μια ομάδα μεθοδολογιών) είναι ένα πιο πρόσφατο μοντέλο ανάπτυξης λογισμικού που εισήγαγε το Agile Manifesto για την αντιμετώπιση των ελλείψεων που εντοπίστηκαν σε αυτές τις παραδοσιακές μεθοδολογίες ανάπτυξης λογισμικού.
Οι μέθοδοι Agile βασίζονται στην επαναληπτική ανάπτυξη και χρησιμοποιούν τον σχολιασμό από τους χρήστες ως τον κύριο μηχανισμό ελέγχου. Ο ευκίνητος μπορεί να ονομαστεί προσέγγιση που βασίζεται στον άνθρωπο από τις παραδοσιακές μεθόδους. Το ευέλικτο μοντέλο παραδίδει μια πολύ λειτουργική έκδοση του προϊόντος πολύ νωρίς, διασπώντας το σύστημα σε πολύ μικρά και εύχρηστα υποσυστήματα, έτσι ώστε ο πελάτης να μπορεί να πραγματοποιήσει κάποια από τα οφέλη από νωρίς. Ο χρόνος κύκλου δοκιμών του Agile είναι σχετικά μικρός σε σύγκριση με τις παραδοσιακές μεθόδους, επειδή οι δοκιμές γίνονται παράλληλα με την ανάπτυξη. Λόγω όλων αυτών των πλεονεκτημάτων, οι μέθοδοι Agile προτιμούνται σε σχέση με τις παραδοσιακές μεθοδολογίες προς το παρόν. Ο προγραμματισμός Scrum και Extreme είναι δύο από τις πιο δημοφιλείς παραλλαγές των μεθόδων Agile.
Τι είναι το SCRUM;
Όπως αναφέρθηκε παραπάνω, το SCRUM είναι μια διαδοχική και επαναληπτική διαδικασία διαχείρισης έργου, η οποία ανήκει στην οικογένεια των μεθόδων Agile. Η SCRUM βασίζεται στην παροχή υψηλής προτεραιότητας στη συμμετοχή του πελάτη στις αρχές του κύκλου ανάπτυξης. Συνιστά την ενσωμάτωση των δοκιμών από τον πελάτη νωρίς και συχνά όσο το δυνατόν. Η δοκιμή γίνεται σε κάθε σημείο όταν διατίθεται μια σταθερή έκδοση. Η ίδρυση του SCRUM βασίζεται στην έναρξη των δοκιμών από την αρχή του έργου και συνεχίζεται καθ 'όλη τη διάρκεια του έργου.
Η βασική αξία του SCRUM είναι ότι "η ποιότητα είναι ευθύνη της ομάδας", η οποία τονίζει ότι η ποιότητα του λογισμικού είναι ευθύνη ολόκληρης της ομάδας (όχι μόνο της ομάδας δοκιμών). Μια άλλη σημαντική πτυχή του SCRUM είναι η κατανομή του λογισμικού σε μικρότερα διαχειρίσιμα μέρη και η παράδοσή τους στον πελάτη πολύ γρήγορα. Η παράδοση ενός προϊόντος εργασίας είναι υψίστης σημασίας. Στη συνέχεια, η ομάδα συνεχίζει να βελτιώνει το λογισμικό και να παραδίδει συνεχώς σε κάθε σημαντικό βήμα. Αυτό επιτυγχάνεται με την ύπαρξη πολύ μικρών κύκλων απελευθέρωσης (αποκαλούμενων σπριντ) και τη λήψη ανατροφοδότησης για βελτίωση στο τέλος κάθε κύκλου.
Το SCRUM ορίζει διάφορους βασικούς ρόλους για την ομαλή λειτουργία μιας ομάδας ανάπτυξης. Είναι ο ιδιοκτήτης του προϊόντος (ο οποίος εκπροσωπεί τον πελάτη και διατηρεί την καθυστέρηση του προϊόντος), τον κύριο Scrum (ο οποίος ενεργεί ως ο διοργανωτής και συντονιστής της ομάδας με τη διεξαγωγή συναντήσεων στρογγυλής τραπέζης, τη διατήρηση των συσσωρευτών σπριντ και την καύση χαρτών) και άλλα μέλη της ομάδας.Μια ομάδα μπορεί να αποτελείται από παραδοσιακούς ρόλους, αλλά ως επί το πλείστον αυτοδιοίκηση. Τα κύρια αντικείμενα του Scrum είναι τα καθυστερημένα καθυστερημένα καθυστερημένα καθυστερημένα καθυστερημένα καθήκοντα, οι καθυστερήσεις Sprint / τα καθυστερημένα καθυστερημένα (καθήκοντα σε κάθε επανάληψη). Οι κύριες τελετές SCRUM είναι συνάντηση συσσώρευσης προϊόντος, σύσκεψη Sprint και συνάντηση Retrospect.
Τι είναι ο Extreme Programming;
Ο Extreme Programming (συντομογραφία XP) είναι μια μεθοδολογία ανάπτυξης λογισμικού που ανήκει στο μοντέλο Agile. Ο ακραίος προγραμματισμός πραγματοποιεί φάσεις σε πολύ μικρά συνεχή βήματα (σε σύγκριση με τις παραδοσιακές μεθόδους). Το πρώτο πέρασμα, το οποίο διαρκεί μόνο μία ημέρα ή μία εβδομάδα, είναι σκόπιμα ατελής. Για την παροχή συγκεκριμένων στόχων για την ανάπτυξη του λογισμικού, αυτοματοποιημένες δοκιμές γράφονται στην αρχή. Στη συνέχεια, οι προγραμματιστές κάνουν την κωδικοποίηση. Η έμφαση δίνεται στον προγραμματισμό ως ζεύγη. Μόλις ολοκληρωθούν όλες οι δοκιμές, η κωδικοποίηση θεωρείται πλήρης. Η επόμενη φάση είναι ο σχεδιασμός και η αρχιτεκτονική, η οποία ασχολείται με τον επαναπροσδιορισμό του κώδικα από το ίδιο σύνολο προγραμματιστών. Στο τέλος αυτής της φάσης, παρουσιάζεται στα ενδιαφερόμενα μέρη μη ολοκληρωμένο (αλλά λειτουργικό) προϊόν. Αμέσως μετά, ξεκινά η επόμενη φάση (η οποία επικεντρώνεται στην επόμενη σειρά των πιο σημαντικών χαρακτηριστικών).
Ποια είναι η διαφορά μεταξύ Extreme Programming και SCRUM;
Οι Extreme Programming και SCRUM είναι κατανοητά πολύ παρόμοιες και ευθυγραμμισμένες μεθοδολογίες. Ωστόσο, υπάρχουν πολύ λεπτές αλλά σημαντικές διαφορές μεταξύ αυτών των δύο μεθόδων. Τα σπριντ SCRUM διαρκούν για 2-4 εβδομάδες, ενώ οι τυπικές επαναλήψεις XP είναι μικρότερες (τελευταίες 1-2 εβδομάδες). Συνήθως, οι ομάδες SCRUM δεν επιτρέπουν αλλαγές σε σπριντ, αλλά οι ομάδες XP είναι λίγο πιο ευέλικτες στις αλλαγές εντός των επαναλήψεων. Για παράδειγμα, μετά το σχεδιασμό του σπριντ, το σύνολο των στοιχείων του συγκεκριμένου σπριντ παραμένει αμετάβλητο, αλλά ένα χαρακτηριστικό που δεν έχει αρχίσει να εργάζεται μπορεί οποτεδήποτε να αντικατασταθεί με κάποια άλλη δυνατότητα στο XP. Μια άλλη διαφορά μεταξύ του XP και του SCRUM είναι ότι η σειρά των χαρακτηριστικών που αναπτύσσονται στο XP είναι αυστηρά προτεραιότητα από τον πελάτη, ενώ η ομάδα SCRUM αποφασίζει τη σειρά των αντικειμένων (μετά την προτεραιότητα του προϊόντος από την εταιρεία SCRUM).
Σε αντίθεση με το XP, το SCRUM δεν προβλέπει καμία τεχνική πρακτική. Για παράδειγμα, το XP οδηγείται από πρακτικές όπως η εξέλιξη που καθοδηγείται από δοκιμές (TDD), ο προγραμματισμός ζευγών, ο επαναπροσδιορισμός κ.λπ. Ωστόσο, ορισμένοι πιστεύουν ότι η επιβολή ενός συνόλου πρακτικών σε ομάδες αυτο-οργάνωσης θα μπορούσε να έχει αρνητικό αντίκτυπο και αυτό μπορεί να θεωρηθεί ένα μειονέκτημα του XP. Ένα άλλο μειονέκτημα του Extreme προγραμματισμού είναι ότι οι άπειρες ομάδες μπορεί να τείνουν να refactor χωρίς αυτοματοποιημένες δοκιμές ή TDD (ή απλά hacking). Ως εκ τούτου, ορισμένοι προτείνουν ότι το SCRUM είναι καλύτερο για να κοιτάει μακριά (καθώς φέρνει μεγάλες βελτιώσεις απλά μέσω εστιασμένων επαναλήψεων με timeboxed) και το XP είναι κατάλληλο για ελαφρώς ώριμες ομάδες που έχουν ανακαλύψει την αξία των παραπάνω πρακτικών (αντί να τις χρησιμοποιούν επειδή έχουν ερωτηθεί να το πράξουν).