Kako izgleda moderna razvojna organizacija

Radim za startup iz San Francisca. Ono što koristimo u Silicijskoj dolini nije nužno pokazatelj cjelokupne industrije. Stoga sam neformalno zamolio nekoliko prijatelja distribuiranih u cijeloj industriji koje alate koriste kako bi pronašli alate koje koristi moderna (ali ne Silicijska dolina) razvojna organizacija.

Odobreno ako se nalazite na farmi sivih kabina - ili, još gore, na farmi bež-kabina - možda niste na krvarućem, vodećem ili čak dosadnom, ali nepovjerljivom rubu tehnologije, tako da vaša kilometraža može varirati. Ako samo pitate Microsoft "što bismo trebali kupiti?" opet, vaša kilometraža može varirati, ali čak i Microsoft shvaća da je Git kralj i da je naš svijet sve raznolikiji, čineći bilo koji paket razvojnih alata pojedinog dobavljača težim za posvećivanje. Danas je to poliglotski svijet što se tiče razvojnih alata.

Ako pokušavate vidjeti gdje ste u odnosu na druge, ovaj članak će vam pokazati. Ako želite uspostaviti novu trgovinu i pitate se "Što rade svi ostali i kamo bismo trebali ići?" onda će i vama to pokazati.

Jasno je da moderne razvojne organizacije - čak i one koje možda misle da su pomalo staroškolske - ne izgledaju kao ni one od prije nekoliko godina. U bliskoj budućnosti imat ćemo vrlo spremnik / mjesto za strojno učenje, a možda ćemo čak i biti vođeni chatovima. Napokon, scrums i devops bili su svemirski pojmovi ne tako davno.

Ono što je zajedničko modernim razvojnim organizacijama

Sljedeće su stvari uobičajene među većinom ljudi s kojima sam razgovarao. Oni predstavljaju ne-aspiracijsko stanje razvoja softvera.

E-pošta je mrtva, Slack je kralj

Ozbiljno, ništa nije postiglo široko prihvaćanje tako brzo kao Slack. Svakako, neka mjesta koriste HipChat ili druge stvari slične Slacku, ali Slack je način na koji organizacije danas rade. Brbljavi su, a sada je u chatu moguće pretraživati.

PCM i CVS su mrtvi; pozdravljeni Git i GitHub

Nekada su provjere kodova bile teške, a brave pesimistične. Radio sam na globalnim projektima gdje su prijave preko transatlantskog kabla trajale zauvijek. I ne govorimo o naplatama.

Sada se kontrolira revizija i Git je - iako znatno teži za korištenje od prošlih alata - bio takav korak naprijed da je Git postigao potpunu dominaciju. \

Svi imaju Mac

Nerado sam Mac korisnik. Da je do mene, pokrenuo bih Ubuntu Linux na boljem hardveru. Međutim, moje računalo koje plaća tvrtka je Mac. I nisam sama. MacOS je brži, premda napuhaniji i glomazniji od Windowsa, a ja imam sve svoje poznate alate poput SSH-a, ali još uvijek mi nedostaje Linux.

Jira je još uvijek naš napuhnuti kralj

Jira možda stari, a možda postoje i alternative poput BaseCampa i otvorenog koda Open Project. Ali Jirina snaga je u tome što ako ste na tome, ne odlazite. Već ste ga upoznali. Ima tržište za proširenu funkcionalnost. Priključuje se na većinu stvari, a većina drugih stvari to podržava.

Jenkins nas još uvijek poslužuje

Postoje početnici poput Travis-CI-ja i takodjer rana poput Bambusa tvorca Jira Atlassian, ali na kraju je Jenkins i dalje na vrhu koji vodi našu kontinuiranu integraciju i postavljanje u naše testno okruženje.

AWS je tamo gdje je

Amazon Web Services nije najpristupačnija platforma u oblaku. Nije najjednostavnije koristiti. No, zasigurno je s najvećim mogućnostima i ono je što je većini ljudi poznato. Upoznao sam ljude koji koriste Google Compute Engine ili Microsoft Azure. I sam sam ih koristio za projekte, ali po defaultu platforma koju ljudi koriste je AWS.

Interna platforma je i dalje VMware

Za programere iza korporativnog vatrozida gdje je oblak samo san, oni i dalje rade na VMwareu i rade stvari na VMware način. Isporuka je još uvijek na čekanju, a izvedba SAN-a i dalje je nepredvidljiva.

Agilan razvoj uglavnom je skroman

Svatko radi nešto poput skrumova, ali ne baš tačno, i malo je onih koji su s pravom uvjereni da rade agilno kako treba ili da je njihov "agile" zaista agilan - a ne niti "agilni kargo-kult" ili kaos pod drugim imenom.

Disciplina, upravljanje projektima i upravljanje proizvodima još su uvijek nekvalificirani, podkompenzirani i manje nagrađeni.

Što je u trendu modernih razvojnih organizacija

Postoje mnoge vodeće prakse o kojima govorimo - devops, Docker spremnici, Kubernetes spremnik, Windows kontejneri, platforme za razvoj oblaka (PaaS), razvoj sveobuhvatnih uređaja, strojno učenje, novi jezici poput Kotlina i Google Goa i tako dalje - koji imaju utočište (još nije postignuto).

Spremnici

Bez obzira radi li se o Dockeru ili njegovom mogućem nasljedniku Kubernetesu, ne koriste svi kontejnere.

Prvo, ako ste cijelo vrijeme pod velikim opterećenjem, potrebno ga je pokrenuti na AWS-u. Vaša se troškovna prednost događa samo ako stvarno možete dijeliti resurse.

Drugo, upotreba spremnika čini vaš softver održivijim, ali također čini proces izrade i implementacije sporijim i složenijim.

Strojno učenje

Težak je dio utvrditi gdje možete koristiti strojno učenje (podskup umjetne inteligencije) i mijenjanje podataka u format koji vam omogućuje upotrebu strojnog učenja.

Neki ga koriste ispod pokrivača u proizvodima koje kupuju, ali nemaju stručnost u području podataka kako bi dokazali njegovu korisnost. Također, nedostatak stručnosti na tržištu učinio je usvajanje strojnog učenja prigušenijim nego što bi to hype naznačio.

Chatops

Ljudi su zainteresirani za chatope, ali to još nitko s kim sam razgovarao ne radi.