Τι είναι το SDLC; Εξηγούμενες φάσεις κύκλου ζωής ανάπτυξης λογισμικού, μεθοδολογίες και διαδικασίες

Ο Τζέιμς Τέιλορ, ο οποίος συνέταξε τη Διαχείριση έργων τεχνολογίας πληροφοριών , σημείωσε ότι ένας «κύκλος ζωής έργου περιλαμβάνει όλες τις δραστηριότητες ενός έργου». Και ο στόχος της ανάπτυξης συστημάτων είναι η πραγματοποίηση των απαιτήσεων του προϊόντος.

Εάν θέλετε να μάθετε πώς να δημιουργήσετε, να αναπτύξετε και να δημιουργήσετε λογισμικό υψηλής ποιότητας, θα θελήσετε να ακολουθήσετε ένα σχέδιο.

Όπως διατύπωσε ο Taylor, ο στόχος σας πρέπει να είναι να σκεφτείτε ολιστικά για όλες τις δραστηριότητες ενός έργου και πώς να διαχειριστείτε καλύτερα κάθε στάδιο.

Αλλά από πού πρέπει να ξεκινήσετε;

Μια απάντηση είναι να αξιοποιήσετε ένα πλαίσιο για να καθοδηγήσετε τη συμπεριφορά και τις ροές εργασίας σας.

Ένα ιδιαίτερα ισχυρό και δημοφιλές πλαίσιο ονομάζεται διαδικασία κύκλου ζωής ανάπτυξης λογισμικού (SDLC).

Σε αυτό το άρθρο θα σας καθοδηγήσω στα εξής:

  1. Πώς λειτουργεί το SDLC και γιατί χρησιμοποιείται
  2. Κάθε στάδιο SDLC και τις βέλτιστες πρακτικές και μεθοδολογίες που πρέπει να γνωρίζετε κατά τη χρήση του
  3. Θα ολοκληρώσω παραθέτοντας παραδείγματα για να δείξω τα οφέλη της προσέγγισης SDLC.

Πώς λειτουργεί το SDLC και γιατί χρησιμοποιείται

Το SDLC αποτελείται από έξι βήματα που έχω διαγράψει εδώ για αναφορά σας.

Συνολικά, το SDLC είναι ένας κλειστός βρόχος. Αυτό σημαίνει ότι κάθε βήμα επηρεάζει τις ενέργειες που ακολουθούν και κάθε στάδιο παρέχει καθοδήγηση προς τα εμπρός.

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

Επιδιώκω να πάρω την περίληψη και να δώσω παραδείγματα που εσείς, ως μαθητές και επαγγελματίες της ανάπτυξης λογισμικού, μπορείτε να συσχετίσετε πιο εύκολα.

Για παράδειγμα, εάν προσπαθείτε να δημιουργήσετε λογισμικό που έχει σχεδιαστεί για ωριαίους υπαλλήλους, όπως έχει κάνει το Zoomshift ή λογισμικό παρακολούθησης χρόνου, θα ξεκινήσετε στο στάδιο «ανάλυσης απαιτήσεων».

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

Μπορείτε να το κάνετε αυτό μιλώντας με ωριαία άτομα. Ίσως να ξεκινήσετε μια συνομιλία με διευθυντές που καθοδηγούν ωριαίες ομάδες εργαζομένων.

Μια άλλη ιδέα είναι ότι θα μπορούσατε να δοκιμάσετε λύσεις στην αγορά για να κατανοήσετε καλύτερα τις παγίδες του υπάρχοντος λογισμικού.

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

Μόνο αφού κατανοήσετε βαθιά αυτά τα σημεία πόνου θα είστε έτοιμοι να πάτε στην επόμενη φάση του SDLC.

Μόνο τότε μπορείτε να ξεκινήσετε τη φάση προγραμματισμού.

Η φάση ανάλυσης απαιτήσεων μπορεί να είναι κουραστική.

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

Σκεφτείτε πέρα ​​από την παρακολούθηση του χρόνου.

Σκεφτείτε τι θέλετε να δημιουργήσετε και πού βρίσκονται τα τεχνολογικά σας πάθη.

Βρείτε τις απαιτήσεις για την επίλυση προβλημάτων σε αυτόν τον τομέα. Εδώ ξεκινάς.

Στάδια SDLC και βέλτιστων πρακτικών και μεθοδολογιών

Κάθε βήμα πρέπει να ολοκληρωθεί πριν προχωρήσουμε στην επόμενη φάση του ταξιδιού ανάπτυξης.

Το πιο σημαντικό, τα πρώτα τρία βήματα επιδιώκουν να δημιουργήσουν απαντήσεις σε ερωτήσεις και τα τρία τελευταία βήματα είναι βελτιστοποιημένα για να παρέχουν αποτελέσματα.

  • Ανάλυση απαιτήσεων
  • Απάντηση: ποια προβλήματα πρέπει να λυθούν;
  • Σχεδίαση
  • Απάντηση: τι θέλουμε να κάνουμε;
  • Αρχιτεκτονικός / σχεδιασμός λογισμικού
  • Απάντηση: Πώς επιτυγχάνουμε τον στόχο μας;
  • Ανάπτυξη λογισμικού
  • Λύστε: Ας χτίσουμε
  • Δοκιμές
  • Λύστε: Ας διασφαλίσουμε ότι έχουμε κατασκευάσει έργα
  • Ανάπτυξη
  • Λύση: Ας πάρουμε τη λύση μας και χρησιμοποιήστε την.

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

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

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

Φάση # 1: Ανάλυση απαιτήσεων

Αυτό το στάδιο του SDLC σάς αναγκάζει να λάβετε σχόλια και αγοραστικά μέσα από σχετικούς εσωτερικούς και εξωτερικούς φορείς.

Σκεφτείτε τα προηγούμενα παραδείγματα με την ανάπτυξη λογισμικού παρακολούθησης χρόνου. Θα πρέπει να σκεφτείτε γενικά ποιοι είναι οι «χρήστες» σας.

Ορισμένες ιδέες περιλαμβάνουν τους πελάτες, τους σχεδιαστές, το αφεντικό σας ή άλλους τεχνικούς εκπροσώπους της ομάδας.

Τελικά ψάχνετε να απαντήσετε σε αυτήν την ερώτηση: ποια προβλήματα πρέπει να λυθούν; Θεωρώ χρήσιμο στην πρώτη φάση να κρατάτε σημειώσεις και να ακούω ενεργά.

Όταν αισθάνεστε πολύ άνετα με τις απαντήσεις σας, μπορείτε να προχωρήσετε στην επόμενη φάση.

Φάση # 2: Σχεδιασμός

Προσπαθείτε να απαντήσετε σε αυτήν την ερώτηση: τι θέλουμε να κάνουμε; Αυτή η ερώτηση μπορεί να σας εμπνεύσει να κατανοήσετε τις οικονομικές μονάδες του σχεδίου σας (κόστος και οφέλη), παράγοντες μετριασμού του κινδύνου και αναμενόμενες τιμές.

Όπως και ο προγραμματισμός για διακοπές, πρέπει να οργανώσετε τα υπάρχοντά σας και να σκεφτείτε τι τσάντες θα συσκευάσετε.

Εδώ είναι ένα σχετικό παράδειγμα.

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

Ο τρόπος με τον οποίο οι χρήστες θα αλληλεπιδρούν με το προϊόν ήταν ακόμη άγνωστος.

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

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

Πάντα κοιτούσαν ένα βήμα μπροστά και σκέφτονταν το μέλλον της κοινωνικής ανταλλαγής και των αγορών ηλεκτρονικού εμπορίου.

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

Φάση # 3: Αρχιτεκτονικός / σχεδιασμός λογισμικού

Σε αυτό το στάδιο γνωρίζετε ποιες είναι οι απαιτήσεις σας και τι θέλετε.

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

Ίσως δημιουργείτε λογισμικό που θέλετε να είναι ασφαλές, υψηλής απόδοσης, ανθεκτικό και αποτελεσματικό. Ποιες από αυτές τις αρχές είναι πιο σημαντικές για εσάς και γιατί;

Συμφωνούν οι ενδιαφερόμενοι από την πρώτη φάση; Βεβαιωθείτε ότι οι ενδιαφερόμενοι είναι πλήρως ευθυγραμμισμένοι.

Μετά τη φάση του σχεδιασμού θα αρχίσετε να βάζετε «χέρια στα πληκτρολόγια» και οι αλλαγές θα γίνουν πιο δαπανηρές από την άποψη του χρόνου και των χρημάτων που ξοδεύετε. Το μικρό μεταβλητό κόστος θα αυξηθεί.

Υπάρχουν μερικοί πυλώνες σχεδιασμού που σας συμβουλεύω να λάβετε υπόψη κατά τη διάρκεια αυτής της φάσης: λειτουργική υπεροχή, ασφάλεια, αξιοπιστία, αποδοτικότητα απόδοσης και βελτιστοποίηση κόστους.

Χρησιμοποιήστε αυτούς τους κάδους για να λάβετε τελικές αποφάσεις σχεδιασμού.

Φάση # 4: Ανάπτυξη λογισμικού

Αυτή είναι η φάση κατασκευής στην οποία προσπαθείτε να μην απαντήσετε σε ερωτήσεις αλλά να παράγετε αποτελέσματα.

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

Όταν ξεκινάτε την κατασκευή, είναι σημαντικό να ακολουθήσετε τις τρεις πρώτες φάσεις, έτσι ώστε η παραγωγή σας να ευθυγραμμίζεται με τις προσδοκίες.

Βγάλτε τον υπολογιστή σας, βεβαιωθείτε ότι το περιβάλλον σας είναι κατάλληλο για εργασία, πιάστε έναν καφέ και μια κούπα πιο ζεστή και ενεργοποιήστε την οθόνη σας.

Σε αυτήν τη φάση μπορείτε να κερδίσετε την εμπιστοσύνη των ενδιαφερομένων με την ενσωμάτωση της νοοτροπίας ενός οικοδόμου.

Φάση # 5: Δοκιμή

Συνήθιζα να βλέπω τους συναδέλφους να φορούν μπλουζάκια που έλεγαν τα εξής: «Κτίριο βράχων, δοκιμές όχι τόσο πολύ»

Δεν μπορείτε να δημιουργήσετε μια τελική έκδοση ενός προϊόντος χωρίς να φάτε τη δική σας «τροφή για σκύλους».

Με την ολοκλήρωση αυτής της φάσης μπορείτε να διασφαλίσετε ότι αυτό που έχετε κατασκευάσει λειτουργεί. Ψάξτε για σφάλματα ή ελαττώματα. Λάβετε δεύτερες απόψεις.

Εξετάστε βαθιά για να βρείτε σφάλματα που θα επιβραδύνουν την κυκλοφορία του τελικού προϊόντος σας. Εξασφαλίστε ισχυρές βασικές αρχές.

Φάση # 6: Ανάπτυξη

Πηγαίνετε να πάρετε τη λύση σας και χρησιμοποιήστε την. Εκτόξευση. Ζωντανά.

Ζητήστε από τους ενδιαφερόμενους από τη πρώτη φάση να χρησιμοποιήσουν το λογισμικό σας στο φυσικό περιβάλλον. Γιορτάζω. Ξεκινήστε να μετράτε την αφοσίωση στις πωλήσεις.

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

Φέρνοντας τα πάντα μαζί: Η προσέγγιση SDLC

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

Το SDLC είναι ιδιαίτερα χρήσιμο στον κόσμο της ανάπτυξης λογισμικού επειδή σας αναγκάζει να "χρωματίσετε μέσα στις γραμμές".

Με άλλα λόγια, το SDLC θα σας αναγκάσει να ακολουθήσετε τα βήματα και να διασφαλίσετε ότι κάνετε τις σωστές ενέργειες τη σωστή στιγμή και για τους σωστούς λόγους.

Σκεφτείτε το SDLC ως σχέδιο για την επιτυχία. Η παρακολούθηση τυφλά δεν διασφαλίζει τίποτα - αλλά αυξάνει την πιθανότητα να είστε ικανοποιημένοι με τα αποτελέσματα.

Η ανάπτυξη λογισμικού - όπως όλοι γνωρίζουμε - είναι ένας ευρύς τομέας και μπορεί να καλύψει εργαλεία σχεδίασης ιστότοπων και διαδικτυακές φόρμες σε πιο ισχυρά συστήματα μηχανικής μάθησης ή συστήματος υποστήριξης.

Ανεξάρτητα από το εάν κωδικοποιείτε ή όχι στο πρόγραμμα περιήγησης ή κάνετε πιο ισχυρές εργασίες ανάπτυξης, χρειάζεστε ένα σχέδιο δράσης.

Η δημιουργία λογισμικού μπορεί να είναι δύσκολη.

Μπορεί επίσης να είναι ικανοποιητικό. Το SDLC είναι ένας οδηγός για τεχνική εργασία, αλλά γενικότερα μπορεί να θεωρηθεί ως οδηγός στη ζωή.

Μπορείτε να αναπτύξετε SDLC σε πολλούς τομείς.

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

Το SDLC είναι επίσης ένα εξαιρετικό πλαίσιο για επιχειρηματίες τεχνολογίας.

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

Τον ρώτησα: ποια προβλήματα ψάχνετε να λύσετε; Τι θέλουν οι χρήστες σας; Και τέλος, πώς θα σας βοηθούσε αυτή η πλατφόρμα να επιτύχετε αυτούς τους στόχους;

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

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

Συνέχισε να κατασκευάζει αναμφισβήτητα την καλύτερη υπηρεσία ανάπτυξης Instagram που γνωρίζω. Αλλά το πεδίο του εξελίσσεται συνεχώς.

Τώρα υπάρχει λογισμικό για την εκτέλεση του ρόλου ενός προγραμματιστή κοινωνικών μέσων σε κλίμακα. Τελικά θα πρέπει να επιστρέψει στα βασικά: ανάλυση απαιτήσεων.

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

Εξ ου και ο κύκλος συνεχίζεται.

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

Το "Building rock" πρέπει να είναι το North Star σας.

Το SDLC είναι ένα εργαλείο που θα σας καθοδηγήσει στην πορεία.