Czy inżynieria tworzenia oprogramowania? Jeśli nie, to jakich rzeczy brakuje, aby zostać zakwalifikowanym?
Tak, inżynieria oprogramowania to dziedzina inżynierii.
Wikipedia definiuje inżynierię jako „zastosowanie matematyki, a także wiedzy naukowej, ekonomicznej, społecznej i praktycznej w celu wymyślania, innowacji, projektowania, budowania, utrzymywania, badania i ulepszania konstrukcji, maszyn, narzędzi, systemów, komponentów, materiałów , procesy, rozwiązania i organizacje ”. Rezultatem inżynierii oprogramowania jest system oprogramowania, który może poprawić życie ludzi i może obejmować połączenie wiedzy naukowej, matematycznej, ekonomicznej, społecznej lub praktycznej.
Pod względem tego, jak jest postrzegany, pod względem naukowym i zawodowym, jest różny. Programy inżynierii oprogramowania mogą być akredytowane przez ABET jako programy inżynierskie. Inżynierowie oprogramowania mogą być członkami IEEE. Niektóre firmy uważają inżynierię oprogramowania za dyscyplinę inżynieryjną, podczas gdy inne nie - to naprawdę rzucanie się w oczy.
Najlepszą książką na ten temat jest profesjonalny rozwój oprogramowania Steve'a McConnella: krótsze harmonogramy, produkty wyższej jakości, więcej udanych projektów, ulepszone kariery . Wygląda na inżynierii oprogramowania jako zawodu, ewolucja od jednostki pływającej do zawodu, nauka o rozwoju oprogramowania, różnica między oprogramowania inżynierii i oprogramowania inżynierii (stosujące praktyki inżynierii oprogramowania w porównaniu z inżynierów, którzy akurat oprogramowania kompilacji ze studium przypadku, obejmuje moją alma mater ), certyfikację i licencje oraz etykę.
Glenn Vanderburg przeprowadził serię rozmów pod tytułem „Real Software Engineering”, które wygłosił w latach 2010–2015 na wielu konferencjach, a także dwie powiązane rozmowy: „Rzemiosło, inżynieria i esencja programowania” (podane w 2011 r. Jako keynote at RailsConf) oraz „Craft and Software Engineering” (dane w 2011 roku w QCon London). Myślę, że te rozmowy są dość kompleksowym argumentem przemawiającym za tym, dlaczego inżynieria oprogramowania jest dyscypliną inżynieryjną.
Jednym z argumentów, które Vanderburg krótko porusza w swoich rozmowach, jest argument Jacka W. Reevesa z 1992 r. (I ponownie zrewidowany w 2005 r.) Na temat tego, czym jest projektowanie oprogramowania i jak kod jest rezultatem działań związanych z projektowaniem inżynierii oprogramowania ( jest to również omówione na wiki wiki C2). Kiedy odejdziesz od starszych szkół myślenia, w których specyfikacja i modelowanie jest projektowaniem oprogramowania, a kodem jest projektowanie oprogramowania, niektóre związki między inżynierią oprogramowania i innymi dyscyplinami inżynierii stają się bardziej widoczne. Niektóre różnice i przyczyny tych różnic stają się jeszcze bardziej widoczne, gdy zobaczysz, że ekonomia tworzenia oprogramowania jest znacznie inna niż w wielu innych dyscyplinach - konstrukcja jest tania (w wielu przypadkach prawie darmowa), a projektowanie jest kosztowne.
Czy to [CMMI] przekształci rozwój w inżynierię?
Nie. CMMI to struktura doskonalenia procesów, która dostarcza wskazówek dla organizacji, jakie rodzaje działań są przydatne przy tworzeniu oprogramowania. Dyscypliny inżynierskie zazwyczaj mają proces inżynieryjny. Posiadanie takiego procesu jest ważne dla pomyślnego zakończenia projektów wysokiej jakości. To powiedziawszy, CMMI (lub jakakolwiek inna struktura procesu lub metodologia) to tylko jedno narzędzie - użycie go nie spowoduje magicznego przejścia od programisty do inżyniera. Jednak nie przestrzeganie jakiegoś procesu jest moim zdaniem oznaką projektu, który nie jest projektem inżynieryjnym.
Jakie jest twoje zdanie na temat kursów / certyfikatów inżynierii oprogramowania?
To tylko tyle wartości, ile wkładają w to inni ludzie. Są przydatne kursy i są bezużyteczne kursy. Są cenne certyfikaty i certyfikaty, które nie są warte papieru, na którym są drukowane. Istnieje wiele czynników, od tego, kto popiera kurs lub akredytuje go, lub kto wydaje certyfikat twojej obecnej branży zatrudnienia na obecną pracę i gdzie chcesz się udać.