Inżynieria oprogramowania to dla mnie dziedzina zajmująca się rozwiązywaniem problemów w sposób automatyczny przy użyciu oprogramowania.
Samo programowanie jest częścią inżynierii oprogramowania, ale towarzyszą temu jeszcze inne elementy, takie jak:
- zarządzanie projektem programistycznym
- zarządzanie zależnościami
- kontrola wersji
- zarządzanie releasami
- automatyczna kontrola jakości
- zarządzanie deploymentem
- zarządzanie danymi wejściowymi i wyjściowymi
- inżynieria procesu, którego nasze oprogramowanie jest częścią
- zarządzanie środowiskiem na którym proces działa
W moim odczuciu w pracy programisty coraz mniej jest stricte programowania, a coraz więcej pracy związanej z pozostałymi elementami i to będzie się nasilać. W efekcie uważam, że wkrótce rynek pracy nie będzie się szukał "programistów" tylko właśnie "inżynierów oprogramowania", dla których programowanie będzie jedną z umiejętności, niekoniecznie najtrudniejszą i najważniejszą. Wynika to z faktu, że duża część oprogramowania już po prostu istnieje, trzeba umieć go jedynie wykorzystać do swoich celów.