Kluczowa różnica: programista to osoba zajmująca się aspektami procesu tworzenia oprogramowania. Ich praca obejmuje projektowanie, wdrażanie i testowanie oprogramowania. Z kolei inżynier oprogramowania jest praktykiem inżynierii oprogramowania. Stosują zasady inżynierii do projektowania, opracowywania, utrzymywania, testowania i oceny oprogramowania i systemów, które sprawiają, że komputery lub wszystko, co zawiera oprogramowanie, działa.
Programista oprogramowania to osoba zajmująca się aspektami procesu tworzenia oprogramowania. Ich praca obejmuje projektowanie, wdrażanie i testowanie oprogramowania. Z kolei inżynier oprogramowania jest praktykiem inżynierii oprogramowania. Stosują zasady inżynierii do projektowania, opracowywania, utrzymywania, testowania i oceny oprogramowania i systemów, które sprawiają, że komputery lub wszystko, co zawiera oprogramowanie, działa. Stąd można twierdzić, że praca inżyniera oprogramowania ma większy zakres.
Twórca oprogramowania opracowuje samodzielne oprogramowanie, które jest czymś więcej niż zwykłym programem. Angażuje się we wszystkie etapy rozwoju, projektowania i kodowania. Bierze udział w projektowaniu, programowaniu komputerowym lub zarządzaniu projektami oprogramowania. Deweloper może przyczynić się do przeglądu projektu na poziomie aplikacji, a nie na poziomie komponentu lub poszczególnych zadań programistycznych. W ramach grupy 15-0000 Computer and Mathematical Occupations Major Group programistów można podzielić na jeden z trzech tytułów:
- 15-1131 Programistów komputerowych
- 15-1132 Programiści, aplikacje
- 15-1133 Deweloperzy oprogramowania, oprogramowanie systemowe
Praca programisty obejmuje:
- Projektowanie Oprogramowania
- Rzeczywista główna implementacja (programowanie, które jest często najważniejszą częścią tworzenia oprogramowania)
- Inne wymagane implementacje (np. Instalacja, konfiguracja, personalizacja, integracja, migracja danych)
- Udział w definiowaniu produktu programowego, w tym analiza biznesowa lub analiza luk
- Specyfikacja
- Analiza wymagań
- Opracowanie i udoskonalenie symulacji wyrzucania lub prototypów w celu potwierdzenia wymagań
- Analiza wykonalności i kosztów i korzyści, w tym wybór architektury aplikacji i ram, prowadzące do budżetu i harmonogramu projektu
- Tworzenie dokumentacji potrzebnej użytkownikom i partnerom wdrożeniowym itp.
- Testowanie, w tym definiowanie / wspieranie testów akceptacyjnych i gromadzenie informacji zwrotnych od testerów sprzed wydania
- Udział w pracach nad oprogramowaniem i działaniami po wydaniu, w tym wsparcie dla ewangelizacji wprowadzanych produktów (np. Opracowywanie demonstracji i / lub próbek) oraz analiza konkurencyjna dla kolejnych cykli budowy / wydania produktu
- Konserwacja