Czy technologia informacyjna to tak naprawdę inżynieria? [Zamknięte]

13

Podczas podróży spotkałem matematyka, który siedział obok mnie. W dyskusji powiedział: „... w informatyce nie ma inżynierii, a raczej programowania ”. Prawdziwą inżynierią jest architektura, elektryczna i mechaniczna.

Zmusiło mnie to do myślenia i byłem zaskoczony. Procent mojego mózgu zgodził się również dlatego, że w armii indyjskiej nie ma przedmiotu takiego jak inżynieria komputerowa w Korpusie Inżynieryjnym. Nie uważają programowania za inżynierię. Tak słyszałem kilka lat temu. Nie wiem, co myśli teraz armia indyjska.

Jakie są twoje poglądy

RPK
źródło
5
Mój pogląd: jest po prostu zazdrosny, że otrzymujesz więcej: P
Simon
4
Moim zdaniem architektura to nie inżynieria
hiena
@ hiena - prawnie rzecz biorąc, są to różne zawody, a prawo (w zależności od jurysdykcji) określa, co to jest architektura, a co inżynieria.
Scott Whitlock,

Odpowiedzi:

17

Jeśli zastosujemy się do tego opisu , jesteśmy 75% inżynierami, lub 75% z nas to inżynierowie :)

W przeciwieństwie do innych dyscyplin inżynierskich:

  • twórcy oprogramowania nie potrzebują formalnego wykształcenia i / lub licencji
  • jest stosunkowo młodą dyscypliną i nie ma sprawdzonych najlepszych praktyk (na przykład budownictwo)

Myślę, że to się zmieni w przyszłości. Pewnego dnia będziemy w 100% inżynierami.


Inżynier

źródło: http://en.wikipedia.org/wiki/Engineer

Inżynier jest profesjonalnym praktykiem inżynierii, zajmującym się zastosowaniem wiedzy naukowej, matematyki i pomysłowości do opracowywania rozwiązań problemów technicznych.

Słowo „inżynier” pochodzi od łacińskiego root ingenium, co oznacza „spryt”.

Zawód

  • Inżynier ds. Nazw
  • Wpisz zawód
  • Sektory działalności Nauki stosowane

Opis

  • Kompetencje Matematyka, wiedza naukowa, umiejętności zarządzania
  • Wymagane wykształcenie Wykształcenie inżynierskie
  • Dziedziny zatrudnienia Badania i rozwój, przemysł, biznes
  • Powiązane oferty pracy Naukowiec, architekt, kierownik projektu
Branimir
źródło
15

Inżynieria oprogramowania to inżynieria, ale nie jest to informatyka czy programowanie. To tak, jak inżynieria mechaniczna to inżynieria, a fizyka lub spawanie nie.

Inżynieria oprogramowania to niezwykle młoda dziedzina (w porównaniu z innymi gałęziami inżynierii), której tak naprawdę trudno jest uczyć ludzi, ponieważ nie ma zbyt dużego doświadczenia. Tylko w ciągu ostatnich 20–25 lat oprogramowanie stało się tak duże i złożone, że samo programowanie nie wystarczy.

Z powodu tego niedostatku ustalonej wiedzy rzadko uczona jest faktyczna inżynieria oprogramowania. Jedynym sposobem, aby stać się przyzwoitym inżynierem oprogramowania, jest podążanie drogą rzemieślnika: mentoring w terenie. Więc chociaż inżynieria oprogramowania jest dyscypliną, bardzo niewielu jest w tej dziedzinie. Większość ludzi majstruje przy oprogramowaniu lub przerabia oprogramowanie.

back2dos
źródło
Masz na myśli, że inżynieria oprogramowania nie obejmuje programowania?
RPK
1
@RPK: trudno powiedzieć, ponieważ jestem bardziej majsterkowiczem oprogramowania :) Ale zasadniczo myślę, że programowanie polega na inżynierii oprogramowania, czym jest budynek na inżynierii lądowej. Pierwsza z nich kończy się chaosem bez drugiej, a druga nie ma sensu bez pierwszej, ale obie są stosunkowo różne.
back2dos
@ back2dos: Chciałbym się zgodzić. Myślę jednak, że inżynierowie oprogramowania prawie muszą umieć kodować, podczas gdy inżynierowie niekoniecznie muszą umieć spawać.
Michael K
1
Powiedz inżynierowi materiałowemu lub metalurgicznemu, że spawanie nie jest inżynierią, a on zgrzyta ci usta :)
Vitor Py
@Vitor Braga: O co ci chodzi? Naprawdę oczekiwałbym od dobrego inżyniera zrozumienia różnicy między inżynierią a rzemiosłem. Zastanawiam się także, ilu inżynierów metalurgicznych faktycznie wykonuje prace spawalnicze.
back2dos
14

Inżynierowie oprogramowania w firmie inżynierskiej to inżynierowie. Mówię o miejscach takich jak kontrahenci obronni, producenci sprzętu itp. Śledzimy rygorystyczne procesy w zakresie: tworzenia wymagań i dokumentacji projektowej, szczegółowej analizy, czy projekt spełni wymagania przed napisaniem kodu, przeprowadzania przeglądów kodu i testów jednostkowych, planowania oraz przeprowadzanie testów integracyjnych i kwalifikacyjnych. Dokumenty są sprawdzane przez zarządy partnerów i interesariuszy, testy są obserwowane przez organizację zapewniania jakości, a wyniki przedstawiane klientowi do formalnej akceptacji. Inżynieria oprogramowania stosowana w tych miejscach jest rygorystycznym procesem naukowym.

AShelly
źródło
1
100% uzgodnione. Pracuję w firmie zajmującej się infrastrukturą krytyczną. Mamy inżynier tutaj.
Paul Nathan
8

Jako prawdziwy P.Eng. Powiedziałbym, ogólnie, nie. Myślę jednak, że zarówno programiści, jak i inżynierowie wykonują znaczące projekty . Jeśli pytanie brzmiało: „Czy projektanci są projektantami?” Zdecydowanie powiedziałbym tak.

Inżynieria profesjonalny, jednak ma do czynienia z istotą prawną odpowiedzialność za swoje błędy, a przynajmniej ryzykując prawnej prawo wykonywania zawodu, jeśli swoje pomyłki. Nie ma znaczenia, jak źle jesteś programistą, możesz wyjść jutro i legalnie umieścić „programistę” w swoim CV. Z P.Eng. jeśli stracisz licencję, nie możesz nazywać się P.Eng.

Profesjonalna inżynieria została stworzona jako zawód samoregulujący się, w którym zawód i rząd uzgadniają pewne zadania, które mogą wykonywać wyłącznie licencjonowane osoby. Robią to ze względu na wzajemne zrozumienie, że praca stanowi poważne zagrożenie dla bezpieczeństwa publicznego.

Istnieją pewne urządzenia sterowane programowo, które muszą zostać ostemplowane przez Inżyniera, zanim będą mogły zostać sprzedane (mówię tutaj o przemysłowych urządzeniach bezpieczeństwa). Osoba, która przegląda i zatwierdza te projekty, jest inżynierem.

Scott Whitlock
źródło
Czy uważasz, że powodem, dla którego tworzenie oprogramowania nie jest regulowane w taki sam sposób, jak dziedziny inżynierii, jest ryzyko inne lub względna młodość programowania jako zawodu? W aplikacjach takich jak systemy sterowania urządzeniami medycznymi, systemy wojskowe i systemy symulacyjne wydaje się, że błędy programistyczne mogą powodować szkody w świecie rzeczywistym. Czy też nie ma łatwego rozróżnienia między twórcą systemu naprowadzania pocisków a deweloperem systemu kont z szeroko rozumianego rządu / branży?
aubreyrhodes
@ aubreyrhodes - wyobrażam sobie, że w takim przypadku istnieje inny organ regulacyjny dla urządzeń medycznych, więc mogą one wykraczać poza sferę inżynierii. Istnieje na przykład bardzo ścisła granica między tym, co jest inżynierią, a tym, co jest architekturą. Chociaż w wiele zadań zaangażowanych jest programowanie, nie oznacza to, że nie potrzebujesz również inżynierii. Inżynieria nie projektuje; Inżynier mówi: „Poświadczam, że ten projekt spełnia wytyczne prawne, wykorzystuje najnowszą wiedzę branżową, nie stanowi nadmiernego ryzyka dla społeczeństwa i na tym oprę swoją karierę”.
Scott Whitlock
2

Powiedziałbym, że większość programistów tak naprawdę jest software mechanics. Mam na myśli, że większość programistów w branży oprogramowania robi tylko konserwację oprogramowania i naprawianie błędów.

mhitza
źródło
Myślę, że mylicie mechaników z utrzymaniem.
Wież
@Rook: Ale co robi głównie mechanik samochodowy?
Michael K
@Michael - bardziej lubiłem mecha. eng. którzy robią rozwój, w porównaniu do utrzymania.
Rook
3
@mhitza Twoja sugestia jest taka, że ​​mechanicy oprogramowania nie budują oryginalnych składników oprogramowania, a jedynie utrzymują starsze systemy. Wątpię, czy programiści NAJBARDZIEJ wykonują tylko ten rodzaj pracy. Powiedziałbym, że programiści NAJBARDZIEJ regularnie budują nowe komponenty i systemy.
Morgan Herlocker
@Prof Plum: Mhitza jest poprawna. Lwia część pracy nad oprogramowaniem polega na konserwacji, ponieważ najbardziej udane systemy mają dość długą żywotność. Znam ludzi, którzy byli w tej dziedzinie od trzydziestu lat i nigdy nie rozwinęli niczego ważnego od zera. Po prostu naprawiają i modyfikują istniejące podstawy kodu.
bit-twiddler
2

Istnieją pewne podobieństwa w zakresie stosowania umiejętności, ale zdecydowanie jestem w obozie „nie”. Nie jest to trudne do rozróżnienia - zawody inżynieryjne mają zarządy, które mogą nazywać się Inżynierami na podstawie kwalifikacji i doświadczenia. „Inżynieria oprogramowania” nie ma czegoś takiego (istnieją nowe wysiłki, ale nie słyszałem o żadnych konsekwencjach braku przynależności). Każdy może nazywać się Inżynierem Oprogramowania, a zatem tytuł mówi pracodawcy nic o twoich możliwościach. To samo dotyczy osoby określającej się jako „Inżynier dźwięku” - nie chcę komentować „Inżyniera lotu” lub „Lokomotywy”, ponieważ nie jestem pewien co do tablic dla nich.

Osobiście jestem informatykiem pracującym w środowisku akademickim - prowadzę badania, a nie tylko buduję. Spędziłem również kilka lat w przemyśle i nazywam to swoją pracą „Programowaniem”. Nie muszę udawać, że jestem kimś, kim nie jestem.

Tło: Jestem w Południowej Afryce, gdzie na szczęście inżynier oprogramowania nie przyjął się na wielką skalę. Jeśli rady inżynieryjne w innych częściach świata odeszły, być może nie ma to znaczenia. Jeśli tak, to szkoda - wolałbym żyć w świecie z profesjonalną radą ds. Inżynierii oprogramowania, niż bez organów do wykonywania zawodów.

iftheshoefritz
źródło
Zgodzić się! Ja także pracuję jako informatyk w środowisku akademickim, ale przed dołączeniem do mojej obecnej organizacji spędziłem ponad dwadzieścia lat pracując w badaniach i rozwoju oprogramowania przemysłowego. Nienawidzę być nazywany programistą. Programista jest rzemieślnikiem, tak jak mechanik jest rzemieślnikiem. Jedyną różnicą jest to, że mechanicy są na tyle sprytni, by zarabiać za nadgodziny.
bit-twiddler
Nielicencjonowany inżynier nadal zajmuje się inżynierią, tak jak nielicencjonowany lekarz nadal ćwiczy medycynę.
DougM
1

Zależy to od kraju, ich definicji, systemu akademickiego i tak dalej. Niektóre na przykład nie liczą architektury jako inżynierii - w przeciwieństwie do inżynierii lądowej, postrzegana jest raczej jako połączenie inżynierii i sztuki.

Wszystko zależy od tego, jak na to spojrzysz.

Ale dlaczego to ma znaczenie. W końcu, co ma na imię?

Wieża
źródło
3
Niestety dużo. Nazwa jako identyfikator nie ma większego znaczenia, ale jeśli powiem „geek” mojemu tacie, on myśli „obrzydliwy”, a jeśli powiem, jeśli moim przyjaciołom, to myślą „komputerowy geniusz”. Nazwa wywołuje obraz w umyśle słuchacza i chcesz, aby ten obraz był dokładny.
Michael K
@Michael - Uhmm, nie o to mi chodziło.
Rook
1

Następnym razem, gdy ktoś spróbuje cię wabić na ten temat, zapytaj go o następujące zadania:

  • Inżynier lokomotywy
  • Inżynier lotnictwa
  • Inżynier dźwięku

Żadna z tych pozycji nie ma też wiele wspólnego z inżynierią elektryczną / mechaniczną / lądową.

MIA
źródło
1
Ale w rzeczywistości ci ludzie nie są zawodowymi inżynierami (PE), a zatem nie są inżynierami.
Vitor Py
@Vitor Dokładnie o to chodzi, ponieważ tylko niektórzy programiści są prawdziwymi (certyfikowanymi) inżynierami.
Brian Knoblauch
1

Osobiście uważam, że jesteśmy inżynierami. Mogę być programistą, ale nadal tworzę i projektuję oprogramowanie, modyfikując kod, aby pasował itp.

W każdym razie dla mnie to tylko nazwa, zostałem nazwany inżynierem w mojej pracy i zostałem nazwany tylko koderem, ale tak czy inaczej to w zasadzie to samo.


źródło
1

Inżynieria oprogramowania to inżynieria.

Jednak większość ludzi, którzy nazywają siebie inżynierami oprogramowania, nie są inżynierami. Wiele z tych, którzy nie są programistami i programistami, niekoniecznie musi postępować zgodnie z procesem inżynieryjnym. Nie ma w tym nic złego, ponieważ a) kodowanie ma fundamentalne znaczenie dla inżynierii oprogramowania, a 2) jest nauką samą w sobie. Ale proces inżynierii ma fundamentalne znaczenie dla bycia i pracy jako inżynier. To jedna grupa.

Druga grupa, niestety dość duża, nie jest programistami / programistami. Są tylko hackami, małpami kodowymi, które rzucają gównem na swoje monitory i sprzedają jakiekolwiek patyki (cytowane skądś, nie pamiętają gdzie). Głupi kolektyw głupi.

Wpływ późniejszej grupy jest nikczemny, trujący i przezabawny (w pewnym sensie w czarnym humorze), dlatego inżynierowie innych dyscyplin (niesłusznie) szydzą z pojęcia inżynierii oprogramowania lub uważają, że inżynieria oprogramowania i informatyka to nic innego jak kodowanie (i przez kodowanie, kodowanie spaghetti).

Podsumowując: Istnieje negatywne postrzeganie inżynierii oprogramowania wśród wielu innych, starszych dyscyplin. To błędne założenie.

Ale to błędne założenie wynika z prawdziwej obserwacji, że wiele osób, które nazywają siebie inżynierami oprogramowania, są smutnymi karykaturami lobotomizowanych małp walących w klawisze w nadziei, że przypadkowo wpisają TAOCP Knutha.

ps ... Domyślam się, że matematyk w twojej historii jest po prostu ranny w tyłek. Miał to badziewie głęboko w piersi, bo Bóg wie, jak długo, a ty byłeś po prostu pierwszym wyjściem, który pozwolił temu wyjść na jaw.

luis.espinal
źródło
-1

Ponieważ rozwój oprogramowania jest stosunkowo bardzo młody i rozwija się bardzo szybko, granice między oprogramowaniem technika , inżyniera i naukowca nie jest dobrze określona / bardzo rozmyte.

Cygański król
źródło
1
Tworzenie oprogramowania to nie IT. IT to dyscyplina, która koncentruje się na konfigurowaniu i utrzymywaniu istniejącej własności intelektualnej (IP). Rozwój oprogramowania to dyscyplina, która koncentruje się na tworzeniu nowego adresu IP w odpowiedzi na potrzebę. Akronim IT nie pojawił się w naszym leksykonie, dopóki konwergencja systemów komputerowych i komunikacyjnych nie stworzyła potrzeby stworzenia parasola, pod którym można by grupować wiele rodzajów przeszkolonego technicznie personelu operacyjnego. Jeśli ktoś pracuje w infrastrukturze, pracuje w IT. Jeśli ktoś pracuje nad tworzeniem oprogramowania wykonując prace zorientowane na projekt, nie ma go w branży IT.
bit-twiddler
Naprawiono, mój błąd.
Gipsy King