Programmering

Hvordan en moderne udviklingsorganisation ser ud

Jeg arbejder for en start i San Francisco. Det, vi bruger i Silicon Valley, er ikke nødvendigvis et tegn på branchen som helhed. Så jeg spurgte uformelt et par venner fordelt over hele branchen, hvilke værktøjer de bruger for at finde ud af de værktøjer, som en moderne (men ikke Silicon Valley) udviklingsorganisation bruger.

Indrømmet, hvis du befinder dig i en grå kabinefarm - eller, værre, en beige kabinefarm - er du muligvis ikke på den blødende, førende eller endda kedelige, men ikke tillidte kant af teknologi, så din kilometertal kan variere. Hvis du bare spørger Microsoft "hvad skal vi købe?" så igen kan din kilometertal variere, men selv Microsoft indser, at Git er konge, og vores verden bliver mere og mere forskelligartet, hvilket gør en enkelt leverandørs udviklingsværktøjsstabel sværere at afsætte dig til. Det er en polyglotverden i dag, når det kommer til udviklingsværktøjer.

Hvis du prøver at se, hvor du er i forhold til andre, viser denne artikel dig. Hvis du ønsker at oprette en ny butik og spekulerer på "Hvad laver alle andre, og hvor skal vi hen?" så viser det dig det også.

Hvad der er klart er, at moderne udviklingsorganisationer - selv dem, der måske synes, de er lidt gamle - ikke ligner dem, der var for nogle få år siden. I den nærmeste fremtid har vi et meget container- / maskinlæringssted og måske endda chatops-drevet. Når alt kommer til alt var scrums og devops rumfremmede begreber for ikke så længe siden.

Hvad er almindeligt på tværs af moderne udviklingsorganisationer

Følgende ting er almindelige blandt de fleste mennesker, jeg talte med. De repræsenterer den ikke-ambitiøse tilstand af softwareudvikling.

E-mail er død, Slack er konge

Seriøst har intet opnået bred accept så hurtigt som Slack har gjort. Sikker på, nogle steder bruger HipChat eller andre Slack-lignende ting, men Slack er, hvordan organisationer arbejder i disse dage. De er snakkesalige, og nu kan chatten søges.

PCM og CVS er døde; alt hagl Git og GitHub

Tilbage på dagen var kodecheckins hårde, og låse var pessimistiske. Jeg har arbejdet med globale projekter, hvor checkins over et transatlantisk kabel tog for evigt. Og lad os ikke tale om kasser.

Nu distribueres revisionskontrol, og Git - skønt det er betydeligt sværere at bruge end tidligere værktøjer - var et sådant skridt fremad, at Git har opnået fuldstændig dominans. \

Alle har en Mac

Jeg er en tilbageholdende Mac-bruger. Hvis det var op til mig, kørte jeg Ubuntu Linux på bedre hardware. Min computer, der er betalt af virksomheden, er dog en Mac. Og jeg er ikke alene. MacOS er hurtigere, men mere oppustet og besværlig end Windows, og jeg har alle mine kendte værktøjer som SSH, men jeg savner stadig Linux.

Jira er stadig vores oppustede konge

Jira kan blive ældre, og der kan være alternativer som BaseCamp og open source Open Project. Men Jiras styrke er, at hvis du er på det, forlader du ikke. Du er allerede bekendt med det. Det har en markedsplads for udvidet funktionalitet. Det tilsluttes de fleste ting, og de fleste andre ting understøtter det.

Jenkins tjener os stadig

Der er upstarts som Travis-CI og også-rans som Jira-skaberen Atlassian's Bamboo, men i sidste ende er Jenkins stadig på toppen, der kører vores kontinuerlige integration og implementering til vores testmiljø.

AWS er, hvor det er

Amazon Web Services er ikke den mest overkommelige cloudplatform. Det er ikke det nemmeste at bruge. Men det er bestemt det mest komplette, og det er det, de fleste mennesker kender. Jeg har mødt folk, der bruger Google Compute Engine eller Microsoft Azure. Jeg har selv brugt dem til projekter, men som standard er platformen AWS.

Den interne platform er stadig VMware

For udviklere bag virksomhedens firewall, hvor skyen kun er en drøm, er de stadig på VMware og gør tingene på VMware-måde. Forsyning er stadig et ventetid, og SAN-ydeevnen er stadig uforudsigelig.

Agil udvikling er for det meste scrum-ish

Alle gør noget som scrums, men ikke scrums nøjagtigt, og få er med rette overbeviste om, at de gør agile ret, eller at deres "agile" virkelig er adræt - og ikke hverken "last-cult agile" eller kaos med et andet navn.

Disciplin, projektstyring og produktstyring er stadig underuddannet, underkompenseret og underudbetalt.

Hvad der trender på tværs af moderne udviklingsorganisationer

Der er mange førende fremgangsmåder, vi taler om hos —devops, Docker-containere, Kubernetes-containere, Windows-containere, cloududviklingsplatforme (PaaS), udvikling af omnidevice, maskinindlæring, nye sprog som Kotlin og Google Go og så videre - det paradis ikke opnået global adoption (endnu).

Beholdere

Uanset om det er Docker eller dets mulige arving Kubernetes, bruger ikke alle containere.

For det første, hvis du er under belastning stort set hele tiden, er der overhead at køre det på AWS. Din omkostningsfordel sker kun, hvis du faktisk kan dele ressourcer.

For det andet gør brugen af ​​containere din software mere vedligeholdelig, men det gør også din opbygnings- og implementeringsproces langsommere og mere kompliceret.

Maskinelæring

At identificere, hvor du kan bruge maskinindlæring (en delmængde af kunstig intelligens) og at samle dataene i et format, der giver dig mulighed for at bruge maskinindlæring er den svære del.

Nogle mennesker bruger det under dækslet i produkter, de køber, men de har ikke den videnskabelige ekspertise til at bevise dets anvendelighed. Desuden har en mangel på ekspertise på markedet gjort adoption af maskinlæring mere dæmpet, end hypen antyder.

Chatops

Folk er interesserede i chatops, men ingen, jeg talte med, gør det endnu.

$config[zx-auto] not found$config[zx-overlay] not found