Functie: Software Engineer

Schrijver: Laura McKinney
Datum Van Creatie: 2 April 2021
Updatedatum: 1 Juli- 2024
Anonim
Van Egmond Groep Uitlegfilm Functie Software Engineer
Video: Van Egmond Groep Uitlegfilm Functie Software Engineer

Inhoud


Bron: Dragonimages / Dreamstime.com

Afhaal:

De software-ingenieur is nauw betrokken bij de levenscyclus van softwareontwikkeling en speelt een grote rol in het succes van een project.

Wat doet een software-ingenieur? Het eenvoudige antwoord is dat hij of zij betrokken is bij software-engineering, bij het toepassen van technische principes op softwareproducten.

Er is echter een schat aan details en nuances in het beschrijven van wat software-ingenieurs doen in de softwarewereld. We zullen daar wat op ingaan als we kijken naar "een dag in het leven" van een software-ingenieur die werkt aan het maken van alle geweldige digitale dingen die we elke dag gebruiken. (Voor meer informatie over de rol van iemand in het veld, bekijk How I Got Here: 12 vragen met schrijver en software-ingenieur David Auerbach.)

De levenscyclus van softwareontwikkeling

Om de rol van de software-engineer te begrijpen, is het handig om te weten over de levenscyclus van softwareontwikkeling (SDLC).


De levenscyclus van softwareontwikkeling omvat verschillende belangrijke fasen, vaak beschreven als vereistenplanning, ontwerp, codering, testen, implementatie en levering (geef of neem enkele stappen volgens bedrijfseigen processen).

"Software begint met het probleem dat we proberen op te lossen", zegt John Quigley van Value Transformation LLC, waarin hij de conventionele levenscyclus van software-ontwikkeling beschrijft door te beginnen met wat er zich aan het begin van het proces afspeelt. “Dit zal worden gearticuleerd in een of andere vorm van document en is het resultaat van interviews met klanten of mensen die lijden onder het probleem ... Het document zal beschrijven hoe het probleem eruit ziet en dat zal helpen ideeën te genereren die hiermee vergeleken kunnen worden voor een oplossing. Dit zal het doel van dit werk zijn en vaststellen wat we proberen te bereiken. ”

In de fase van de vereisten, zegt hij, beschrijven ingenieurs de specifieke technische beschrijving van het product, zowel hardware (als die er is) als software.


Dan is er de codering: "De software-ingenieurs zullen de specifieke verklaringen in code schrijven die het gewenste product zullen produceren dat aan de specifieke vereisten voldoet", zegt Quigley over de coderingsfase.

Daarna, zegt hij, is het testen, en dan nog een reeks stappen die de software solide naar een productieomgeving brengt. Tegen het einde van het proces is er ruimte voor uiteenlopende ideeën over implementatie en inzet. Quigley voegt ook toe dat een nieuw 'agile' model voor SDLC een beetje anders werkt.

Geen bugs, geen stress - Uw stapsgewijze handleiding voor het creëren van levensveranderende software zonder uw leven te vernietigen

U kunt uw programmeervaardigheden niet verbeteren als niemand om softwarekwaliteit geeft.

"In de agile wereld zien de dingen er veel uit, maar de iteraties zijn kleiner en dichter bij elkaar", zegt Quigley. "De eis kan worden afgehandeld via gebruikersverhalen, minder technisch van aard en meer geschreven om de toepassing te begrijpen, zodat de software-ingenieurs conclusies kunnen trekken en belangrijke kenmerken kunnen afleiden op basis van het daadwerkelijke gebruik."

De gevarieerde rol van de software-ingenieur

Omdat de levenscyclus van softwareontwikkeling verschillende fasen en bewerkingen kent, is het logisch dat het werk van de software-ingenieur ook varieert.

"Een software-ingenieur heeft een bredere rol dan de meeste bij het creëren van software-oplossingen", schrijft Samuel Malachowsky, professor aan het Rochester Institute of Technology. “Elk element van de SDLC heeft specialisten: RE's en verkoop voor initiële stappen, architecten voor de ontwerpfase, codeerders / programmeurs voor de build, QA voor verificatie / testen, IT voor implementatie / onderhoud en projectmanagers voor de verplaatsing en het beheer van elk teamlid / elke fase, maar er wordt van Software Engineers verwacht dat ze zich breed op het hele proces toepassen. Gezien dit gezichtspunt zou een betere vraag kunnen zijn om te vragen wat een Software Engineer niet doet. "

Hier is nog een interessant punt dat Malachowsky maakt over het verschil tussen IT en software-engineering dat veel onthult over hoe de taak van de gemiddelde software-engineer eruitziet:

"IT is operationeel en repetitief, terwijl engineering draait om nieuwe problemen die moeten worden opgelost als unieke projecten," zegt hij. “IT-personeel zal veel vaker op zoek zijn naar individuele, op tools gebaseerde certificeringen vanwege deze herhaling. Het contrast met zoiets als Computer Engineering ziet eruit waar aan de vereisten is voldaan - CE's richten zich meestal op het oplossen van het probleem met hardware, met software die het ondersteunt. SE's lossen het probleem op met software, waarbij hardware ondersteuning biedt. ”

De software-ingenieur en projectteams

In veel bedrijven zijn software-ingenieurs gegroepeerd en gedelegeerd volgens hun rol in het complexe proces.

Brennan Meagher beschrijft een voorbeeld van TeleTracking, een bedrijf dat krantenkoppen haalt in innovatie in de gezondheidszorg bij Fierce Healthcare, American College of Emergency Physicians, Health Data Management, Healthcare IT News en elders.

"Bij TeleTracking zijn software-ingenieurs verantwoordelijk voor het coderen en testen van alle modules en applicaties die deel uitmaken van het TeleTracking-platform", zegt Meagher. “Ze helpen ook bij de ontwikkeling van softwareoplossingen en producties. Dit omvat het onderzoeken, ontwerpen, documenteren en ontwikkelen van nieuwe software. Kortom, onze software-ingenieurs creëren de software-oplossingen die aansluiten bij de technische visie van TeleTrackings om de toegang tot patiënten te verbeteren. ”

U kunt zich deze professionals op een bedrijfscampus voorstellen, eerst het model opstellen, vervolgens het model aanpassen en vervolgens in teams testen en een project zorgvuldig begeleiden tot voltooiing.

"Een voorbeeld van iets waarvoor software-ingenieurs regelmatig verantwoordelijk zijn, kan zijn: schrijven, foutopsporing, testen van eenheden en prestatietestcodes in alle toepassingslagen", zegt Meaghan. "Dit omvat de frontend (web), middelste laag (webservices) en data access-lagen."

Het komt erop neer dat software-ingenieurs uiteenlopende, gespecialiseerde taken hebben. Ze moeten allemaal enkele van de basisprincipes van codering begrijpen, maar sommige moeten zich verdiepen in de specifieke kenmerken van testen, of de transparantie van ontwerpvereisten, of in sommige gevallen, de wereld van agile ontwikkeling.

Toen kwam het DevOps-model langs en mengde veel van de iteratieve processen die zeer specifiek werden beschreven en categorisch in het conventionele model. Dus de rol van software-ingenieur verandert. (Zie DevOps-managers uitleggen wat ze doen voor meer informatie over DevOps.)

Dit geeft u een beetje om door te gaan wanneer u meer wilt leren over het werk van deze centrale professionals in softwareproductie. De software-ingenieur is beschreven als het "Zwitserse zakmes" van ontwerp en softwarecreatie - en kan uiteindelijk veel hoeden dragen in een druk bedrijf.