Ključna razlika: programer je osoba koja se bavi aspektima procesa razvoja softvera. Njihov posao uključuje projektiranje, implementaciju i testiranje softvera. Softverski inženjer, s druge strane, praktičar je programskog inženjerstva. Oni primjenjuju načela inženjeringa na dizajn, razvoj, održavanje, testiranje i ocjenjivanje softvera i sustava koji čine računala ili nešto što sadrži softverski rad.

Programer je osoba koja se bavi aspektima procesa razvoja softvera. Njihov posao uključuje projektiranje, implementaciju i testiranje softvera. Softverski inženjer, s druge strane, praktičar je programskog inženjerstva. Oni primjenjuju načela inženjeringa na dizajn, razvoj, održavanje, testiranje i ocjenjivanje softvera i sustava koji čine računala ili nešto što sadrži softverski rad. Stoga se može tvrditi da posao softverskog inženjera ima veći opseg.
Programer razvija samostalni softver, što je više od jednostavnog programa. Uključuje se u sve faze razvoja, dizajna i kodiranja. Sudjeluje u dizajnu, računalnom programiranju ili upravljanju softverskim projektima. Programer može pridonijeti pregledu projekta na aplikacijskoj razini, a ne na komponentnim ili pojedinačnim programskim zadacima. Pod grupom 15-0000 Computer and Mathematical Occupations Major Group, razvijatelji softvera mogu se svrstati u jedan od 3 naslova:
- 15-1131 Računalni programeri
- 15-1132 Programeri, aplikacije
- Programeri softvera, softverski sustavi
Posao razvojnog programera uključuje:
- Dizajn softvera
- Stvarna implementacija jezgre (programiranje koje je često najvažniji dio razvoja softvera)
- Ostale potrebne implementacije (npr. Instalacija, konfiguracija, prilagodba, integracija, migracija podataka)
- Sudjelovanje u definiranju softverskih proizvoda, uključujući analizu poslovnih slučajeva ili nedostataka
- Specifikacija
- Analiza zahtjeva
- Razvoj i usavršavanje odbačenih simulacija ili prototipa za potvrdu zahtjeva
- Analiza izvodljivosti i troškova-koristi, uključujući izbor arhitekture i okvira aplikacije, što dovodi do proračuna i rasporeda projekta
- Izrada dokumentacije potrebne korisnicima i implementacijskim partnerima itd.
- Testiranje, uključujući definiranje / podržavanje testiranja prihvatljivosti i prikupljanje povratnih informacija od testera prije puštanja u rad
- Sudjelovanje u izdanjima softvera i aktivnostima nakon puštanja u rad, uključujući podršku za evangelizaciju pri lansiranju proizvoda (npr. Razvoj demonstracija i / ili uzoraka) i analizu konkurentnosti za naknadne cikluse izgradnje / izdavanja proizvoda
- Održavanje
