1. ForretningsOperations ManagementTop 10 DevOps faldgruber: Hvorfor dine softwareprojekter mislykkes

Af Emily Freeman

At fremme en DevOps-kultur og vælge værktøjer, der understøtter din DevOps-tilgang, kommer din organisation til gode. DevOps-fremgangsmåden galvaniserer dit teknikerteam og fokuserer din produktudvikling på din kunde.

Men hver gang du forsøger at foretage en massiv ændring af underorganisationen i din organisation, står du overfor udfordringer og er nødt til at tackle tilbageslag. Når du forvandler til DevOps, vil du opdage unikke hastighedsbumpe, som du og dit team kan komme over.

Selvom du umuligt kan forudsige enhver hindring, du vil møde, kan denne artikel forberede dig til de ti mest almindelige DevOps-faldgruber. Husk, at uanset hvor du nærmer dig din DevOps-praksis, skal dine prioriteter forblive fokuseret på mennesker, proces og teknologi - i den rækkefølge.

Manglende prioritering af kultur i dit DevOps-projekt

Mere end noget andet er DevOps en kulturel bevægelse. Den kultur, du bygger på din organisation, vil gøre eller ødelægge din DevOps-praksis. Din DevOps-kultur skal understrege samarbejde, tillid og teknisk empowerment. Hvis du sømmer automatisering, men går glip af disse kulturelle komponenter, vil du sandsynligvis mislykkes.

I sandhed betyder værktøj ikke så meget. De værktøjer, du har til rådighed, ligner mere end ikke. Selvom de problemer, de løser, er vigtige, kan ingen af ​​disse problemer sammenligne med den næsten uendelige frustration ved at forsøge at forene udviklere og driftsfolk - såvel som andre teams, som sikkerhed - i en traditionel ingeniørorganisation.

DevOps søger at galvanisere ingeniører (såvel som forretningsgrupper). Det skaber et fundament, som alle kan lære, dele og vokse på. Denne personlige acceleration brænder hele din ingeniørorganisation til at skabe bedre DevOps-software hurtigere. De ingeniører, du har på dit team, er det mest værdifulde aktiv, du har. Behandl dem godt ved at give dem respekt og plads til at gøre, hvad de gør bedst - ingeniørløsninger.

Efterlad andre efterhånden som du bevæger dig fremad med DevOps

At fremstille sagen internt til DevOps vil bestemme den type fundament, du bygger til din kultur. Kig efter frugtbar jord. Hvis du bevæger dig for hurtigt og ikke overbeviser nøglefolk om vigtigheden af ​​en DevOps-transformation, vil folk se dine bevægelser med skepsis og springe ved den første mulighed for at vise alle, at du tager fejl. Det er ikke en sjov position at være i, og du vil aldrig starte denne rejse med mennesker, der venter på, at du mislykkes.

For at få succes, har du brug for alle ombord på DevOps-skibet, selv naysayers og skeptics. Ingeniører kan være skeptiske. Efter et årti eller to i denne branche har de set en masse ideer og nye tilgange komme og gå. De kan let trække fra DevOps som ”bare en anden mislykket tilgang” til de samme gamle problemer. Og hvis du implementerer det dårligt, vil DevOps virkelig være bare en anden mislykket tilgang. Du og dit team skal overtale andre om potentialet og gribe ind på måder, der inviterer alle til bordet.

Prøv at overbevise chefer med data og potentialet for hurtigere softwarelevering. Men ingeniører er nødt til at vide, hvordan DevOps vil gøre deres job sjovere. Vis dem, hvordan DevOps tilpasser sig forretningsbehov og reducerer friktion langs softwareleveringsrørledningen.

Bare sørg for ikke at overselge konceptet. DevOps udfordringer vil ske. DevOps er ikke en sølvkugle og kræver intens arbejde i begyndelsen for at sikre, at teamet skaber en læringskultur, hvor ingeniører frit kan begå fejl og vokse.

Når du har nået en begivenhedshorisont, hvor nok mennesker tror på DevOps, kan du fortsætte med den viden, at du har støtte fra din organisation og de mennesker deri.

Glem at justere incitamenter i dit DevOps-projekt

Hvis du ikke ønsker at tilpasse incitamenter til det, du forventer af visse teams eller specifikke ingeniører, opstår der flere udfordringer. DevOps 'virkelige værktøj, hvis du kan mestre det, er empowerment. Du ønsker at styrke dine ingeniører til at udføre deres arbejde godt, fri for interferens. Du har ansat talentfulde ingeniører, så stol på deres evne til at udføre deres ansvar.

For eksempel, når udviklere tjener til en on-call-rotation, indrammer nogle organisationer det som en smule af en straf. "Du har bygget den, du støtter den," fylder ikke nøjagtigt folk med glade følelser. I stedet føles det som bare en anden form for tavset ansvar. Men en human og jævnt fordelt on-call rotation bemyndiger ikke kun udviklere til at tage ejerskab af deres arbejde, det skaber også læringsmuligheder for hele teamet.

I DevOps straffer du ikke ingeniører for ufuldkommen arbejde; I stedet deler du ansvar og kultiverer en organisation, der værdsætter læring og giver alle mulighed for at være nysgerrige og deltage i områder af teknologi, hvor de er mindre kendte.

At tilpasse incitamenter og skabe muligheder for samarbejde driver dit mål om at forbedre dine produkter og betjene dine kunder bedre. Hvis alle er rettet mod målet om at skabe fantastiske tjenester til dine kunder gennem DevOps, vil du se gruppen begynde at galvanisere.

Hold stille om dit DevOps-projekt

DevOps er modsætningen af ​​hemmeligheder og forhandlinger i bagrummet. I stedet lægger det alt sammen på bordet og tvinger dig til at stole på integriteten af ​​menneskene i din organisation. Når du først introducerer åben kommunikation, kan konflikter synes at stige. Det gør det ikke. I stedet ser du simpelthen friktionspunkterne for første gang. I stedet for at overlade konflikter til at brygge under overfladen, føler folk sig sikre nok til at rejse deres bekymringer og udtrykke deres meninger.

Et vigtigt aspekt ved åben kommunikation er at holde det igennem hele produktlivscyklussen - fra idéer til produktion. Du skal inkludere ingeniører i planlægning af diskussioner, arkitekturbeslutninger, opdateringsprocesopdateringer og implementeringer.

Selvom denne vægt på kommunikation skaber mere ordrette diskussioner, gør det også muligt for ingeniører at have synlighed uden for deres kerneområde, hvilket igen giver dem mulighed for at rådgive andre, mens de er udstyret med den kontekst, der er nødvendig for at træffe sunde beslutninger.

Hold kunden - og hvad de forventer af det produkt, du bygger - i centrum for enhver diskussion og beslutning. Hvis du forbliver på linje med dette mål, er du sikker på at komme videre som en enhed.

Glem at måle dine DevOps-fremskridt

Måling af dine fremskridt er afgørende for DevOps succes. Det giver dig validering, når du fremsætter argumentet for DevOps til tvivl om interessenter, hjælper dig med at overbevise holdout-ledere og minder dit tekniske team om, hvor meget de har opnået.

Inden du foretager en enkelt ændring, skal du oprette en basislinje. Vælg et lille sæt data, du vil spore gennem hele processen. Disse data informerer dine beslutninger og fungerer som brændstof til fortsat at skubbe, når du rammer tilbageslag. Potentielle målinger inkluderer:

  • Nøjagtighedstilfredshed: Elsker dine ingeniører at arbejde i din organisation? Månedlig tilbagevendende indtægt (MRR): Hvor mange penge tjener du fra kunder? Kundebilletter: Hvor mange fejl rapporteres af dine kunder? Distributionsfrekvens: Hvor mange implementeringer har du hver uge eller måned? Gennemsnitstid til gendannelse (MTTR): Hvor lang tid tager det at komme sig efter en serviceforstyrrelse? Service tilgængelighed: Hvad er oppetiden til din ansøgning? Slår du dine nuværende serviceniveauaftaler? Mislykkede implementeringer: Hvor mange udgivelser forårsager serviceforstyrrelser? Hvor mange skal rulles tilbage?

Mikromanering af dit DevOps-projekt

En af de hurtigste måder at underminere dine ingeniører er at mikromane deres arbejde. Dan Pink, forfatter af bogen Drive, mener, at motivation på arbejde er drevet af tre faktorer:

  • Autonomi Mastery Formål

Ekstreme motiverere som høje lønninger, bonusser og aktieoptioner fungerer muligvis på kort sigt, men langvarig jobtilfredshed afhænger mere af personlig og professionel vækst. Du vil have, at dine ingeniører skal eksistere i spændingen ved at føle sig meget udfordret, men ikke overvældet af stress. Denne søde plet er forskellig for hver person. Det er en DevOps-udfordring, men når det engang kan gøre en verden af ​​forskel, hvis det gøres rigtigt. Hvis du kan fremkalde nogens lidenskab, er de sikker på at arbejde entusiastisk.

Tillid kan være en DevOps-udfordring. Det er absolut kritisk for DevOps-organisationer. Du skal stole på dine kolleger, kammerater, ingeniører, ledere og ledere. Du skal også stole på roller og ansvar for de forskellige afdelinger i din organisation - hvilket ikke er at sige, at du aldrig vil have konflikt. Selvfølgelig vil der ske øjeblikke af friktion mellem mennesker. Men at minimere disse øjeblikke og muliggøre en sund konfliktløsning er det, der adskiller DevOps-fokuserede ingeniørhold fra deres konkurrence.

Skifter for meget, for hurtigt

Mange hold foretager for mange ændringer for hurtigt. Mennesker kan ikke lide forandring. DevOps er fordelagtigt på lang sigt, hurtige ændringer i den normale måde at gøre ting på kan skurrende for ingeniører.

Én manglende DevOps er, at det betyder, at alle bor i greenfield (ny software) med regnbuer og enhjørninger. Det kan lyde som, "Hvis du kun kan få dit team til at arbejde sammen, vil softwareudvikling være let!" Det er ikke sandt. Softwareteknik er hårdt og vil altid være hårdt. Det er en ting de fleste ingeniører kan lide ved det. Du nyder en udfordring. Men udfordringer skal være stimulerende og ikke stressende.

DevOps sigter ikke mod at fjerne alle de intellektuelle udfordringer ved engineering. I stedet tilbyder det at minimere friktionen mellem mennesker, så alle kan fokusere på deres arbejde. Hvis du forsøger at foretage for mange ændringer for hurtigt, kan du finde dig selv midt i en altomfattende oprør - Mutiny on the Binary.

Valg af DevOps-værktøjer dårligt

Selvom du afprioriterer værktøj i DevOps - og med rette - er værktøj stadig en faktor. Selv det mindst vigtige aspekt af DevOps bidrager til din samlede succes. De værktøjer, du vælger, skal løse de problemer, som dit teknikerteam oplever, men bør også tilpasses stilen, viden og komfortområderne i dit eksisterende team.

Vær ikke bange for at prøve flere løsninger og se, hvilken der passer bedst. At dedikere et par uger til et minimum levedygtigt produkt (MVP) eller proof of concept (POC) for at teste et værktøj er det værd at gøre. Selv hvis du ender med at smide det væk, er det at ”spilde” de tekniske ressourcer at foretrække frem for at gå all-in på en bestemt teknologi kun for at finde ud af, at det et år senere er, at det ikke passer godt.

Frygt for fiasko for dit DevOps-projekt

At fejle hurtigt er en kort måde at sige, at du konstant skal itereere at identificere problemer tidligt i processen uden at bruge et ton tid og penge. Det er noget, som mange mennesker i teknologien snakker om, og som få faktisk implementerer, fordi det kræver hurtig iteration i et miljø, hvor fejl har en lille eksplosionsradius og let kan rettes. Alt for ofte hævder virksomheder en fejlsom mentalitet og fyrer i stedet af den første ingeniør, der sletter en produktionsdatabase. (Som om ingen ingeniør derude aldrig har slettet en produktionsdatabase ...)

I forbindelse med DevOps er det dog bedre, at du fejler godt end at fejle hurtigt. Svigtende godt indebærer, at du har overvågning på plads for at advare dig om potentielle problemer længe før situationen påvirker kunderne. Svigtende godt indebærer også, at du har designet dit system på en segmenteret måde, der forhindrer, at en tjeneste, der falder ned, går over i et systemisk afbrydelse. Men organisationer, der mislykkes, går også et skridt videre: De bebrejder ikke mennesker. I stedet ser de efter fejl i systemer og processer.

Kaizen er det japanske ord for kontinuerlig forbedring. I DevOps betyder kaizen kontinuerligt at forbedre dine processer. Det er ikke nogen sexet transformation, der har en begyndelse og ende. Målet er ikke at gå fra nul til perfekt. I stedet opmuntrer DevOps til at arbejde langsomt og gradvist med at gøre en ting bedre hver dag. Hvis du forlader arbejde hver aften ved at vide, at bare et lille aspekt af arbejdet er bedre på grund af dig, ville du ikke føle dig tilfreds? Mange ingeniører føler det på den måde.

I stedet for at forsøge at undgå fiasko for enhver pris insisterer DevOps på et tankegang om vækst. Fejl er ikke en markering af dumhed eller dårlig forberedelse. Det er en markør for vækst og et nødvendigt skridt i innovation. Innovation er et resultat, du skal være villig til at forfølge, selvom det betyder, at du lejlighedsvis mislykkes.

At være for stiv vil skabe DevOps-problemer

DevOps er ikke receptpligtig, og det er både det bedste og værste ved det. DevOps ville være så meget lettere at implementere, hvis du havde en liste over ti trin, du kunne tage for at opnå DevOps nirvana. Hvis det bare var så let! Men mennesker fungerer ikke på den måde, og grupper af mennesker - som f.eks. I ingeniørhold og i store organisationer - skaber endnu mere kompleksiteter, der skal løses.

Selvom der ikke findes nogen plan for at opbygge en DevOps-organisation, har du beføjelse til at skræddersy metodikken til praksis, der fungerer for dig og dit team. Du kender din organisation, og som en kyndig ekspert, skal du tænke uden for boksen, når du anvender de grundlæggende forhold. Nogle af tingene i DevOps passer perfekt til dig. Andre vil have lyst til at bære en jakke, der bare er en størrelse for lille. Det er okay.

Du vil begå fejl. Ingen er perfekt. Men hvis du slipper lidt, giver dine ingeniører mulighed for og stoler på dit team, vil du se fantastiske resultater. Kom bare i gang. Og husk: inviter alle til bordet, måle dine fremskridt, prioriter kultur frem for teknologi og give dine ingeniører mulighed for at gøre, hvad de gør bedst.