Ανάπτυξη ευέλικτου λογισμικού 101

Συγγραφέας: Judy Howell
Ημερομηνία Δημιουργίας: 26 Ιούλιος 2021
Ημερομηνία Ενημέρωσης: 23 Ιούνιος 2024
Anonim
Ανάλυση Συστημάτων και Τεχνολογία Λογισμικού - Γρήγορη Ανάπτυξη Λογισμικού - Επαναχρησιμοποίηση
Βίντεο: Ανάλυση Συστημάτων και Τεχνολογία Λογισμικού - Γρήγορη Ανάπτυξη Λογισμικού - Επαναχρησιμοποίηση

Περιεχόμενο


Πάρε μακριά:

Αυτή η μέθοδος ανάπτυξης λογισμικού ενθαρρύνει τη συνεργασία και την ευελιξία για να βοηθήσει στην παραγωγή ενός προϊόντος υψηλής ποιότητας.

Έχει υπάρξει πολλή buzz γύρω Agile στον τομέα της τεχνολογίας λογισμικού και της ανάπτυξης εφαρμογών κόσμο. Ο ευκίνητος δεν είναι έννοια, αλλά νοοτροπία. Όπως υποδηλώνει το όνομα, επικεντρώνεται στο να είναι ευέλικτο και δυναμικό. Αυτή η μεθοδολογία αφαιρεί επίσης την απομόνωση μεταξύ των φάσεων ανάπτυξης λογισμικού και ενθαρρύνει την ομάδα ανάπτυξης να συνεργαστεί με τους αναλυτές ποιότητας. Επισημαίνει επίσης τη συμμετοχή των πελατών στην ανάπτυξη, κατασκευή και παράδοση προϊόντων υψηλής ποιότητας. Εδώ μπορείτε να ρίξετε μια ματιά στο Agile, πώς λειτουργεί και κάποιες βέλτιστες πρακτικές για αυτή τη δημοφιλή μέθοδο ανάπτυξης λογισμικού.

Συνοπτική παρουσίαση του κύκλου ζωής του λογισμικού ανάπτυξης

Ο κύκλος ζωής ανάπτυξης λογισμικού (SDLC) είναι η διαδικασία δημιουργίας λύσεων λογισμικού ή η τροποποίηση των υφιστάμενων δομών που προορίζονται να καλύψουν ένα συγκεκριμένο πρόβλημα. Περιλαμβάνει διάφορα βήματα, τα οποία ακολουθούνται με λογική σειρά. Στα παραδοσιακά μοντέλα SDLC, αυτά είναι τα βήματα που ακολουθούνται το ένα μετά το άλλο και εκτελούνται συνήθως μεμονωμένα:


  1. Ανάκτηση απαιτήσεων από τους πελάτες
  2. Ανάλυση συστήματος και σκοπιμότητας
  3. Σχεδιασμός και μοντελοποίηση
  4. Κωδικοποίηση ή εφαρμογή
  5. Δοκιμές
  6. Ανάπτυξη και παράδοση
  7. Συντήρηση και αιτήματα αλλαγής

Σε έναν τυπικό κύκλο ανάπτυξης λογισμικού, οι πραγματικοί χρήστες ή πελάτες εμπλέκονται στη διαδικασία συλλογής απαιτήσεων και στη συνέχεια κατά τη διάρκεια δοκιμών beta. Ωστόσο, το πρόβλημα με αυτό το παραδοσιακό μοντέλο είναι ότι το τμήμα συντήρησης του κύκλου γίνεται μια δύσκολη και μάλλον δαπανηρή υπόθεση. Πολλές φορές, δεν υπάρχει περιθώριο για βελτιώσεις ή αλλαγές στο σύστημα. Σε μια χειρότερη περίπτωση, το λογισμικό που έχει κατασκευαστεί ή αναπτυχθεί δεν είναι σύμφωνο με τις πραγματικές προδιαγραφές και προσδοκίες του πελάτη, πράγμα που σημαίνει ότι η ομάδα ανάπτυξης μπορεί να χρειαστεί να ξεκινήσει ολόκληρη τη διαδικασία ξανά.

Γιατί οι Agile Developments είναι διαφορετικές

Τα πιο συνηθισμένα παραδοσιακά μοντέλα SDLC - το μοντέλο καταρράκτη, το μοντέλο ταχείας εφαρμογής, το επαναληπτικό μοντέλο, το μοντέλο σπειροειδών κλπ. - έχουν το δικό τους σύνολο πλεονεκτημάτων και μειονεκτημάτων. Χρειάστηκαν αιώνες προτού οι άνθρωποι να μπορέσουν πραγματικά να αναλύσουν πόσο ρεαλιστικά ήταν αυτά τα μοντέλα. Ταιριάζουν απόλυτα σε ιδανικά σενάρια, αλλά δεν ήταν πάντα πρακτικά όταν ήρθε σε πραγματικές εφαρμογές. Ως αποτέλεσμα, οι ομάδες ανάπτυξης λογισμικού αντιμετώπισαν πολλές προκλήσεις. Μερικοί από τους περιορισμούς των συμβατικών μοντέλων SDLC περιλαμβάνουν:


  • Δεν επιτρέπουν την αλλαγή των απαιτήσεων στα μεταγενέστερα στάδια, επειδή αυτά έχουν παγώσει στο έγγραφο προδιαγραφών απαιτήσεων λογισμικού. Σε ορισμένες περιπτώσεις, οι προσδοκίες των χρηστών παραμένουν ασαφείς ή παρεξηγημένες.
  • Οι τελικοί χρήστες δεν βλέπουν το σύστημα μέχρι να ολοκληρωθεί. Αυτό παρέχει πολύ λίγα περιθώρια για την υποβολή προτάσεων και αλλαγών.
  • Η παραδοσιακή SDLC μπορεί να δημιουργήσει ένα τεράστιο χάσμα επικοινωνίας μεταξύ προγραμματιστών και δοκιμαστών, καθώς είναι ξεχωριστές φάσεις και δεν υπάρχει συνεργασία μεταξύ των δύο μερών.
  • Η δοκιμή λευκού κουτιού δεν μπορεί να γίνει αποτελεσματικά.

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

Ευέλικτες πρακτικές

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

Παρόλο που δεν υπάρχει πλήρης κατάλογος αρχών Agile, υπάρχουν ορισμένες πρακτικές που διαδίδει ο Agile. Αυτά περιλαμβάνουν:

  1. Δοκιμαστική Ανάπτυξη (TDD)
    Στην ιδανική περίπτωση, οι προγραμματιστές θα πρέπει πρώτα να γράψουν δοκιμαστικές περιπτώσεις για το κομμάτι λειτουργικότητας που πρόκειται να κωδικοποιήσουν. Αυτό θα εξασφαλίσει κώδικα καλής ποιότητας, ο οποίος είναι λιγότερο πιθανό να σπάσει σε εξαιρετικές συνθήκες. Αυτή η διαδικασία βοηθά επίσης να διασφαλιστεί ότι οι προδιαγραφές των χρηστών έχουν αντιμετωπιστεί.
  2. Προγραμματισμός ζευγών
    Στην ανάπτυξη του Agile, οι προγραμματιστές γενικά εργάζονται για το ίδιο πρόβλημα σε ζεύγη, όπου ένα άτομο γράφει τον κώδικα (οδηγός) και το άλλο εξετάζει τον κώδικα και παρέχει ιδέες και προτάσεις (πλοηγός). Αυτό αυξάνει την παραγωγικότητα και μειώνει τον απαιτούμενο χρόνο για την αναθεώρηση του κώδικα.
  3. Επαναπροσδιορισμός κώδικα
    Ο επαναπροσδιορισμός κώδικα περιλαμβάνει την κατανομή του κώδικα σε μικρότερες και απλούστερες μονάδες που μπορούν (και πρέπει) να υπάρχουν ανεξάρτητα στο ιδανικό σενάριο. Αυτό βελτιώνει σε μεγάλο βαθμό την αναγνωσιμότητα, τη δυνατότητα δοκιμής και τη δυνατότητα συντήρησης του κώδικα.
  4. Ενεργός συμμετοχή από πραγματικούς ενδιαφερόμενους
    Μετά από τακτά χρονικά διαστήματα μιας ορισμένης χρονικής περιόδου (που αναφέρεται ως "ss"), οι πελάτες θα πρέπει να λαμβάνουν ένα σημαντικό πρωτότυπο εργασίας του λογισμικού. Αυτό επιτρέπει στους προγραμματιστές να λαμβάνουν ανατροφοδότηση σχετικά με το τι χτίζουν καθώς κινούνται.
  5. Αντιμετώπιση των απαιτήσεων ως προκαθορισμένης στοίβας
    Στην Agile, είναι σημαντικό να κατηγοριοποιηθούν οι απαιτήσεις με βάση τη σημασία τους. Αυτό μπορεί να περιλαμβάνει τόσο τις έμμεσες, όσο και τις σαφείς προσδοκίες των πελατών σχετικά με το προϊόν λογισμικού που αναπτύσσεται. Η ομάδα ανάπτυξης λογισμικού θα πρέπει να εκτιμήσει συλλογικά τον χρόνο και τους πόρους που πρόκειται να επενδύσουν στην υλοποίηση του χαρακτηριστικού, καθώς και τον χάρτη με βάση τις απαιτήσεις των χρηστών και τη σχετική σειρά με την οποία θα ασχοληθεί με κάθε μέρος του έργου.
  6. Δοκιμή παλινδρόμησης
    Ο έλεγχος παλινδρόμησης περιλαμβάνει τη δοκιμή της λειτουργίας μιας ολόκληρης εφαρμογής μετά την προσθήκη ενός νέου χαρακτηριστικού ή την τροποποίηση της υπάρχουσας λειτουργικότητας στον κώδικα. Αυτό βοηθά να διασφαλιστεί ότι οι αλλαγές δεν έχουν παραβιάσει τον υπάρχοντα κώδικα.

Γιατί να πάτε ευκίνητος;

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

No Bugs, No Stress - Ο οδηγός σας βήμα προς βήμα για τη δημιουργία λογισμικού που αλλάζει τη ζωή χωρίς να καταστρέφει τη ζωή σας

Δεν μπορείτε να βελτιώσετε τις δεξιότητες προγραμματισμού σας όταν κανείς δεν ενδιαφέρεται για την ποιότητα του λογισμικού.