Næsten enhver udvikler stiller spørgsmål om, hvordan han skal udvikle sine færdigheder og hvilken vækstretning han skal vælge: vertikal - det vil sige at blive manager eller horisontal - fuld stack. Mange års arbejde på ét produkt, i modsætning til myter, bliver ikke en begrænsning, men en nyttig mulighed. I denne artikel deler vi erfaringerne fra vores backend-udvikler Alexey, som viede 6 år til certificeringer og i løbet af denne tid arbejdede sig op til at blive arkitekt.
Hvem er arkitekt
En it-arkitekt (tech lead) er en udvikler på højt niveau, der beskæftiger sig med globale problemstillinger i it-projekter. Han fordyber sig i kundens forretningsprocesser og hjælper med at løse hans problemer ved hjælp af teknologi, og bestemmer også, hvordan dette eller hint informationssystem skal struktureres.
En sådan professionel skal ikke kun forstå de enkelte fagområder, men også se hele processen:
- Indstilling af et forretningsproblem.
- Udvikling, herunder programmering, klargøring, lagring og behandling af data.
- Udrulning og support af infrastruktur.
- Test.
- Indsætte.
- Analyse og driftsydelser.
Dette betyder evnen til at sætte dig selv i en hvilken som helst specialists eller teams sted i udviklingens livscyklus, forstå systemernes aktuelle tilstand indefra, identificere fejl, der er begået, og formulere mål. Nogle gange skal du selv udføre operation.
Vejen til faglig udvikling fra bygherre til arkitekt tager lang tid – normalt flere år. For at gøre dette har udvikleren brug for både praktiske færdigheder og teoretisk viden, som kan bekræftes ved international certificering.
Mere end 5 år på ét projekt - rutine eller mulighed for vækst?
For flere år siden begyndte vi at arbejde på et stort medicinsk IT-system for en udenlandsk kunde. Der var visse problemer i dette storstilede projekt:
- begrænset adgang;
- ustabil produkt;
- utroligt lange spurter og lange godkendelser.
"Det er tid til at forbedre dine færdigheder"“, - en af de førende udviklere Alexey kom til denne beslutning for at overvinde de anførte vanskeligheder og bedre forstå systemet.
Alexey delte sin erfaring, hvor det er bedre at begynde at træne, hvilke certifikater er vigtige at opnå, hvordan og hvorfor man gør det.
Trin et: forbedre dit engelsk
Programmeringssprog er en grundlæggende del af udviklingen, men sprog til kommunikation er lige så vigtige. Især i kommunikation med en engelsktalende kunde!
Fra praksis
En skønne dag modtog Alexey et opkald fra en medarbejder fra kundens side. På det tidspunkt kunne vores udvikler endnu ikke prale af en masse certifikater - hverken inden for teknologi, ledelse eller kommunikation. Måske ville de ikke være nyttige - trods alt kan du være en kompetent specialist uden yderligere regalier. Men problemet opstod stadig.
Vi skal forstå, at talesprog er radikalt anderledes end skriftsprog. Hvis du er velbevandret i engelske specifikationer, men ikke øver dig i at lytte og tale, så har vi dårlige nyheder til dig. I dette tilfælde kan telefonsamtaler med partnere føre til en blindgyde.
Alexey fangede nogle velkendte ord på opkaldet, men hans kollegas tale var så hurtig og i modsætning til den klassiske udtale fra lydlektioner, at hovedessensen af hendes spørgsmål gik et sted forbi. Af høflighed og modvilje mod at komplicere situationen gik Alexey hurtigt med på alle forslagene.
Behøver jeg at sige, at der blev gjort ubehagelige opdagelser under arbejdet? Vores udvikler tilmeldte sig noget, som han helt bevidst ville have afslået, hvis tilbuddet var kommet i et forståeligt sprog.
I det øjeblik blev det klart, at det simpelthen var nødvendigt at forbedre lytte- og talefærdigheder. Den bedste måde at gøre dette på var gennem certificeringer.
Engelsk sprogcertificering
For at forbedre kommunikationen inden for rammerne af vores medicinske projekt studerede Alexey i flere programmer på én gang. Som et resultat bestod han FCE - First Certificate in English certificering. Dette hjalp mig med at begynde at høre kunden og formidle mine tanker til ham.
Livet hacking:
Undgå grundlæggende engelske programmer. Færdigheden skal målrettes. Hvis du har brug for engelsk til forretningskommunikation, bør du tage det. Bare gå ikke til ekstremer og tag CAE (Certificate in Advanced English). Dens ejendommelighed er sofistikerede ord, specifikke udtryk, der næsten aldrig bruges i international kommunikation.
Trin to: certificering på tværs af hele teknologistakken
I første omgang var projektet baseret på ORM objektrelationel kortlægningsteknologi. Udviklingsteamet på kundens side var stolte af deres ide, fordi alt blev udført ved hjælp af avancerede koncepter, komplekse og cool.
Problemer i produktionen – især en konstant frysende SQL-server – var dog ikke ualmindelige. Det nåede til det punkt, hvor den typiske løsning på problemet var at genstarte tjenesten. Kunden ringede til teamlederen og sagde, at det var tid til at genstarte. Til sidst besluttede vi at afslutte det.
Kunden ønskede at udarbejde systemets ydeevne - til dette var det nødvendigt at indføre profilering og regelmæssigt foretage optimering. Dengang, omkring 2015, blev Ants Profiler valgt som profileringsværktøj, men det klarede sig dårligt. Med få detaljer var det svært at få information om en kritisk kodeblok. Ved maksimal detaljegrad begyndte Ants Profiler at ændre koden på en sådan måde, at systemernes funktionalitet var i fare - hvor profilering var konfigureret, styrtede alt simpelthen ned. Så vi ændrede vores tilgang.
Vi startede med at analysere statistik
Ved analyse af salgsstatistikker blev det klart, at 95% af arbejdet på serveren har primitiv forretningslogik på 4 linjer. For dem var én SQL-forespørgsel nok, og ikke et komplet sæt forespørgsler genereret af en forretningslogikblok med en ORM.
Alexey foreslog og implementerede en lagret procedure for flytning af arbejde uden ORM. Ideen var i modstrid med det sædvanlige projektparadigme, teamlederen hilste det med forsigtighed, men kunden accepterede alt og anmodede om implementering. Det var ikke overraskende, for den nye metode gjorde det muligt at reducere forsinkelser i forarbejdningen af produktionen fra fire timer til flere minutter - i gennemsnit 98 gange.
Alligevel var vi i tvivl: er dette den rigtige beslutning eller et spørgsmål om personlig præference? Troen på det almægtige C# og ORM blev rystet af en ulykke, der viste den fulde kraft af simple løsninger.
Sag to
Teamet skrev en forespørgsel for at arbejde med data inden for ORM-paradigmet, kompileret efter alle reglerne, uden fejl. Dens behandling tog 2-3 minutter, og disse parametre virkede acceptable. En alternativ implementering med simple vælgere og visninger gav imidlertid resultater hurtigere - på 2 sekunder.
Det blev tydeligt, at det var på tide at vælge en specialist, der skulle gennemgå certificering på tværs af hele projektstakken for at forstå alle nuancerne og vælge den optimale metode. Alexey påtog sig denne opgave.
Første certifikater
For at forstå essensen gik Alexey igennem
- TS: Windows-applikationsudvikling med Microsoft .NET Framework 4
- TS: Adgang til data med Microsoft .NET Framework 4-programmering i C#
- TS: Microsoft .NET Framework 3.5 Windows Forms Application Development
- PRO: Design og udvikling af Windows-applikationer ved hjælp af Microsoft .NET Framework 3.5
- PRO: Design og udvikling af Windows-baserede applikationer ved at bruge Microsoft .NET Framework
- TS: Microsoft .NET Framework 2.0 - Windows-baseret klientudvikling
I et forsøg på at optimere arbejdet med det nye projekt kom teamet frem til følgende konklusioner:
- For at systemerne skal fungere, er det nødvendigt at følge reglerne for at skrive kode: ikke fordybninger og kommentarer, men tekniske karakteristika - antallet af opkald til databaserne, belastningen på serveren og meget mere.
- Anvendelse af modstridende begreber kan føre til problemer. Begrebet databaser er mængdeteori, mens ORM er et operationsbegreb.
- Idéer, der forstyrrer den sædvanlige orden, kan møde modstand i teamet. Udvikling handler også om relationer og evnen til at argumentere for sit synspunkt.
- Certificering udvider din horisont og giver dig mulighed for at forstå, hvad der kan bruges og hvad der ikke kan bruges.
Trin tre: Lær mere end kode
Når man arbejder med store it-løsninger, er mange faktorer vigtige. For eksempel er ikke alle udviklere opmærksomme på netværksparametre, men selv dens båndbredde kan påvirke løsningen af et forretningsproblem.
Forståelse af dette er givet 98 serie certificering:
De giver dig mulighed for at tage et bredere kig på tingene og komme ud af det begrænsede "kun kode"-koncept. Disse er Fundamentals, det grundlæggende, men de er vigtige for at forstå alt på et dybere plan.
Serie 98-certificeringer er korte test - 30 spørgsmål i 45 minutter.
Trin fire: Processtyring
At arbejde med klinikker er en vigtigere opgave end for eksempel at skabe et mobilspil. Her kan du ikke tilføje en funktion og rulle den ud til produktion - det er vigtigt at følge godkendelsesprocessen og foretage adskillige redigeringer fra kunden, fordi folks helbred og liv er på spil.
Typisk Agile gav ikke de ønskede resultater på dette projekt, og hver sprint varede ret lang tid. Mellem implementeringerne tog det fra 6 måneder til et år.
Derudover var det teknisk umuligt at bringe processerne i de ti serverede klinikker til en eller anden fællesnævner.
For at opnå resultater hurtigere under disse forhold, havde udviklere brug for personligt ansvar og en storstilet vision af processer - hvilket betyder konstant koncentration og høje kvalifikationer.
Når en specialist er fordybet i processen, ser han tydeligt resultaterne, årsagerne og konsekvenserne, hele billedet. Dette er på samme tid en faktor for yderligere motivation og bevidsthed, hvilket forbedrer evnen til at løse problemer og problemer.
Med en velfungerende infrastruktur, velbygget arkitektur og optimal kode kan én person påtage sig mange processer. Det betyder dog ikke, at det er nødvendigt at opdrage universelle soldater, der er i stand til at lede projektet alene. Kommunikation og teamwork er afgørende.
I et team forstår hver udvikler, at hans kolleger er afhængige af hans handlinger. At spare 5 minutter i udviklingsfasen betyder måske 5 ekstra timers test. For at forstå dette er det vigtigt at etablere kommunikation.
I vores projekt fik Alexey hjælp til at mestre processerne
- M_o_R Foundation Certificate in Risk Management
- Agile Scrum Foundation
- IT Service Management Foundation
- EXIN Business Information Management Foundation
- PRINCE2 Foundation-certifikat i projektledelse
- Testingeniør certifikat
- Microsoft Operations Framework Foundation
- Agile serviceprojekter
Der blev taget kurser på edX, der hjalp med at se på systemet ud fra et statistisk synspunkt og lean programmering og senere pressede på for at opnå arkitektcertifikat:
- Lean produktion
- Six Sigma: Analyser, Forbedre, Kontrol
- Six Sigma: Definer og mål
Ifølge Six Sigma princippet sikrer statistisk kontrol et resultat af høj kvalitet med en ekstrem høj sandsynlighed.
Ved at hæve sit niveau kommer udvikleren som regel til følgende konklusioner:
- Arbejd ikke hårdt, men arbejd effektivt.
- Komplicer ikke dit liv ved at jagte det ydre: fancy teknologi løser ikke nødvendigvis problemer bedre.
- Bliv venner med specialister på alle stadier af cyklussen og find ud af deres smertepunkter. En arkitekt skal mestre processerne: identificere et problem, opstille et problem, designe en netværkstopologi, udvikling, test, support, drift.
- Tjek hver funktion inde og ude.
- Det sker, at it-processer ikke svarer til forretningsprocesser, og det skal der tages hånd om.
Trin fem: Forstå arkitekturen gennem linsen af Big Data
I løbet af projektet beskæftigede vi os med ret store databaser. Sådan virkede det i hvert fald indtil et vist øjeblik. Da Alexey begyndte at studere big data på edX, viste det sig, at 1,5 Tb på projektet var en lille database. Alvorlige skalaer - fra 10 Tb, og andre metoder er påkrævet der.
Næste skridt mod certificering var et kursus om big data. Han hjalp med at forstå organiseringen af dataflow og fremskynde produktionsoperationer. Og vær også opmærksom på små værktøjer, begynd for eksempel at bruge Excel til at løse individuelle mikroopgaver.
Certifikat:
Microsoft Professional Program: Big Data-certifikat
Trin seks: fra udvikler til arkitekt
Efter at have modtaget alle de anførte certifikater, mens han stadig var udvikler, begyndte Alexey at forstå, at de modtagne oplysninger havde et højt abstraktionsniveau, og det var langt fra dårligt.
En storstilet vision af processer fører til niveauet som en arkitekt, et af de højeste niveauer af certificering.
På jagt efter arkitektcertificering kom Alexey til
Der var kurser at studere inden for programmet. Certificering systematiserede viden og gav os mulighed for at gå ind i et nyt udviklingstrin - fra udvikler til arkitekt.
Sammenfatter
Som Alexey bemærker, når du arbejder med et storstilet it-system, er det vigtigt at huske, at programmering ikke er en dyr underholdning, men et værktøj til at løse forretningsproblemer. Når du står over for den eller den udfordring, skal du helt sikkert skrive forretningsværdien ned, så projektet ikke kommer i en blindgyde.
Arkitekten har et særligt syn på programmering og dens elementære komponenter:
- Oprettelse og/eller vedligeholdelse af et dataflow
- Udtræk informationsflow fra dataflow
- Udvinding af værdistrøm fra informationsflow
- Value Stream Monetization
Hvis du ser på et projekt gennem en arkitekts øjne, skal du starte fra slutningen: formulere værdien og derefter gå til den gennem datastrømmen.
Arkitekten følger udviklingsreglerne og har en global vision af projektet. Det er næsten umuligt at nå det gennem øvelse og dine egne fejl – eller rettere sagt, det er muligt, men det vil tage meget lang tid. Certificering giver dig mulighed for at udvide din horisont og se på den fulde kontekst af hvert problem, stifte bekendtskab med tusindvis af fagfolks erfaring og udvikle evnen til effektiv problemløsning.
Til dato har vi arbejdet med det ovenfor beskrevne medicinske system i mere end fem år og har opnået betydelige forbedringer. I løbet af denne tid bestod Alexey mere end 20 certificeringseksamener:
- TS: Windows-applikationsudvikling med Microsoft .NET Framework 4
- TS: Adgang til data med Microsoft .NET Framework 4-programmering i C#
- TS: Microsoft .NET Framework 3.5 Windows Forms Application Development
- PRO: Design og udvikling af Windows-applikationer ved hjælp af Microsoft .NET Framework 3.5
- PRO: Design og udvikling af Windows-baserede applikationer ved at bruge Microsoft .NET Framework
- TS: Microsoft .NET Framework 2.0 - Windows-baseret klientudvikling
- 98-361: Software Development Fundamentals
- 98-364: Database Fundamentals
- M_o_R Foundation Certificate in Risk Management
- Agile Scrum Foundation
- IT Service Management Foundation
- EXIN Business Information Management Foundation
- PRINCE2 Foundation-certifikat i projektledelse
- Testingeniør certifikat
- Microsoft Operations Framework Foundation
- Agile serviceprojekter
- Lean produktion
- Six Sigma: Analyser, Forbedre, Kontrol
- Six Sigma: Definer og mål
- Microsoft Professional Program: Big Data-certifikat
- Certificeret softwarearkitekt - Microsoft Platform
Efter at have bestået alle eksamenerne steg Alexey fra hovedudvikler til projektarkitekt. Samtidig er certificering blevet et stærkt værktøj til både faglig udvikling og omdømmeopbygning i kundens øjne.
"Certification Ram" hjalp med at få adgang til individuelle kritiske processer, der krævede kontrol og uddybning. Europæiske kunder af IT-løsninger værdsætter som regel certificerede specialister højt og er klar til at give dem mere handlefrihed.
Tak for din opmærksomhed! Vi håber, at artiklen var nyttig for dig.
Kilde: www.habr.com