Rola pracy: inżynier oprogramowania

Autor: Laura McKinney
Data Utworzenia: 2 Kwiecień 2021
Data Aktualizacji: 1 Lipiec 2024
Anonim
Inżynieria oprogramowania [Studiuję IT]
Wideo: Inżynieria oprogramowania [Studiuję IT]

Zawartość


Źródło: Dragonimages / Dreamstime.com

Na wynos:

Inżynier oprogramowania jest głęboko zaangażowany w cykl życia oprogramowania i odgrywa dużą rolę w powodzeniu projektu.

Co robi inżynier oprogramowania? Prosta odpowiedź brzmi: on lub ona jest zaangażowana w inżynierię oprogramowania, w proces stosowania zasad inżynierii do oprogramowania.

Jednak opisywanie tego, co robią inżynierowie w świecie oprogramowania, jest bogate w szczegóły i niuanse. Zajmiemy się tym, patrząc na „dzień z życia” inżyniera oprogramowania pracującego nad stworzeniem wszystkich wspaniałych cyfrowych rzeczy, których używamy na co dzień. (Aby dowiedzieć się więcej o roli od kogoś w tej dziedzinie, sprawdź Jak się tu dostałem: 12 pytań do autora i inżyniera oprogramowania Davida Auerbacha.)

Cykl życia oprogramowania

Aby zrozumieć rolę inżyniera oprogramowania, warto poznać cykl życia oprogramowania (SDLC).

Cykl życia oprogramowania obejmuje różne kluczowe fazy, często określane jako planowanie wymagań, projektowanie, kodowanie, testowanie, wdrażanie i dostarczanie (daj lub wykonaj kilka kroków zgodnie z zastrzeżonymi procesami).


„Oprogramowanie zaczyna się od problemu, który staramy się rozwiązać”, mówi John Quigley z Value Transformation LLC, opisując cykl życia tradycyjnego oprogramowania, zaczynając od tego, co dzieje się na początku tego procesu. „Zostanie to wyrażone w jakiejś formie dokumentu i jest wynikiem wywiadów z klientami lub osobami, które cierpią z powodu problemu… Dokument opisuje, jak wygląda problem, co pomoże wygenerować pomysły, które można porównać z rozwiązaniem. To będzie cel tej pracy, ustalenie, co staramy się osiągnąć. ”

Jak mówi, w fazie wymagań inżynierowie przedstawili szczegółowy opis techniczny produktu, zarówno sprzętu (jeśli taki istnieje), jak i oprogramowania.

Potem jest kodowanie: „Inżynierowie oprogramowania napiszą w kodzie określone oświadczenia, które wytworzą pożądany produkt spełniający określone wymagania”, mówi Quigley o fazie kodowania.

Po tym, jak mówi, testuje, a następnie kolejny zestaw kroków, które solidnie przybliżają oprogramowanie do środowiska produkcyjnego. Pod koniec procesu jest miejsce na różnorodne pomysły dotyczące wdrażania i wdrażania. Quigley dodaje również, że nowy „zwinny” model SDLC działa nieco inaczej.


Bez błędów, bez stresu - Twój przewodnik krok po kroku do tworzenia oprogramowania zmieniającego życie bez niszczenia życia

Nie możesz poprawić swoich umiejętności programistycznych, gdy nikt nie dba o jakość oprogramowania.

„W zwinnym świecie rzeczy wyglądają dużo, ale iteracje są mniejsze i bliższe siebie”, mówi Quigley. „Wymaganiem tym można sprostać dzięki historyjkom użytkowników, mniej technicznym i bardziej napisanym, aby zrozumieć aplikację, dzięki czemu inżynierowie oprogramowania mogą wyciągać wnioski i wydedukować kluczowe atrybuty na podstawie faktycznego zastosowania.”

Zróżnicowana rola inżyniera oprogramowania

Ponieważ cykl życia oprogramowania ma różne fazy i operacje, sensowne jest również, że praca inżyniera oprogramowania jest różna.

„Inżynier oprogramowania ma szerszą rolę niż większość w tworzeniu oprogramowania”, pisze Samuel Malachowsky, profesor w Rochester Institute of Technology. „W każdym elemencie SDLC znajdują się specjaliści: działy RE i sprzedaż na początkowe etapy, architekci na etapie projektowania, kodery / programiści na potrzeby kompilacji, kontrola jakości w celu weryfikacji / testowania, informatyka na potrzeby wdrażania / konserwacji oraz kierownicy projektów w zakresie przenoszenia i zarządzania każdy członek zespołu / faza, ale od inżynierów oprogramowania oczekuje się szerokiego zastosowania w całym procesie. Biorąc pod uwagę ten punkt widzenia, lepszym pytaniem może być pytanie, czego nie robi inżynier oprogramowania ”.

Oto kolejna interesująca uwaga Malachowsky'ego na temat różnicy między IT a inżynierią oprogramowania, która ujawnia wiele na temat pracy przeciętnego inżyniera oprogramowania:

„IT działa i jest powtarzalny, podczas gdy inżynieria koncentruje się wokół nowych problemów, które należy rozwiązać jako unikalne projekty”, mówi. „Z tego powodu personel IT znacznie częściej szuka indywidualnych certyfikatów opartych na narzędziach. Kontrastując z wyglądem inżynierii komputerowej, gdzie wymagania są spełnione - CE zwykle koncentrują się na rozwiązaniu problemu ze sprzętem, z oprogramowaniem obsługującym to. SE rozwiązują problem za pomocą oprogramowania ze sprzętem zapewniającym wsparcie. ”

Inżynier oprogramowania i zespoły projektowe

W wielu firmach inżynierowie oprogramowania są pogrupowani i oddelegowani do ról zgodnie z ich udziałem w złożonym procesie.

Brennan Meagher opisuje przykład firmy TeleTracking, która zajmuje czołowe miejsca w dziedzinie innowacji w służbie zdrowia w Fierce Healthcare, American College of Emergency Physicians, Health Data Management, Healthcare IT News i gdzie indziej.

„W TeleTracking inżynierowie oprogramowania są odpowiedzialni za kodowanie i testowanie wszystkich modułów i aplikacji wchodzących w skład platformy TeleTracking”, mówi Meagher. „Pomagają również w opracowywaniu rozwiązań i produkcji oprogramowania. Obejmuje to badanie, projektowanie, dokumentowanie i opracowywanie nowego oprogramowania. Krótko mówiąc, nasi inżynierowie oprogramowania tworzą rozwiązania programowe, które są zgodne z wizją techniczną TeleTrackings w celu poprawy dostępu do pacjentów. ”

Możesz wyobrazić sobie tych profesjonalistów w korporacyjnym kampusie, najpierw opracowując, a następnie dostosowując model, a następnie testując w zespołach, starannie przygotowując projekt do końca.

„Przykładem czegoś, za co inżynierowie oprogramowania są regularnie odpowiedzialni, może być: pisanie, debugowanie, testy jednostkowe i testy wydajności we wszystkich warstwach aplikacji” - mówi Meaghan. „Obejmuje to warstwę frontonu (sieć), warstwę środkową (usługi sieciowe) i warstwy dostępu do danych.”

Najważniejsze jest to, że inżynierowie oprogramowania mają różne, wyspecjalizowane zadania. Wszyscy muszą zrozumieć niektóre podstawy kodowania, ale niektóre z nich muszą zagłębić się w specyfikę testowania lub przejrzystość wymagań projektowych, aw niektórych przypadkach w świat zwinnego rozwoju.

Następnie pojawił się model DevOps, który połączył wiele iteracyjnych procesów, które zostały bardzo szczegółowo zarysowane i kategoryczne w modelu konwencjonalnym. Rola inżyniera oprogramowania zmienia się. (Aby dowiedzieć się więcej o DevOps, zobacz Menedżerowie DevOps wyjaśniają, co robią).

Daje to trochę do zrobienia, gdy postanowisz dowiedzieć się więcej o pracy tych centralnych specjalistów w produkcji oprogramowania. Inżynier oprogramowania został opisany jako „szwajcarski scyzoryk” do projektowania i tworzenia oprogramowania - i może skończyć noszeniem wielu czapek w zapracowanej firmie.