it-swarm-eu.dev

Jaké jsou klíčové rozdíly mezi softwarovými inženýry a programátory?

Jaké jsou klíčové rozdíly mezi softwarovými inženýry a programátory?

102
grokus

Při najímání hledáme rozdíl mezi někým, kdo nám bude nápomocen při architektuře našeho systému, definování procesů, vytváření technických specifikací, implementaci pokročilého refaktoringu atd. A někoho, kdo nám pomůže dokončit programovací úkoly z kontrolního seznamu . Věřím, že byste první mohli nazvat Softwarový inženýr a druhý Programátor.

79
Nicole

Je to opravdu na společnosti, protože si nemyslím, že existuje právní rámec pro vynucení názvu nebo jiného, ​​nebo alespoň ne, že jsem si toho vědom, a to se může v jednotlivých zemích lišit (například použití termínu „inženýr“ je ve Francii ve skutečnosti spravedlivě regulován, existují však varianty, které jsou povoleny pro „hrubé“ případy).

Jak již bylo řečeno, obecný trend vypadá takto:

  • Pozice programátor je obvykle pozice z profesionála najatého, aby vytvořil kód počítačového programu. Bude to znamenat, že víte, jak psát kód, umíte rozumíte algoritmu a dodržujte specifikace. Obvykle se však zastavuje, pokud jde o odpovědnost.

  • Pozice vývojář se obvykle považuje za super typ pozice programátora. Zahrnuje stejné odpovědnosti, plus the schopnost navrhnout a architektovat softwarovou komponentu, a napsat technickou dokumentaci za to (včetně specifikací). Jste jste schopni - alespoň technicky - vést ostatní (ano, programátoři), ale ne nutně tým (přijde fuzz ...)

  • Pozice inženýr by obvykle znamenala, že jste vývojář, který má konkrétní typ stupně, některé znalosti inženýrství a je schopný navrhnout systém (jako v: kombinace softwarových komponent/modulů, které společně tvoří celou softwarovou entitu). V podstatě vy viz širší obrázek a vy jste jste schopni navrhnout a vysvětlit it a rozdělit ho na menší moduly .

Nicméně, vše je diskutabilní, a jak jsem řekl, v USA/Velké Británii neexistují žádné právní požadavky. Jak již bylo řečeno, ve Francii se můžete nazývat „inženýrem“ pouze tehdy, pokud pocházíte z technické školy (kterou uznala Komise des Titres d'Ingenieurs nebo něco podobného). Nemůžete říci, že máte „Inženýrský titul“, ale můžete říci, že máte „Inženýrský titul“, pokud jste studovali disciplínu, která spadá pod portemantu inženýrství a technologií.

Je možné, že některé země mají podobné rozlišení, já prostě nevím.

Zpět na titul softwarového inženýra ... Jednou jeden z mých učitelů řekl naší třídě - a správně - - že dnes neexistuje nic takového jako tzv. „Softwarové inženýrství“. Protože inženýrství něco (ať už jde o budovu, vozidlo, kus hardwaru ...) znamená, že jste schopni předvídat jeho design a všechny fáze jeho výroby a přesně předvídat zdroje, které budete potřebovat, a tedy náklady na výrobu.

To platí pro většinu „pravých“ inženýrských oborů. Samozřejmě existují výkyvy (například ceny materiálů se budou v průběhu času lišit), ale existují velmi omezené teoretické modely (pro návrh a plánování) a empirické modely (pro do značné míry udržení jakéhokoli z nich v dostupných omezeních) které vám umožní předpovědět datum ukončení projektu a jeho využití zdrojů.

Hlavním problémem se softwarem je to, že tam ještě není. Chceme se zaměřit na softwarové inženýrství, ale ještě tam nejsme, opravdu. Protože máme velmi plynulé a dynamické prostředí, velmi variabilní omezení pro projekty a stále nedostatek zralosti při zpětném pohledu v našich procesech. Jistě bychom mohli říci, že se k tomu zlepšujeme (vysoce se hádají s tvrdými daty), ale byli jsme u toho teprve od 60. let (dřívější projekty byly ve skutečnosti blíže k hardwarovým počítačům, tedy blíže skutečnému inženýrství, ironicky ). Zatímco motorová vozidla stavíme více než století, vozidla obecně několik tisíciletí a ještě více tisíciletí (a v tom jsme byli docela zatraceně dobří v některých částech světa, takže se cítíte jako my jsou ve srovnání s našimi novými honosnými softwarovými hračkami směšné děti).

We nedokážeme systematicky předvídat termíny přesně, my nedokážeme systematicky předvídat náklady přesně, my nedokážeme systematicky identifikovat a zmírnit inherentní a externí rizika efektivně a deterministicky. Nejlepší, co dokážeme, je vyrábět dostatečně dobře guesstimates, a přizpůsobit se nějaké vyrovnávací paměti, zatímco se snažíme co nejlépe optimalizovat procesy pro snížení cyklů a režijních nákladů.

Ale podívejte se, možná to je to, co je inženýrství. A to je to, co když někdo mluví o „softwarovém inženýrovi“, měl by myslet a usilovat o něj.

Zdá se tedy, že je obtížně zaměnitelné s jednoduchým aktem programovacích rutin, nebo s pokročilejším aktem vývoje aplikací.

Přesto je všechno věcí trendů. V poslední době je docela běžné mít horizontální dev tým, kde všichni v týmu jsou Senior Software Developer (ano, hlavní města, protože to nás dělá zvláštními, že?), Bez skutečného rozdílu věku (dost fér, v mém názor) a ne tolik rozdílů v dovednostech (uh-oh ...) a odpovědích (nyní to nemůže být dobré, čistě pro PR buzz).

Je to také někdy jen zvyková zvyklost a specifická pro průmyslovou kulturu a žargon. Více pozic pro výrobu vestavěného softwaru používá tituly pro softwarové inženýry. Většinou proto, že by to pravděpodobně znamenalo, že budete vždy muset do určité míry jednat s hardwarem i v této oblasti, takže se samozřejmě musíte vypořádat s dalšími aspekty výroby a celého „systému“, který vyrábíte. Nejen ty kousky, které v něm jsou ořechy. Na druhé straně spektra opravdu nevidíte pojem inženýra, který je používán ve pozicích produkujících finanční software. Je to buď proto, že se jedná o mimetický vývoj tohoto odvětví od jednoho z jeho předchůdců (řekněme například vestavěné inženýrství najde své kořeny v automobilovém inženýrství), nebo proto, že jen chtějí dané pozici připsat více či méně kreditu/váhy.

A ujistěte se, že ztratíte všechny v mlze, pak najdete další tituly, které mísí oba (jako „Software Development Engineer“ nebo „Software Engineer in Test“!), A pak další zdůrazňující i více bláznivých mostů s jinými doménami (například „Softwarový architekt“ a jak by „softwarová architektura“ mohla být nestydatou krádeží slovní zásoby). A nechte je přicházet: Release Engineer, Change Development Manager, Build Engineer (ten také chodí na ffaaarrrrrr). A někdy prostě „inženýr“.

Doufám, že to pomohlo, i když to ve skutečnosti není odpověď.

Jo, a to znamená, že se vaše nová společnost pokouší nalákat vás do nového titulu, nebo že se o tituly opravdu nestarají, nebo že opravdu budete mít pozici na vyšší úrovni. Jediným způsobem, jak vědět, je přečíst si specifikaci vaší práce, promluvit si s nimi a nakonec ji dát šanci a posoudit sami. Doufám, že se jedná o druhou možnost a že jste s ní spokojeni (a možná i více peněz). ;)

130
haylem

Softwaroví inženýři jsou lidé, kteří pracují ve společnostech, které volají lidem, kteří pro ně píšou software, „softwaroví inženýři“.

Programátoři jsou lidé, kteří pracují ve společnostech, které nazývají lidi, kteří pro ně píší software, programátory.

Existují také vývojáři nebo vývojáři softwar. Jsou to lidé, kteří pracují ve společnostech, které volají lidi, kteří pro ně píšou software, „vývojáři“ nebo „vývojáři softwaru“.

81
Jer

Existuje tedy „softwarový inženýr“, „programátor“ a také „vývojář“, „kodér“ a na „odborníka na SOA“ nikdy nezapomenete.

To vše jsou marketingové termíny pro lidi, kteří ve svém životopisu nemohou říci něco smysluplného, ​​jako je jejich skutečná role (nejen pracovní pozice) na předchozích pozicích.

U reklam na pracovní místa je rozdíl na osobě s HR.

Sečteno a podtrženo: každý člověk má svůj vlastní názor na „co dělá dobrého zaměstnance, který pracuje s kódem“, a někteří rádi spojují takové a takové dovednosti s takovými a takovými tituly.

Co potřebuješ udělat? Reklamy na pracovní místa by měly popisovat požadované dovednosti a životopisy by měly vysvětlovat podrobnosti o zkušenostech uchazeče.

15
Ken Egozi

Žádné rozdíly. Jsou to stejné. Společnosti však mohou mít formální popisy práce s použitím termínů, a pak může pro daný termín existovat nějaký specifický význam pro společnost.

10
GrandmasterB

Programování se týká kódu. Softwarové inženýrství je o konečném produktu.

8
darreljnz

V některých jurisdikcích „inženýr“ s sebou nese požadavek být profesionálním inženýrem, tj. S P. Eng. zoufalství mezi něčím pověřením. V jiných oblastech však nemusí být takový rozdíl, protože jsem byl před několika lety ve Softwarovém konstrukčním inženýru.

3
JB King

To opravdu záleží na tom, jak společnost definuje pozice. Je možné, že jako softwarový inženýr budete mít více příležitostí pro návrh rozhodnutí, zatímco jako vývojář vám dají diagramy UML a program napíšete.

Neexistuje však žádná skutečná sada definic, takže na základě názvu budou lidé vědět, co děláte, nebo jak jste zkušení.

Když jsem byl architektem/vývojářem, jmenoval jsem se počítačovým vědcem, ale řekl bych lidem, že jsem programátor, protože první dva nejsou snadno definovatelní, ale většina lidí ví, co programátor dělá.

Pokud je pro vás titul důležitý, přijměte nový, protože inženýr zní výše než vývojář.

3
James Black

Nemyslím si, že existují nějaké „oficiální rozdíly“ pro mou zkušenost, které by mohly znamenat:

  • Některé společnosti používají softwarové inženýry a vývojáře softwaru k odkazu na totéž. Prostě používají svůj oblíbený termín.
  • Ostatní používají oba termíny pro různé vnitřní pozice, ale role se v jednotlivých společnostech liší! V některých by to mohl být jen rozdíl ve funkci (soft. Engineer bude pracovat na údržbě a zlepšování systémů, zatímco vývojář bude pracovat na produktu společnosti), nebo by mohl být hierarchický (inženýr je nad vývojářem), nebo dokonce inženýr je opravdu závislý na Q&A!

Také se mění také módní termíny ... Nejprve byl termín „programátor“, poté „softwarový inženýr“ a nyní se zdá být „vývojář“ ...

Je lepší přečíst si popis práce nebo někomu z konkrétní společnosti

3
Khelben

Softwaroví inženýři inklinují k práci na systémech, které jsou velmi velké, což trvá mnoho vývojových let, Například 5 až 16 let. Programátoři mají tendenci mít tento stereotyp jen kódování a nic jiného. Ale záleží to na organizaci, ve které pracujete, a na tom, jak HR roli uvádějí na trh, jak je vysvětleno výše. V podstatě jsou to samé. Jen se příliš nepřipojujte k titulu, protože je to synonymum.

2
Siamac Nikoo