Arkitektens vej: certificering og dybdegående produktforståelse

Næsten hver udvikler stiller sig selv spørgsmål om, hvordan de skal udvikle deres færdigheder, og hvilken vækstvej de skal vælge: vertikal - det vil sige, at blive leder, eller horisontal - fullstack. Mange års arbejde med et enkelt produkt, på trods af myter, er ikke en begrænsning, men en værdifuld mulighed. I denne artikel deler vi erfaringerne fra vores backend-udvikler Alexey, som har brugt 6 år på certificeringer og er nået til arkitekturniveauet på denne tid.

Arkitektens vej: certificering og dybdegående produktforståelse

Hvem er en arkitekt

En arkitekt i IT (tech lead) er en højt kvalificeret udvikler, der beskæftiger sig med globale spørgsmål i IT-projekter. Han dykker ned i kundens forretningsprocesser og hjælper med at løse deres opgaver ved hjælp af teknologi, samt bestemmer, hvordan et eller andet informationssystem vil være struktureret.

Denne professionelle skal ikke kun forstå enkelte fagområder, men også se hele processen:

  • Fastlæggelse af forretningsopgaver.
  • Udvikling, herunder programmering, forberedelse, opbevaring og behandling af data.
  • Implementering og vedligeholdelse af infrastruktur.
  • Testning.
  • Deployment.
  • Analyse og driftsvedligeholdelse.

Det betyder, at man skal kunne sætte sig i stedet for enhver specialist eller team i udviklingslivscyklussen, forstå den nuværende tilstand af systemerne indefra, identificere fejlene, formulere mål. Nogle gange - selv udføre operationelt indgreb.

Vejen fra udvikler til arkitekt tager lang tid - som regel flere år. For dette har udvikleren brug for både praktiske færdigheder og teoretisk viden, som kan bekræftes ved international certificering.

Over 5 år på et projekt - er det rutine eller en mulighed for vækst?

For flere år siden begyndte vi at arbejde på et stort medicinsk IT-system for en udenlandsk kunde. I dette omfattende projekt eksisterede der bestemte problemer:

  • begrænsede adgangsrettigheder;
  • ustabil produktion;
  • utroligt lange sprint og lange godkendelsesprocesser.

“Det er tid til at opgradere ens kvalifikationer”, - nåede en af vores førende udviklere Alexey frem til denne beslutning for at overvinde de nævnte vanskeligheder og få en bedre forståelse af systemet.

Alexey delte sin erfaring om, hvordan man bedst starter sin uddannelse, hvilke certifikater der er vigtige at få, og hvordan og hvorfor man gør det.

Trin ét: forbedre dit engelsk

Programmeringssprog er en fundamental del af udviklingen, men kommunikationssprog er ikke mindre vigtige. Især når man kommunikerer med engelsktalende kunder!

Fra praksis

En dag ringede en medarbejder fra kunden til Alexey. På det tidspunkt kunne vores udvikler endnu ikke prale af en bunke certifikater — hverken inden for teknologi, ledelse eller kommunikation. Måske ville de ikke have været nødvendige — for man kan være en kompetent specialist uden ekstra titler. Men problemet opstod alligevel.

Man skal forstå, at talesprog er radikalt forskelligt fra skriftsprog. Hvis du er dygtig til at navigere i engelsksprogede specifikationer, men ikke praktiserer lytning og tale, har vi dårlige nyheder til dig. I så fald kan telefonmøder med partnere føre til blindgyder.

Alexey opfangede nogle velkendte ord under opkaldet, men kollegaens tale var så hurtig og anderledes fra den klassiske udtale i lydlektionerne, at essensen af hendes spørgsmål gik ham forbi. Af høflighed og fordi han ikke ønskede at komplicere situationen, sagde Alexey hurtigt ja til alle tilbud.

Skal jeg sige, at der blev gjort ubehagelige opdagelser undervejs? Vores udvikler tilmeldte sig noget, han helt bevidst ville have afvist, hvis tilbuddet var kommet på et forståeligt sprog.

På det tidspunkt blev det klart, at det var nødvendigt at forbedre lytte- og talefærdighederne. Den bedste måde at gøre dette på var gennem certificeringer.

Certificering i engelsk

For at forbedre kommunikationen i vores medicinske projekt studerede Alexey under flere programmer samtidig. Som resultat bestod han certificeringen FCE — First Certificate in English. Dette hjalp ham med at begynde at høre kunden og formidle sine tanker til dem.

Lifehack:

Undgå programmer, der lærer grundlæggende engelsk. Færdigheden skal være målrettet. Hvis der kræves engelsk til forretningskommunikation — så er det det, man skal tage. Men man skal ikke gå til yderligheder og tage CAE (Certificate in Advanced English). Dets særegenhed er de sofistikerede ord, specifikke udtryk, som sjældent bruges i international kommunikation.

Arkitektens vej: certificering og dybdegående produktforståelse

Trin to: certificering på hele teknologistakken

I begyndelsen var projektets fundament baseret på teknologi til objekt-relationel mapping (ORM). Udviklingsteamet fra kunden var stolte af deres skabelse, da alt blev gjort med anvendelse af avancerede koncepter, komplekse og imponerende.

Ikke desto mindre var problemer på produktionen — især med en konstant hængende SQL-server — ikke sjældne. Det kom til det punkt, at en typisk løsning på problemet var at genstarte tjenesten. Kunden ringede til teamlederen og meddelte, at det var tid til at genstarte. Endelig besluttede vi os for at få afsluttet dette.

Kunden ønskede at arbejde på systemets ydeevne — for dette skulle vi implementere profilering og regelmæssigt udføre optimering. På det tidspunkt — omkring 2015 — valgte vi Ants Profiler som profileringens værktøj, men det viste sig at være svagt. Ved lav detaljegrad var det svært at få oplysninger om den kritiske kodeblok. Ved maksimal detaljegrad begyndte Ants Profiler at ændre koden, så systemernes funktionalitet blev truet — der, hvor profilering var sat op, kollapsede alt. Derfor ændrede vi tilgangen.

Vi begyndte med at analysere statistikkerne

Ved analysen af salgsstatistikkerne blev det klart, at 95% af arbejdet på serveren havde en primitive forretningslogik på 4 linjer. For dem var det tilstrækkeligt med en enkelt SQL-forespørgsel og ikke det komplette sæt af forespørgsler genereret af forretningslogikblokken med ORM.

Aleksey foreslog og implementerede en lagret procedure til flytning af opgaver uden ORM. Ideen var i strid med den sædvanlige paradigm i projektet, teamlederen modtog den med skepsis, men kunden accepterede det hele og bad om implementering. Det var ikke overraskende, da den nye metode reducerede ventetiden for behandling på produktionen fra fire timer til blot få minutter — i gennemsnit 98 gange.

Alligevel havde vi vores tvivl: Er dette det rette valg eller et spørgsmål om personlige præferencer? Troen på den almægtige C# og ORM blev rystet af en tilfældighed, som viste styrken i enkle løsninger.

Andet tilfælde

Teamet skrev en forespørgsel til arbejdet med data inden for ORM-paradigmet, udformet efter alle regler uden fejl. Behandlingen tog 2-3 minutter, og disse parametre syntes acceptable. Dog sikrede en alternativ implementering ved hjælp af enkle select-forespørgsler og views et hurtigere resultat — på 2 sekunder.

Det er blevet klart, at det er tid til at vælge en specialist, der kan gennemgå certificeringen for hele projektstakken for at forstå alle nuancer og vælge den optimale metode. Denne opgave er blevet overtaget af Alexey.

Første certificeringer

For at forstå essensen har Alexey gennemgået flere Microsoft certificeringer, som dækker hele den teknologiske stak i projektet:

  • TS: Udvikling af Windows-applikationer 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 Applikationsudvikling
  • 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 brug af Microsoft .NET Framework
  • TS: Microsoft .NET Framework 2.0 — Udvikling af Windows-baserede klienter

For at optimere arbejdet med det nye projekt kom teamet til følgende konklusioner:

  • For systemernes funktionalitet er det nødvendigt at overholde reglerne for kodning: ikke indrykning og kommentarer, men tekniske specifikationer — antal kald til databaser, belastning på serveren og meget mere.
  • Anvendelse af modstridende koncepter kan føre til problemer. Databaser er en mængdeteori, mens ORM er en operationskoncept.
  • Ideer, som bryder med den almindelige orden, kan møde modstand i teamet. Udvikling handler også om relationer og evnen til at argumentere for sit synspunkt.
  • Certificering udvider horisonten og giver indsigt i, hvad man kan bruge, samt hvad man kan undgå.

Arkitektens vej: certificering og dybdegående produktforståelse

Trin tre: Studér ikke kun koden

Når man arbejder med omfattende IT-løsninger, er mange faktorer vigtige. For eksempel lægger ikke alle udviklere mærke til netværksparametre — men selv dens båndbredde kan påvirke løsningen af forretningsopgaven.

Forståelsen heraf gives af certificeringer i 98-serien:

De giver et bredere perspektiv og hjælper med at komme ud af den begrænsede opfattelse af 'kun kode'. Det er grundlæggende, men de er vigtige for at forstå alt på et dybere niveau.

Certificeringer i 98-serien er små test — 30 spørgsmål på 45 minutter.

Trin fire: Processtyring

Arbejdet med klinikker er en mere ansvarlig opgave end for eksempel at lave et mobilspil. Her kan man ikke bare tilføje en funktion og lancere den — det er vigtigt at overholde processen for godkendelse og inkludere mange ændringer fra kunden, da menneskers sundhed og liv er på spil.

Den typiske Agile-metode gav ikke de ønskede resultater i dette projekt, og hver sprint varede længe. Mellem deployment gik der fra 6 måneder til et år.

Desuden var det rent teknisk umuligt at bringe processerne fra de ti betjente klinikker til en fælles standard.

For at opnå hurtigere resultater under disse forhold krævede udviklerne personligt ansvar og en omfattende forståelse af processerne — hvilket betød konstant fokus og høj kvalifikation.

Når specialisten er dybt involveret i processen, ser han tydeligt resultaterne, årsagerne og konsekvenserne, og det samlede billede. Dette fungerer samtidig som en faktor for øget motivation og bevidsthed, forbedret evne til at løse opgaver og problemer.

Med en veludviklet infrastruktur, korrekt opbygget arkitektur og optimal kode kan én person påtage sig mange processer. Men det betyder ikke, at man skal opdrage universelle soldater, der kan føre projektet alene. Kommunikation og teamwork er afgørende.

I et team forstår hver udvikler, at kollegerne er afhængige af hans handlinger. At spare 5 minutter i udviklingsfasen kan betyde 5 ekstra timers testning. For at forstå dette er det vigtigt at etablere kommunikation.

I vores projekt blev Alexey understøttet i at mestre processerne af certifikater fra EXIN:

  • M_o_R Foundation Certificate in Risk Management
  • Agile Scrum Foundation
  • IT Service Management Foundation
  • EXIN Business Information Management Foundation
  • PRINCE2 Foundation Certificate in Project Management
  • Test Engineer Certificate
  • Microsoft Operations Framework Foundation
  • Agile Service Projects

På edX blev der gennemført kurser, der hjalp med at se systemet fra et statistisk og lean programmeringsperspektiv, hvilket senere førte til at opnå certifikatet som arkitekt:

  • Lean Production
  • Six Sigma: Analyze, Improve, Control
  • Six Sigma: Define and Measure

Ifølge principperne for 'Six Sigma' sikrer statistisk kontrol et kvalitetsresultat med ekstremt høj sandsynlighed.

Når udvikleren hæver sit niveau, når han som regel frem til følgende konklusioner:

  • Arbejd ikke meget, men effektivt.
  • Gør ikke livet mere kompliceret i jagten på det ydre: avanceret teknologi løser ikke nødvendigvis problemer bedre.
  • Samarbejd med specialister på alle stadier af cyklussen og identificer deres udfordringer. Arkitekten skal have styr på processerne: at identificere problemet, definere opgaven, designe netværkstopologien, udvikle, teste, supportere og vedligeholde.
  • Test hver funktion fra start til slut.
  • Det sker, at IT-processer ikke stemmer overens med forretningsprocesser, og det skal der gøres noget ved.

Arkitektens vej: certificering og dybdegående produktforståelse

Femte skridt: forstå arkitekturen gennem Big Data

På projektet arbejdede vi med ret store databaser. I det mindste, så det sådan ud indtil et bestemt tidspunkt. Da Alexey begyndte at studere big data på edX, viste det sig, at 1,5 Tb på projektet er en lille database. Alvorlige omfang kræver mindst 10 Tb, og der kræves andre metoder.

Næste skridt på vejen til certificering var et kursus i big data. Det hjalp med at forstå datastrømmenes organisation og fremskynde operationerne i produktionen. Det fremhævede også brugen af små værktøjer, som f.eks. at begynde at bruge Excel til at løse specifikke mikroopgaver.

Certifikat:
Microsoft Professional Program: Big Data Certificate

Arkitektens vej: certificering og dybdegående produktforståelse

Sjette skridt: fra udvikler til arkitekt

Efter at have opnået alle de nævnte certificeringer, og mens han stadig var udvikler, begyndte Alexey at indse, at den information, han havde fået, har et højt abstraktionsniveau, og det er bestemt ikke dårligt.

Et omfattende perspektiv på processerne fører til arkitekterniveauet, en af de højeste certificeringsniveauer.

I søgen efter arkitektcertificering kom Alexey frem til Certified Software Architect — Microsoft Platform fra Sundblad & Sundblad. Dette er et program, der er anerkendt af Microsoft, og hvis udvikling begyndte for 14 år siden i samarbejde mellem hovedkontoret og det svenske kontor. Det dækker .NET Framework, kravindsamling, informationsstrømstyring og mange andre spørgsmål på højt niveau og betragtes som et stærkt bevis på arkitektfærdigheder.

Programmet indeholdt kurser til studie. Certificeringen systematiserede viden og gjorde det muligt at træde ind i en ny udviklingsfase — fra udvikler til arkitekt.

Arkitektens vej: certificering og dybdegående produktforståelse

Afslutningsvis

Som Alexey bemærker, er det vigtigt at huske i arbejdet med et stort IT-system, at programmering ikke er en dyr fornøjelse, men et værktøj til at løse forretningsmæssige udfordringer. Når man står over for en bestemt udfordring, er det afgørende at definere business value, så projektet ikke kører fast.

En arkitekt har et særligt perspektiv på programmering og dens grundlæggende komponenter:

  • Oprettelse og/eller vedligeholdelse af datastreams
  • Uddragelse af information baseret på datastreams
  • Uddragelse af værdi baseret på informationstream
  • Monetisering af værdistrømmen

Når man ser på projektet fra arkitektens perspektiv, skal man starte med enden: formulere værdien og derefter nå dertil gennem datastream.

Arkitekten overholder udviklingsreglerne og har et globalt perspektiv på projektet. At komme dertil gennem praksis og egne fejl er næsten umuligt — mere præcist, det er muligt, men meget tidskrævende. Certificering udvider horisonten og giver indsigt i det fulde kontekst af hvert spørgsmål, samt erfaring fra tusindvis af fagfolk og udvikler evnen til effektiv problemløsning.

I dag har vi arbejdet med det førnævnte medicinske system i over fem år og opnået betydelige forbedringer. I denne tid har Alexey bestået mere end 20 certificeringseksamener:

  1. TS: Udvikling af Windows-applikationer med Microsoft .NET Framework 4
  2. TS: Adgang til data med Microsoft .NET Framework 4 Programmering i C#
  3. TS: Microsoft .NET Framework 3.5 Windows Forms Applikationsudvikling
  4. PRO: Design og udvikling af Windows-applikationer ved hjælp af Microsoft .NET Framework 3.5
  5. PRO: Design og udvikling af Windows-baserede applikationer ved brug af Microsoft .NET Framework
  6. TS: Microsoft .NET Framework 2.0 — Udvikling af Windows-baserede klienter
  7. 98-361: Softwareudviklingsgrundlag
  8. 98-364: Databasegrunde
  9. M_o_R Foundation Certificate in Risk Management
  10. Agile Scrum Foundation
  11. IT Service Management Foundation
  12. EXIN Business Information Management Foundation
  13. PRINCE2 Foundation Certificate in Project Management
  14. Test Engineer Certificate
  15. Microsoft Operations Framework Foundation
  16. Agile Service Projects
  17. Lean Production
  18. Six Sigma: Analyze, Improve, Control
  19. Six Sigma: Define and Measure
  20. Microsoft Professional Program: Big Data Certificate
  21. Certified Software Architect — Microsoft Platform

Arkitektens vej: certificering og dybdegående produktforståelse

Efter at have bestået alle eksamener, er Alexey steget fra lead developer til projektarkitekt. Samtidig er certificering blevet et kraftfuldt redskab til både professionel udvikling og opbygning af omdømme i kundens øjne.

“Certificeringsrammen” har hjulpet med at få adgang til specifikke kritiske processer, der havde brug for kontrol og bearbejdning. Europæiske kunder af IT-løsninger værdsætter typisk certificerede specialister højt og er villige til at give dem mere frihed.

Tak for opmærksomheden! Vi håber, at artiklen har været nyttig for dig.

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster