Το 80/20 επηρεάζει επίσης τον προγραμματισμό

Όλοι έχουμε ακούσει για τον κανόνα 80/20, αυτός που λέει ότι το 80% της επιτυχίας μας (εφέ) προέρχεται από μόνο το 20% των ενεργειών μας (αιτίες). Λοιπόν, αυτή η καθολική αλήθεια επηρεάζει επίσης την ανάπτυξη λογισμικού, και σε αυτό το άρθρο πρόκειται να ξεδιπλώσουμε μερικές από τις βασικές αρχές αυτής της δήλωσης.

BPM

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

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

Έργα λογισμικού

Σήμερα υπάρχουν πολλές μεθοδολογίες για την ανάπτυξη έργων, υπάρχουν ευέλικτες, παραδοσιακές, μικτές κ.λπ. κ.λπ. Ένα κοινό σημείο είναι όλα παρασκευή. Τι εννοώ με αυτό; Ότι το 80% της επιτυχίας σας σε αυτό το έργο λογισμικού θα βασιστεί στο πρώτο 20% ολόκληρης της διαδικασίας, η προετοιμασία. 

Προετοιμασία ενός έργου

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

Καθώς πολλοί από αυτούς που διαβάζουν αυτά τα άρθρα εργάζονται ή σχετίζονται με την τεχνολογία, αξίζει να σημειωθεί ότι εάν κάποια στιγμή στην επαγγελματική τους ζωή βρουν μια εταιρεία / προμηθευτή που δεν πληροί μια καλή προετοιμασία, είναι σχεδόν 80% σίγουρο 😛 ότι η εργασία δεν θα λειτουργήσει.

Η αφαίρεση είναι το κλειδί

Αυτό είναι κάτι που έχω μάθει από την εποχή μου χρησιμοποιώντας το GNU / Linux και αποδεικνύει ξανά και ξανά ότι είναι το κλειδί στη διαδικασία δημιουργίας λογισμικού. Η χωρητικότητα του αφηρημένη προβλήματα για να τα μετατρέψουμε σε πιο «απλά» πράγματα είναι ζωτικής σημασίας για να μπορέσουμε να δημιουργήσουμε κομψό κώδικα, και πάνω απ 'όλα Duradero. Και ίσως αυτή είναι μια από τις κύριες διαφορές μεγάλων επαγγελματικών έργων και έργων που ξεφεύγουν από τον έλεγχο. Οι πρώτοι σκέφτονται, κατανοούν και δομούν η διαδικασία ενώ τα δευτερόλεπτα κρατούν δουλεύοντας χωρίς να χρειάζεται να το καταλάβω.

Stager

Αυτό είναι το όνομα του έργου που αναπτύσσει το πρόγραμμα εγκατάστασης του Gentoo, όπως μπορείτε να φανταστείτε, ότι πρόκειται για μια πολύπλοκη διαδικασία, καθώς υποστηρίζει μεγάλο αριθμό αρχιτεκτονικών. Ένας άλλος παράγοντας που πρέπει να ληφθεί υπόψη είναι ο αριθμός των διαμορφώσεων που υποστηρίζει, σε επίπεδο πυρήνα, σύστημα init κ.λπ. Και σας το πω όλα αυτά γιατί είναι επίσης το διατριβικό μου έργο, το οποίο πρέπει να τελειώσω πριν τελειώσω τη μελέτη. Προφανώς, δεν μπορώ να κάνω ένα πρόγραμμα που μελετά απολύτως όλες τις πιθανές επιλογές σε τόσο σύντομο χρονικό διάστημα (μέχρι τον Ιούλιο του επόμενου έτους), αλλά τουλάχιστον μπορώ να δημιουργήσω ένα που επιτρέπει την εγκατάσταση ενός λειτουργικού συστήματος με έναν πολύ βασικό τρόπο.

Κατανόηση της διαδικασίας εγκατάστασης

Χάρη στα εργαλεία BPM, μπορεί να δημιουργηθεί ένα διάγραμμα διεργασιών που μας επιτρέπει να κατανοήσουμε τα απαραίτητα βήματα για την επιτυχή εγκατάσταση του Gentoo σε έναν υπολογιστή.

Διαδικασία εγκατάστασης Gentoo

Τα δικά. Christopher Diaz Riveros

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

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

Υποεπεξεργασία "πυρήνας"

Τα δικά. Christopher Diaz Riveros

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

Εξοικονόμηση χρόνου

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

Η διευκόλυνση των έργων έγινε εύκολη

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


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.

  1.   Αλέξανδρος mayorga Muñoz dijo

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

    1.    ChrisADR dijo

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