Mobilné Språvy, Gadgety, Blogy's Secenziami

Hur observerbarhet ger utvecklare rÀtt mÀngd komplexitet

Obs: Följande artikel hjÀlper dig med: Hur observerbarhet ger utvecklare rÀtt mÀngd komplexitet

Kommentar: En fantastisk utvecklarupplevelse krÀver att man arbetar med bÄde förenkling och komplexitetsomfattande utvecklingsverktyg, sÀger Akita Softwares vd Jean Yang.

Även om vi ibland blandar ihop enkelt eller enkelt med en fantastisk utvecklarupplevelse, ibland Ă€r vad en utvecklare vill ha förmĂ„gan att dyka djupt in i komplexiteten, eftersom det Ă€r dĂ€r hon fĂ„r de insikter som behövs för att verkligen ta itu med ett problem.

Detta Ă€r argumentet Jean Yang, grundare och VD för Akita Software, gör, och hon har rĂ€tt. Även nĂ€r branschen fortsĂ€tter att komma pĂ„ nya sĂ€tt att förenkla utvecklingen genom verktyg med lĂ„g kod eller ingen kod, mĂ„ste vi ocksĂ„ hĂ„lla ett öga pĂ„ saker som ger utvecklare den komplexitet de behöver för att göra sina jobb vĂ€l – ett exempel Ă€r observerbarhet.

SER: De bĂ€sta programmeringssprĂ„ken att lĂ€ra sig – och de sĂ€msta (TechRepublic Premium)

VĂ€rdet av att ha olika kategorier av utvecklarverktyg

IstÀllet för att blanda de olika delarna av utvecklarupplevelsen (DX) till en enda stor boll, föreslog Yang att vi skulle dela upp utvecklarupplevelsen i minst tvÄ olika vÀgar:

NĂ€r vi pratar om “utvecklarupplevelse” behöver vi verkligen dela upp dev-verktyg i tvĂ„ kategorier: de som förenklar saker och ting och de som hjĂ€lper utvecklare att engagera sig i komplexitet. DX-behoven Ă€r olika för förenklingsverktyg kontra komplexitetsomfamnande verktyg! I kategorin “förenkling” av utvecklingsverktyg finns alla typer av automationsverktyg: API:er som Stripe och Twilio; SaaS-produkter som Netlify; domĂ€nspecifika sprĂ„k som GraphQL. Du vill att dessa verktyg ska vara sĂ„ ett klick som möjligt och skydda utvecklaren frĂ„n de flesta detaljer.

Det Ă€r hĂ€r mĂ„nga mĂ€nniskor stannar nĂ€r de tĂ€nker pĂ„ utvecklarupplevelsen. För flera Ă„r sedan kallade en kollega (Yehuda Katz) detta “utvecklarergonomi”, och namnet har fastnat för mig. Som Ben Kinsey definierade utvecklarergonomi Ă€r det “studiet av effektivitet i ens arbetsmiljö.” SĂ„ om verktyg/dokument/etc. gör livet lĂ€ttare för utvecklaren, det Ă€r bra ergonomi.

Eller kan vara. Chris Ferdinandi har nĂ€mnt problemet med detta tillvĂ€gagĂ„ngssĂ€tt: “Precis som skattesĂ€nkningar för företag ofta inte leder till nya jobb, utan leder istĂ€llet till större bonusar för chefer eller aktieĂ€garutbetalningar, [better ergonomics to yield] mer JS leder ofta till att utvecklare har lĂ€ttare att skriva Ă€ven JS, och cykeln fortsĂ€tter.”

Och, naturligtvis, “enklare” betyder inte nödvĂ€ndigtvis en svart lĂ„da som abstraherar eller döljer all komplexitet. Faktum Ă€r att ibland vad du vill Ă€r raka motsatsen, som Yang fortsatte:

Det mest klassiska exemplet pĂ„ ett utvecklingsverktyg i kategorin “komplexitetsomfattande” Ă€r en felsökning: den visar dig din stackspĂ„rning; det visar dig en samtalsgraf. Det lĂ„ter dig komma dit du behöver genom att ge dig verktyg för att utforska ett komplext system. Observerbarhetsverktyg finns i denna kategori. NĂ€r mĂ€nniskor tĂ€nker pĂ„/letar efter utvecklarverktyg har de ofta förenklingsverktyg i Ă„tanke. Men för vissa Ă€ndamĂ„l Ă€r det du behöver faktiskt ett komplexitetsomfamnande verktyg. Till exempel: övervakning kan bara ta dig sĂ„ lĂ„ngt. Vid nĂ„got tillfĂ€lle behöver du nĂ„got som kan hjĂ€lpa dig grundorsaken.

Som sĂ„dan, skrev hon, behöver vi “Mer UX [user experience] konversationer om hur man hjĂ€lper utvecklare att omfamna komplexitet” samt “Mer kĂ€rlek och uppmĂ€rksamhet för komplexitetsomfattande utvecklingsverktyg, inte bara stĂ€ll-det-och-glöm-det-verktygen.”

Honeycomb CTO och medgrundare Charity Majors har betonat vikten av komplexitetsomfattande verktyg inom omrĂ„det observerbarhet. Observabilitetsdriven utveckling, enligt henne, Ă€r “aktivt instrumentering av kod för att kunna ha mer av en konstant ‘konversation’ med produktionssystem.” Det Ă€r att förstĂ„ hur Ă€ndringar i koden pĂ„verkar anvĂ€ndare i realtid, driven av att utvecklare Ă€ger resultatet av koden de skriver, eftersom ingen annan Ă€r bĂ€ttre positionerad för att fixa problem i den koden. Ingen annan vet det lika bra.

För att utvecklare ska göra sitt jobb bra mÄste de ha tillgÄng till komplexiteten i loggar, spÄr etc. Det Àr inte en frÄga om att övervaka system efter utvecklingen; det bygger pÄgÄende insikter i utvecklingsprocessen genom dygdiga Äterkopplingsslingor.

Kort sagt, för Yangs poÀng, lÄt oss för all del göra vissa aspekter av utvecklarupplevelsen sÄ enkla som möjligt. För andra, men lÄt oss hÄlla saker komplexa.

.