Jaka jest różnica między architektem oprogramowania a inżynierem oprogramowania?

Najlepsza odpowiedź

Myślę, że tytuł architekta oprogramowania jest trochę nadużywany i często mylony z projektantem oprogramowania ( co jest kolejnym mylącym terminem, ponieważ nie ma nic wspólnego z projektowaniem jako przedsięwzięciem artystycznym.)

Moje definicje brzmiałyby:

Architekt oprogramowania – ta osoba zajmuje się blokami wysokiego poziomu. Łączność między systemami, wybór najlepszych technologii dla samych systemów i mapowanie wymagań biznesowych na wymagania inżynieryjne. Ma wystarczające doświadczenie, aby zrozumieć, kiedy na przykład należy używać push / pull, a kiedy pub / sub, lub kiedy baza danych NoSQL jest akceptowalna zamiast bazy danych SQL. Rozumie również koszty powstającej technologii (w zakresie wydajności i rzeczywistych kosztów operacyjnych). Wreszcie architekt musi rozumieć biznes, a nie tylko technologię.

Projektant oprogramowania – po ustaleniu architektury projektant jest odpowiedzialny za stworzenie właściwego projektu oprogramowania. Może stworzyć projekt dla każdego bloku architektonicznego, modelując odpowiednie klasy lub relacje z bazą danych. Może także definiować protokoły przewodowe, formaty plików itp.

Programista – po utworzeniu projektu programista wdraża projekt .

Pod względem ważności, decyzje podejmowane na poziomie architektonicznym są krytyczne i często są bardzo trudne i kosztowne do zmiany w przypadku popełnienia błędu. Błąd architektury może kosztować lata w złożonych systemach. Błąd projektowy może kosztować kilka sprintów. Błąd programowania można naprawić natychmiast po jego zidentyfikowaniu.

Pamiętaj też, że nie ma wymogu, aby jedna osoba nie mogła pełnić więcej niż jednej roli. W formalnych organizacjach architekt oprogramowania może być osobą starszą (lub nawet dyrektorem), przy czym projektant jest pewnego rodzaju kierownikiem zespołu, a programista jest indywidualnym współpracownikiem w tym zespole. Jednak w praktyce architekt oprogramowania zwykle nie opuszcza projektu po zakończeniu prac architektonicznych, a gdy prace architektoniczne spowalniają, zwykle angażuje się w projektowanie i programowanie.

Zastrzeżenie jest takie jednak architekt jest odpowiedzialny za wybór bloków technologicznych na podstawie ich zalet, a nie znajomości, w którym to przypadku może otrzymać wybór, w którym może niewiele wnieść na poziomie kodu. W takich przypadkach powinien wiedzieć najlepiej i zostawić wdrożenie do ekspertów dziedzinowych.

To tylko moja opinia, ale jestem pewien, że istnieje wiele innych interpretacji. Ponadto im prostsza aplikacja, tym bardziej zbędne stają się niektóre role. Do prostej aplikacji nie potrzebujesz architekta. Jeśli aplikacja jest wystarczająco prosta, możesz nawet nie mieć projektanta. Ale zawsze potrzebujesz kogoś, kto ją zaimplementuje.

Odpowiedź

Wiem, że to niegrzeczne i przykro mi, ale nie mogę uwierzyć, że ludzie (poza Edwardem Guy Capriolo) pisali długie odpowiedzi wyjaśniające różnicę między dwoma tytułami. „Architekci oprogramowania” istnieją tylko w filmach science fiction, takich jak Matrix.

Tytuł został wymyślony przez korporacyjnych biurokratów w celu ustalenia nowego przedziału wynagrodzeń spoza kadry kierowniczej, w którym osoba bez dyplomu MBA może zarobić sześć cyfr. Deweloperzy z H1B / L1 mogą zostać awansowani na „architektów”, aby utrzymać swoje wynagrodzenie, ponieważ wszyscy „zwykli” inżynierowie byli upoważnieni do bycia „zasobami rabatowymi”.

Kolejna rzecz, o której należy pamiętać: takie bezużyteczne stanowiska doradców są wypełniane przez krewnych i przyjaciół, więc nie ma żadnego oficjalnego zestawu umiejętności do nauczenia. Wartość „Architekta” jest niejasna i subiektywna co najmniej. TOGAF jest prawdopodobnie ostatecznym opisem obowiązków „architekta”. Dobrze przestudiowałem to gówno, aby pochwalić się nim podczas wywiadów „architektonicznych”. Jednak na co dzień moją specjalnością jest rozpoczynanie wielomilionowych projektów. I ożywianie wielu milionów niepowodzeń. Czy czyni mnie to „architektem”? Wiesz, wymaga dużo kodowania. I zero „frameworków” „architektury korporacyjnej”.

Po prostu edytuj swoje CV, zastępując wszystkie poprzednie tytuły stanowisk, aby pokazać „lata doświadczenia”. Następnie hojnie posypać żargonem „architektura korporacyjna” w CV. Pozwólcie mi spojrzeć na wersję mojego CV (inaczej dewelopera) opracowaną przez architekta. Tutaj. Skopiuj to dosłownie:

„Opracowaliśmy wizję zaawansowanej technologii i solidne możliwości architektury korporacyjnej w ramach IT. Zdefiniowana wspólna treść mapy drogowej. Opracował i wdrożył strategię architektury korporacyjnej składającą się z zasad, architektur referencyjnych, glosariuszy i taksonomii. Utrzymywanie ciągłej analizy trendów branżowych, technologicznych i rynkowych w celu określenia potencjalnego wpływu na przedsiębiorstwo. ”

Gratulacje! Zostałeś oficjalnie awansowany na „architekta przedsiębiorstwa”.Jedyne, co pozostaje do zrobienia, to wysłanie swojego nowego, dostojnego CV do pracodawców tworzących Wielki Łańcuch Żywnościowy Konsultingu IT – aby „posprzedawać” wszystko, co sprzedają: Oracle, IBM, Microsoft itp. Poprzez „diagramy architektury”: pakiety dostawców połączone wyimaginowaną „integracją”. Nie przejmuj się „technicznym mumbo-jumbo”. Jesteś architektem wysokiego szczebla, przedstawiającym strategiczną wizję równie dostojnym i nietechnicznym „interesariuszom na poziomie C”.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *