Διαφορά μεταξύ Extreme Programming και SCRUM

Διαφορά μεταξύ Extreme Programming και SCRUM
Διαφορά μεταξύ Extreme Programming και SCRUM

Βίντεο: Διαφορά μεταξύ Extreme Programming και SCRUM

Βίντεο: Διαφορά μεταξύ Extreme Programming και SCRUM
Βίντεο: Τί είναι ο μίκτης ήχου - και πώς λειτουργεί. (hardware) 2024, Νοέμβριος
Anonim

Εξαιρετικός προγραμματισμός εναντίον SCRUM | XP εναντίον SCRUM

Έχουν χρησιμοποιηθεί πολλές διαφορετικές μεθοδολογίες ανάπτυξης λογισμικού στη βιομηχανία λογισμικού όλα αυτά τα χρόνια, όπως η μέθοδος ανάπτυξης Waterfall, το V-Model, το RUP και λίγες άλλες γραμμικές, επαναληπτικές και συνδυασμένες γραμμικές επαναληπτικές μέθοδοι. Το ευέλικτο μοντέλο (ή πιο σωστά, μια ομάδα μεθοδολογιών) είναι ένα πιο πρόσφατο μοντέλο ανάπτυξης λογισμικού που εισήχθη από το μανιφέστο Agile για την αντιμετώπιση των ελλείψεων που εντοπίζονται σε αυτές τις παραδοσιακές μεθοδολογίες ανάπτυξης λογισμικού.

Οι ευέλικτες μέθοδοι βασίζονται στην επαναληπτική ανάπτυξη και χρησιμοποιούν την ανατροφοδότηση από τους χρήστες ως τον κύριο μηχανισμό ελέγχου. Το Agile μπορεί να ονομαστεί μια ανθρωποκεντρική προσέγγιση από τις παραδοσιακές μεθόδους. Το Agile μοντέλο παρέχει μια λειτουργική έκδοση του προϊόντος πολύ νωρίς, αναλύοντας το σύστημα σε πολύ μικρά και διαχειρίσιμα υποτμήματα, έτσι ώστε ο πελάτης να μπορεί να συνειδητοποιήσει κάποια από τα οφέλη από νωρίς. Ο χρόνος του κύκλου δοκιμής του Agile είναι σχετικά μικρός σε σύγκριση με τις παραδοσιακές μεθόδους, επειδή οι δοκιμές γίνονται παράλληλα με την ανάπτυξη. Λόγω όλων αυτών των πλεονεκτημάτων, οι Agile μέθοδοι προτιμώνται από τις παραδοσιακές μεθοδολογίες αυτή τη στιγμή. Ο προγραμματισμός Scrum και Extreme είναι δύο από τις πιο δημοφιλείς παραλλαγές των μεθόδων Agile.

Τι είναι το SCRUM;

Όπως αναφέρθηκε παραπάνω, το SCRUM είναι μια σταδιακή και επαναληπτική διαδικασία διαχείρισης έργου, η οποία ανήκει στην οικογένεια των μεθόδων Agile. Το SCRUM βασίζεται στην παροχή υψηλής προτεραιότητας στη συμμετοχή των πελατών νωρίς στον κύκλο ανάπτυξης. Συνιστά την ενσωμάτωση δοκιμών από τον πελάτη έγκαιρα και συχνά όσο το δυνατόν. Ο έλεγχος γίνεται σε κάθε σημείο όταν είναι διαθέσιμη μια σταθερή έκδοση. Η ίδρυση του SCRUM βασίζεται στην έναρξη των δοκιμών από την αρχή του έργου και στη συνέχιση σε όλη τη διάρκεια του έργου έως το τέλος του έργου.

Βασική αξία του SCRUM είναι "η ποιότητα είναι ευθύνη της ομάδας", η οποία τονίζει ότι η ποιότητα του λογισμικού είναι ευθύνη ολόκληρης της ομάδας (όχι μόνο της ομάδας δοκιμών). Μια άλλη σημαντική πτυχή του SCRUM είναι η διάσπαση του λογισμικού σε μικρότερα διαχειρίσιμα μέρη και η πολύ γρήγορη παράδοση τους στον πελάτη. Η παράδοση ενός προϊόντος που λειτουργεί είναι υψίστης σημασίας. Στη συνέχεια, η ομάδα συνεχίζει να βελτιώνει το λογισμικό και να προσφέρει συνεχώς σε κάθε σημαντικό βήμα. Αυτό επιτυγχάνεται μέσω της ύπαρξης πολύ σύντομων κύκλων απελευθέρωσης (που ονομάζονται σπριντ) και της λήψης σχολίων για βελτίωση στο τέλος κάθε κύκλου.

Το SCRUM ορίζει αρκετούς βασικούς ρόλους για την ομαλή λειτουργία μιας ομάδας ανάπτυξης. Είναι ο κάτοχος του Προϊόντος (που αντιπροσωπεύει τον πελάτη και διατηρεί το ανεκτέλεστο προϊόν), ο Scrum master (ο οποίος ενεργεί ως διοργανωτής και συντονιστής της ομάδας διεξάγοντας συναντήσεις scrum, διατηρώντας ανεκτέλεστο sprint και γραφήματα burn down) και άλλα μέλη της ομάδας. Μια ομάδα μπορεί να αποτελείται από παραδοσιακούς ρόλους, αλλά κυρίως είναι αυτοδιαχειριζόμενες ομάδες. Τα κύρια τεχνουργήματα του Scrum είναι ανεκτέλεστο προϊόν/ανεκτέλεση εκδόσεων (λίστα επιθυμιών), εκκρεμότητες Sprint/ανεκτέλεστα ελαττώματα (εργασίες σε κάθε επανάληψη), Διαγράμματα Burn down (απομένουσα εργασία έναντι ημερομηνίας). Οι κύριες τελετές SCRUM είναι η σύσκεψη ανεκτέλεστου προϊόντος, η συνάντηση Sprint και η συνάντηση αναδρομής.

Τι είναι ο Extreme Programming;

Το Extreme Programming (συντομογραφία XP) είναι μια μεθοδολογία ανάπτυξης λογισμικού που ανήκει στο μοντέλο Agile. Ο ακραίος προγραμματισμός εκτελεί φάσεις σε πολύ μικρά συνεχή βήματα (σε σύγκριση με τις παραδοσιακές μεθόδους). Το πρώτο πέρασμα, το οποίο διαρκεί μόνο μια μέρα ή μια εβδομάδα, είναι σκόπιμα ελλιπές. Για την παροχή συγκεκριμένων στόχων για την ανάπτυξη του λογισμικού, γράφονται αυτοματοποιημένες δοκιμές στην αρχή. Στη συνέχεια οι προγραμματιστές κάνουν την κωδικοποίηση. Η εστίαση είναι να κάνουμε προγραμματισμό ως ζευγάρια. Μόλις περάσουν όλες οι δοκιμές, η κωδικοποίηση θεωρείται ολοκληρωμένη. Η επόμενη φάση είναι η σχεδίαση και η αρχιτεκτονική, η οποία ασχολείται με την ανακατασκευή του κώδικα από το ίδιο σύνολο προγραμματιστών. Στο τέλος αυτής της φάσης, το ελλιπές (αλλά λειτουργικό) προϊόν παρουσιάζεται στα ενδιαφερόμενα μέρη. Αμέσως μετά, ξεκινά η επόμενη φάση (η οποία εστιάζει στο επόμενο σύνολο των πιο σημαντικών λειτουργιών).

Ποια είναι η διαφορά μεταξύ Extreme Programming και SCRUM;

Ο ακραίος προγραμματισμός και το SCRUM είναι κατανοητά πολύ παρόμοιες και ευθυγραμμισμένες μεθοδολογίες. Ωστόσο, υπάρχουν λεπτές αλλά σημαντικές διαφορές μεταξύ αυτών των δύο μεθόδων. Τα σπριντ SCRUM διαρκούν 2-4 εβδομάδες, ενώ οι τυπικές επαναλήψεις XP είναι μικρότερες (τελευταίες 1-2 εβδομάδες). Συνήθως, οι ομάδες SCRUM δεν επιτρέπουν αλλαγές σε σπριντ, αλλά οι ομάδες XP είναι λίγο πιο ευέλικτες σε αλλαγές εντός επαναλήψεων. Για παράδειγμα, μετά τον προγραμματισμό του σπριντ, το σύνολο των στοιχείων αυτού του σπριντ παραμένει αμετάβλητο, αλλά μια δυνατότητα που δεν έχει αρχίσει να λειτουργεί μπορεί ανά πάσα στιγμή να αντικατασταθεί με κάποια άλλη δυνατότητα στα XP. Μια άλλη διαφορά μεταξύ XP και SCRUM είναι ότι η σειρά των χαρακτηριστικών που αναπτύσσονται στο XP είναι αυστηρά ιεραρχημένη από τον πελάτη, ενώ η ομάδα SCRUM αποφασίζει τη σειρά των αντικειμένων (αφού το ανεκτέλεστο προϊόν δοθεί προτεραιότητα από τον κάτοχο Προϊόντος του SCRUM).

Σε αντίθεση με το XP, το SCRUM δεν καθορίζει πρακτικές μηχανικής. Για παράδειγμα, το XP καθοδηγείται από πρακτικές όπως η ανάπτυξη βάσει δοκιμής (TDD), ο προγραμματισμός ζευγών, η ανακατασκευή κ.λπ. Ωστόσο, ορισμένοι πιστεύουν ότι η επιβολή ενός συνόλου πρακτικών σε ομάδες αυτο-οργάνωσης θα μπορούσε να έχει αρνητικό αντίκτυπο και αυτό μπορεί να ληφθεί υπόψη ελάττωμα XP. Ένα άλλο μειονέκτημα του Extreme προγραμματισμού είναι ότι οι άπειρες ομάδες μπορεί να τείνουν να αναπαραστήσουν χωρίς αυτοματοποιημένες δοκιμές ή TDD (ή απλά hacking). Ως εκ τούτου, ορισμένοι προτείνουν ότι το SCRUM είναι καλύτερο για να ξεφύγετε (καθώς φέρνει μεγάλες βελτιώσεις απλώς μέσω εστιασμένων επαναλήψεων με χρονική ρύθμιση) και το XP είναι κατάλληλο για ελαφρώς ώριμες ομάδες που έχουν ανακαλύψει την αξία των παραπάνω πρακτικών (αντί να τις χρησιμοποιούν επειδή τους ζητήθηκε να το κάνει).

Συνιστάται: