Βασική διαφορά: Ένας προγραμματιστής λογισμικού είναι ένα άτομο που ασχολείται με τις πτυχές της διαδικασίας ανάπτυξης λογισμικού. Η δουλειά τους περιλαμβάνει το σχεδιασμό, την υλοποίηση και τη δοκιμή του λογισμικού. Ένας μηχανικός λογισμικού, από την άλλη πλευρά, είναι επαγγελματίας μηχανικός λογισμικού. Εφαρμόζουν τις αρχές της μηχανικής στο σχεδιασμό, την ανάπτυξη, τη συντήρηση, τη δοκιμή και την αξιολόγηση του λογισμικού και των συστημάτων που κάνουν τους υπολογιστές ή οτιδήποτε περιέχει λογισμικό.
Ένας προγραμματιστής λογισμικού είναι ένα άτομο που ασχολείται με τις πτυχές της διαδικασίας ανάπτυξης λογισμικού. Η δουλειά τους περιλαμβάνει το σχεδιασμό, την υλοποίηση και τη δοκιμή του λογισμικού. Ένας μηχανικός λογισμικού, από την άλλη πλευρά, είναι επαγγελματίας μηχανικός λογισμικού. Εφαρμόζουν τις αρχές της μηχανικής στο σχεδιασμό, την ανάπτυξη, τη συντήρηση, τη δοκιμή και την αξιολόγηση του λογισμικού και των συστημάτων που κάνουν τους υπολογιστές ή οτιδήποτε περιέχει λογισμικό. Ως εκ τούτου, μπορεί να υποστηριχθεί ότι το έργο ενός μηχανικού λογισμικού έχει μεγαλύτερο πεδίο εφαρμογής.
Ένας προγραμματιστής λογισμικού αναπτύσσει αυτόνομο λογισμικό, το οποίο δεν είναι απλώς ένα απλό πρόγραμμα. Συμμετέχει σε όλες τις φάσεις της ανάπτυξης, του σχεδιασμού και της κωδικοποίησης. Συμμετέχει στο σχεδιασμό, στον προγραμματισμό υπολογιστών ή στη διαχείριση έργων λογισμικού. Ένας προγραμματιστής μπορεί να συμβάλει στην επισκόπηση του έργου σε επίπεδο εφαρμογής και όχι σε επιμέρους ή ατομικά καθήκοντα προγραμματισμού. Κάτω από την ομάδα 15-0000 Computer and Mathematical Occupations Major, οι προγραμματιστές λογισμικού μπορούν να ταξινομηθούν σε έναν από τους τρεις τίτλους:
- 15-1131 Προγραμματιστές υπολογιστών
- 15-1132 Προγραμματιστές Λογισμικού, Εφαρμογές
- 15-1133 Προγραμματιστές λογισμικού, λογισμικό συστημάτων
Η δουλειά ενός προγραμματιστή περιλαμβάνει:
- Σχεδιασμός λογισμικού
- Η πραγματική βασική εφαρμογή (ο προγραμματισμός που είναι συχνά το πιο σημαντικό τμήμα της ανάπτυξης λογισμικού)
- Άλλες απαιτούμενες υλοποιήσεις (π.χ. εγκατάσταση, διαμόρφωση, προσαρμογή, ολοκλήρωση, μεταφορά δεδομένων)
- Συμμετοχή στον ορισμό του λογισμικού, συμπεριλαμβανομένης της επιχειρηματικής περίπτωσης ή της ανάλυσης κενών
- Προσδιορισμός
- Ανάλυση απαιτήσεων
- Ανάπτυξη και βελτίωση των προσομοιώσεων ή πρωτοτύπων για την επιβεβαίωση των απαιτήσεων
- Σκοπιμότητα και ανάλυση κόστους-οφέλους, συμπεριλαμβανομένης της επιλογής της αρχιτεκτονικής εφαρμογής και του πλαισίου, που οδηγεί στον προϋπολογισμό και το χρονοδιάγραμμα για το έργο
- Δημιουργία τεκμηρίωσης από τους χρήστες και τους εταίρους υλοποίησης
- Δοκιμές, συμπεριλαμβανομένου του προσδιορισμού / υποστήριξης δοκιμών αποδοχής και συλλογής ανατροφοδοτήσεων από τους δοκιμαστές προ-αποδέσμευσης
- Συμμετοχή σε δραστηριότητες απελευθέρωσης λογισμικού και μετά την απελευθέρωση, συμπεριλαμβανομένης της υποστήριξης για την προβολή του προϊόντος ευαγγελισμού (π.χ. εκπόνηση διαδηλώσεων ή / και δειγμάτων) και ανταγωνιστική ανάλυση για τους επόμενους κύκλους κατασκευής / απελευθέρωσης προϊόντων
- Συντήρηση