Προγραμματισμός

Δημιουργία μοντέλου της αλυσίδας εφοδιασμού λογισμικού

Η τυπική απεικόνιση μιας ροής αξίας ανάπτυξης λογισμικού ξεκινά με κωδικοποίηση και τελειώνει με κώδικα στην παραγωγή. Συχνά βλέπετε διαγράμματα devops που ξεκινούν με «την επιχείρηση» και τελειώνουν με «τον πελάτη». Ωστόσο, αυτή η απεικόνιση δεν αντικατοπτρίζει με ακρίβεια την πολυπλοκότητα της παράδοσης λογισμικού σε επιχειρησιακή κλίμακα.

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

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

Ποια είναι η αλυσίδα εφοδιασμού;

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

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

Οι ακόλουθες δραστηριότητες είναι μόνο μερικές από τις σημαντικές πτυχές όλων των αλυσίδων εφοδιασμού, αλλά για λογισμικό εκτελούνται μοναδικά:

Σχεδίαση

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

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

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

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

Προμήθεια

Στην παραδοσιακή αλυσίδα εφοδιασμού, η προμήθεια συστατικών περιλαμβάνει διαχείριση σχέσεων με προμηθευτές και ανάπτυξη στρατηγικών προμηθειών ανταλλακτικών και υλικών. Το λογισμικό βασίζεται επίσης σε εξαρτήματα που προέρχονται - σύμφωνα με πρόσφατη έρευνα της Sonatype, το open source αποτελεί πλέον την πλειονότητα των προϊόντων λογισμικού: έως και 80 έως 90 τοις εκατό του κώδικα στις σύγχρονες εφαρμογές προέρχεται από στοιχεία ανοιχτού κώδικα. Και αυτά τα στοιχεία δημιουργούν μοναδικές διαχειριστικές προκλήσεις.

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

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

Κατανομή

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

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

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

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

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

Εργαλεία

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

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

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

συμπέρασμα

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

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

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