Ρόλος εργασίας: Μηχανικός λογισμικού

Συγγραφέας: Laura McKinney
Ημερομηνία Δημιουργίας: 2 Απρίλιος 2021
Ημερομηνία Ενημέρωσης: 1 Ιούλιος 2024
Anonim
Ποια σχολή Μηχανικών να επιλέξω; Νίκος Παυλάκος - Επαγγελματικός Προσανατολισμός
Βίντεο: Ποια σχολή Μηχανικών να επιλέξω; Νίκος Παυλάκος - Επαγγελματικός Προσανατολισμός

Περιεχόμενο


Πηγή: Dragonimages / Dreamstime.com

Πάρε μακριά:

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

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

Ωστόσο, υπάρχει πραγματικά μια πλούσια λεπτομέρεια και αποχρώσεις στην περιγραφή του τι οι μηχανικοί λογισμικού κάνουν στον κόσμο του λογισμικού. Θα πάμε σε κάποια από αυτά καθώς εξετάζουμε "μια μέρα στη ζωή" ενός μηχανικού λογισμικού που εργάζεται για να δημιουργήσει όλα τα υπέροχα ψηφιακά πράγματα που χρησιμοποιούμε κάθε μέρα. (Για να μάθετε περισσότερα σχετικά με το ρόλο από κάποιον στον τομέα, δείτε το How I Got Here: 12 ερωτήσεις με τον συγγραφέα και λογισμικό μηχανικού David Auerbach.)

Ο Κύκλος Ζωής Ανάπτυξης Λογισμικού

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


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

"Το λογισμικό ξεκινά με το πρόβλημα που προσπαθούμε να επιλύσουμε", λέει ο John Quigley στην Value Transformation LLC, περιγράφοντας τον συμβατικό κύκλο ζωής της ανάπτυξης λογισμικού ξεκινώντας με κάποια από αυτά που συμβαίνουν στην αρχή της διαδικασίας. "Αυτό θα αρθρωθεί σε κάποια μορφή εγγράφου και είναι το αποτέλεσμα συνεντεύξεων με πελάτες ή ανθρώπους που υποφέρουν από το πρόβλημα ... Το έγγραφο θα περιγράψει ποιο είναι το πρόβλημα που θα συμβάλει στη δημιουργία ιδεών που θα συγκριθούν με αυτό για λύση. Αυτός θα είναι ο στόχος για αυτό το έργο, καθορίζοντας αυτό που προσπαθούμε να επιτύχουμε ».

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


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

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

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

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

"Στον ευκίνητο κόσμο, τα πράγματα φαίνονται πολύ, αλλά οι επαναλήψεις είναι μικρότερες και πιο κοντά μαζί", λέει ο Quigley. "Η απαίτηση μπορεί να αντιμετωπιστεί μέσω ιστοριών χρηστών, λιγότερο τεχνικής φύσης και πιο γραπτή για να γίνει κατανοητή η εφαρμογή, ώστε οι μηχανικοί λογισμικού να μπορούν να κάνουν συμπεράσματα και να συναγάγουν βασικά χαρακτηριστικά που απαιτούνται βάσει της πραγματικής χρήσης".

Ο ποικίλος ρόλος του μηχανικού λογισμικού

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

"Ένας μηχανικός λογισμικού έχει ευρύτερο ρόλο από τους περισσότερους στη δημιουργία λύσεων λογισμικού", γράφει ο Samuel Malachowsky, καθηγητής στο Ινστιτούτο Τεχνολογίας του Rochester. "Κάθε στοιχείο του SDLC έχει ειδικούς: RE και πωλήσεις για αρχικά βήματα, αρχιτέκτονες για τη φάση σχεδιασμού, προγραμματιστές / προγραμματιστές για την κατασκευή, QA για επαλήθευση / δοκιμή, IT για ανάπτυξη / συντήρηση και διαχειριστές έργων για τη μετακίνηση και διαχείριση κάθε μέλος / φάση της ομάδας, αλλά οι Μηχανικοί Λογισμικού αναμένεται να εφαρμοστούν ευρέως σε ολόκληρη τη διαδικασία. Με δεδομένη αυτή την άποψη, μια καλύτερη ερώτηση θα μπορούσε να είναι να ρωτήσει τι δεν κάνει ένας Μηχανικός Λογισμικού. "

Εδώ είναι ένα άλλο ενδιαφέρον σημείο Malachowsky κάνει σχετικά με τη διαφορά μεταξύ της πληροφορικής και της μηχανικής λογισμικού που αποκαλύπτει πολλά για το τι είναι η δουλειά του μέσου μηχανικού λογισμικού σαν:

"Το IT είναι λειτουργικό και επαναλαμβανόμενο, ενώ η μηχανική περιστρέφεται γύρω από νέα προβλήματα που πρέπει να λυθούν ως μοναδικά έργα", λέει. "Το προσωπικό της πληροφορικής είναι πολύ πιθανότερο να επιδιώξει μεμονωμένες πιστοποιήσεις βάσει εργαλείων εξαιτίας αυτής της επανάληψης. Η αντίθεση με κάτι όπως η Μηχανική Υπολογιστών φαίνεται όπου πληρούνται οι απαιτήσεις - τα CE τείνουν να επικεντρώνονται στην επίλυση του προβλήματος με το υλικό, με το λογισμικό να το υποστηρίζει. Το SE επιλύει το πρόβλημα με το λογισμικό, με το υλικό που παρέχει υποστήριξη. "

Ο Μηχανικός Λογισμικού και οι Ομάδες Έργου

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

Ο Brennan Meagher περιγράφει ένα παράδειγμα από την TeleTracking, μια εταιρεία που πρωτοστατεί στην καινοτομία της υγειονομικής περίθαλψης στην Fierce Healthcare, στο Αμερικανικό Κολέγιο Ιατρών Έκτακτης Ανάγκης, στη Διαχείριση Δεδομένων Υγείας, στην IT News Healthcare και αλλού.

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

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

"Ένα παράδειγμα κάτι για το οποίο οι μηχανικοί λογισμικού είναι τακτικά υπεύθυνοι μπορεί να περιλαμβάνει: γραφή, εντοπισμό σφαλμάτων, δοκιμές μονάδων και κωδικούς δοκιμών απόδοσης σε όλα τα επίπεδα εφαρμογών", λέει ο Meaghan. "Αυτό περιλαμβάνει το front-end (web), το μεσαίο στρώμα (web services) και τα επίπεδα πρόσβασης δεδομένων."

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

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

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