Permiteti-mi sa va spun o poveste.

De curand m-am alaturat unei companii de consultanta. Partea amuzanta de a fi consultant este ca ai de a lucra cu o varietate de clienti si, intr-adevar, de cand am inceput acum cateva luni, am lucrat cu 3 echipe diferite. Pentru un pic de context, aceste echipe au fost toate co-localizate. Marimea lor era in jur de 6-8 persoane, formate in mare parte din ingineri plus un proprietar de produse, uneori cu un maestru scrum. mature matrimoniale www.vividmpegs.com Aproape toata lumea din echipa sta unul langa altul, cu persoana ciudata de la serviciu din zi in zi.

Cand ma alatur unei echipe, imi pun mereu multe intrebari, in principal pentru a intelege modul in care functioneaza si cum le-as putea ajuta. Cu toate aceste trei echipe, in mod invariabil, trebuie sa vorbim despre controlul versiunilor, iar conversatia a decurs astfel:

Eu: „Ok, deci ce se intampla cand verific un cod?”

Ei: „Creati o solicitare de tragere, puneti legatura in slabiciune si cineva o va revizui”

Eu: “Oh, deci nu te impingi direct la stapan?”

Ei: * ma priveste cu ochii larg deschisi, de parca au vazut doar un extraterestru … matrimoniale romania casatorie www.gp777.net cateva secunde de tacere … *

Ei: * clatinand capetele dezaprobator * „Nu, nu impingem sa stapanim. Codul trebuie revizuit mai intai ”

In acest moment ii pot vedea gandindu-se: „Este un tip serios? Este aceasta persoana care trebuie sa ne „ajute”?

Bineinteles ca nu ma deranjeaza ca sunt chestionati si oamenii care rezista ideilor mele, este o parte a meseriei mele. matrimoniale casatorii craiova dornbaum.info Insa ceea ce m-a surprins cu adevarat a fost cantitatea incredibila de rezistenta la ideea ca cineva ar putea chiar sa-si propuna direct sa stapaneasca. Am facut o multime de jocuri de noroc si am intrebat oamenii din alte companii, si se pare ca normele de functii sunt norma. Nici macar nu este o intrebare, este modul in care industria noastra face lucrurile.

Venind de la o companie unde in loc sa ma apas pe maestru era norma, m-am gandit si am decis sa scriu aceasta postare pe blog. Vreau sa explic de ce cred ca echipele care folosesc ramuri de caracteristici de scurta durata ar beneficia, de obicei, de a viza sa lucreze direct la master, in loc sa foloseasca ramuri de caracteristici. matrimoniale raid ploiesti femei testmasters.info

Permiteti-mi sa explic ce am observat a fi procesul tipic al unei echipe care foloseste ramuri de caracteristici de scurta durata:

  • Echipa are o serie de povesti de facut. In mod obisnuit, acestia ar avea un „backdog”, cu o gramada de povesti de facut in acest sprint. (Apropo, am cateva idei despre cum s-ar putea face acest lucru mai bine, mai multe despre asta intr-o postare ulterioara.)
  • Un dezvoltator este gratuit, asa ca se uita in urma si alege o poveste. (Procesul de a decide * ce * sa alegeti variaza si poate fi un semn graitor al mai multor probleme din echipa. raid matrimoniale femei ploiesti www.preservingyourretirement.co.uk Dar, din nou, mai multe despre asta intr-o postare ulterioara.)
  • Dezvoltatorul creeaza o noua filiala din master si incepe sa lucreze la poveste.
  • Pe masura ce lucreaza, angajeaza si imping codul catre sucursala, cu orice frecventa cu care sunt confortabili. Poate fi minute, ore sau zile.
  • Ori de cate ori este impins codul, instrumentul de construire (Jenkins, cercuri etc. matrimoniale strainatate www.hlsw.org ) executa o acumulare pe ramura. De obicei, compilarea compileaza si pacheaza codul, urmata de executarea unor teste. Este posibil sa se implementeze intr-un mediu dev.
  • Cand dezvoltarea este completa, care ar putea dura de la cateva zile pana la aproximativ o saptamana, dezvoltatorul creeaza o solicitare de tragere.
  • Cineva din echipa examineaza cererea de tragere. publi24 matrimoniale timisoara gretagmacbethstore.com In unele echipe, oricine il poate revizui, dar in alte echipe, acesta trebuie sa fie realizat de un lider de tehnologie sau un dezvoltator senior.
  • Revizorul (e) ar putea lasa comentarii cu privire la PR, solicitand modificari.



    • prestari servicii matrimoniale
    • site de matrimoniale online gratis
    • publi 24 arad matrimoniale
    • anunturi matrimoniale romania cu poze
    • matrimoniale. ro
    • agentii matrimoniale bucuresti
    • matrimoniale porno
    • matrimoniale monitorul de botosani
    • matrimoniale 3x
    • matrimoniale tecuci
    • matrimoniale 3xforum
    • matrimoniale beclean
    • matrimoniale alba24
    • matrimoniale alba 24
    • matrimoniale publi24 cluj
    • matrimoniale publi 24 oradea
    • matrimoniale casatorie
    • public 24 arad matrimoniale
    • matrimoniale casatorii botosani
    • site-uri matrimoniale gratis romania





    In acest caz, dezvoltatorul revine la implementarea acelor modificari, apoi trimite din nou PR-ul. Acest pas s-ar putea repeta de cateva ori.

  • In cele din urma, PR-ul este aprobat. matrimoniale facebook images.google.bf Dezvoltatorul fuzioneaza sucursala cu maestrul, de regula, improscand toate angajamentele de la sucursala intr-un mare angajament in maestru („squash and merge”).
  • Instrumentul CI executa o baza de baza. Conducta pentru a lua aceste schimbari in productie incepe – uneori sunt dislocate automat pana la productie, alteori necesita aprobare manuala in una sau mai multe etape.

Fluxul dvs. de lucru exact ar putea varia, dar ma astept ca acest lucru sa sune familiar pentru multe persoane. prestari servici matrimoniale sweetbellpeppers.com Acest flux de lucru este popular sub numele de GitHub Flow.

Doar ca sa fiu clar, stiu ca exista alte modalitati prin care echipele folosesc sucursale, de exemplu Gitflow cu ramuri cu viata lunga. Aceste strategii de ramificare deschid o alta lume a problemelor. Daca doriti sa aflati despre aceste probleme, va recomand aceasta prezentare de Steve Smith. Cu toate acestea, in aceasta postare vreau sa ma concentrez pe problemele pe care le vad cu ramurile de trasaturi de scurta durata si de ce cred ca echipele ar beneficia de dezvoltarea bazata pe trunchi fara filiale. matrimoniale gorj tg jiu www.condogateway.com

Ceea ce sugerez ca alternativa este sa lucrati direct la master, fara utilizarea ramurilor. Desigur, acest lucru trebuie facut intr-un mod sigur. Pentru a putea face asta, o echipa ar avea nevoie de aceste practici cheie:

1. Programare pereche

Trebuie sa faci o programare a perechilor si multe. Prin imperecherea cu o alta persoana, codul care este scris este revizuit in timp real, astfel incat nu mai este necesara o solicitare de tragere mai tarziu. publi24 matrimoniale iasi romeo.cinecom.com In plus, programarea perechilor ofera un numar incredibil de avantaje unei echipe: rezistenta imbunatatita a echipei; oamenii sunt mai putin distrasi; munca se face mai repede; calitate superioara; stilul de codare devine mai standard in intreaga echipa; oamenii gasesc solutii mai bune la probleme impreuna; impartasire de cunostinte; etc. (intr-o zi voi scrie in mod special despre programarea perechilor si voi intra in mai multe detalii.)

In unele situatii, puteti trece chiar si la nivelul urmator si puteti face programare de mob, toata lumea lucreaza la acelasi lucru, in acelasi timp, pe acelasi computer (de exemplu, pentru deciziile care sunt mai bine luate in echipa, cum ar fi arhitectura sau designul ).

2. Au o constructie in care ai incredere

Trebuie sa aveti o constructie in care aveti incredere. matrimoniale .ro www.metallicster.org Trebuie sa execute suficiente teste automate pentru a va asigura ca aveti incredere ca baza de cod este intr-o stare de eliberare. Si trebuie sa fie suficient de rapid incat sa puteti rula construirea locala inainte de a impinge sa stapaneasca, deoarece nu doriti sa impingeti ceva rupt care sa blocheze restul echipei.

Pentru a realiza aceste doua lucruri, echipele trebuie sa urmeze de obicei practici precum TDD, BDD si sa aiba o strategie de testare eficienta – de exemplu, urmand piramida de testare pentru a reduce cantitatea de teste lente.

Daca construirea este rupta vreodata, remedierea acesteia devine imediat prioritatea echipei. In scenariul putin probabil ca remedierea nu a fost rapida, ar trebui sa reveniti la modificarile rupte. anuntul matrimoniale www.marathonorg.com

3. Utilizati „ramura prin abstractizare” sau stegulete caracteristice pentru a ascunde lucrarile neterminate

In orice moment, va exista un cod neterminat in master. Acest lucru nu produce niciun rau, deoarece acest cod nu este inca utilizat pe caile de productie. Exista insa avantaje in faptul ca acest cod este deja in master: observati mai rapid problemele de integrare, puteti face o refactorizare mai complexa si puteti dovedi ca codul va functiona conectandu-l la testele dvs.

In practica, am descoperit ca de cele mai multe ori puteti utiliza modelul „ramura prin abstractizare” pentru a evita utilizarea codului in productie pana cand este gata. matrimoniale femei cu nr de tel pentru casatorie kuulikodu.voteforshomo.org Pentru scenarii mai complexe am folosit steaguri de caracteristici.

In compania mea anterioara, acest lucru a fost norma. Am fost acolo aproape 6 ani, dar stiu ca au urmat aceste practici de mai bine de 10 ani.



  • matrimoniale bucuresti femei cu poza
  • anunturi matrimoniale oradea
  • public 24 buc matrimoniale
  • telegrafonline matrimoniale
  • matrimoniale transexuale
  • matrimoniale suceava femei
  • matrimoniale fete
  • cupidon.ro matrimoniale
  • publi 24 matrimoniale arad
  • publi24 matrimoniale petrosani
  • matrimoniale uk
  • publi24 alba iulia matrimoniale
  • matrimoniale cta.ro
  • matrimoniale romania 2016 femei cu poze
  • matrimoniale sector 1
  • escorte matrimoniale
  • paturi matrimoniale tapitate
  • stapana matrimoniale
  • paturi matrimoniale din lemn
  • matrimoniale internationale





Stiu, prin urmare, ca acest mod de lucru poate avea succes (Cititi partea bonus la sfarsitul acestui articol pentru mai multe detalii despre modul in care lucram).

Cred ca practicile pe care tocmai le-am descris aduc o multitudine de beneficii si comportamente sanatoase pentru o echipa si ar trebui sa fie ceva ce vizeaza echipele. matrimoniale persoane cu handicap purenitesleep.com Dupa ce le aveti, puteti impinge in siguranta direct pentru a stapani si a uita de ramuri. Iata cateva dintre avantajele pe care le-am observat, intr-o ordine anume (s-ar putea sa valorizezi unele mai mult decat altele, in functie de situatia ta):

  • Feedback mai devreme: cu un PR, feedback-ul vine numai atunci cand dezvoltatorul crede ca s-au terminat. In aceasta etapa, de obicei este prea tarziu pentru a schimba ceva substantial. Atunci cand imperecheaza, in schimb, feedback-ul se intampla pe masura ce codul este scris – sau chiar inainte de asta, cand discutati cum sa abordati problema – deci este mult mai usor de schimbat.
  • Feedback de calitate mai buna: cu un PR, feedback-ul este de obicei dat intr-o caseta text. publi24 matrimoniale baia mare dbronxpizzeria.com Cu exceptii rare, acest lucru nu este probabil sa transmita nuanta de care este nevoie adesea o discutie despre software. Autorul original se simte, in mod natural, defensiv in ceea ce percep ei drept „codul lor”, iar comentariile care se intalnesc usor ca neclar au o puternica tendinta de a provoca suparare sau conflicte. Atunci cand imperechezi discutati ideile dvs. fata in fata, unde este o ordine sau o amploare mai usor sa clarificati ce incercati sa spuneti si sa aveti o dezbatere sanatoasa.
  • Proprietatea colectiva a codului: atunci cand codul este scris de o singura persoana, exista o tendinta puternica pentru acea persoana de a vedea asta ca „codul meu”. evenimentul matrimoniale h5gal.com Incepi sa auzi lucruri de genul „oh, Alex a scris asta, trebuie sa le ceri” sau „nu putem lucra la asta pana cand Sam nu se va intoarce”. Atunci cand imperecheaza in schimb, este mult mai probabil ca echipa sa construiasca proprietatea codului colectiv si sa il vada drept „codul nostru”.
  • Stilul de codare a echipei: echipele bune scriu software-ul care pare ca a fost scris de aceeasi persoana. Este un semn ca indivizii apreciaza munca in echipa mai mult decat propriile preferinte individuale. La imperechere, este mult mai usor sa stabiliti un stil de echipa si sa va reamintiti intotdeauna. anunturi matrimoniale gratuite bucuresti lacronicatv.com
  • Integrare mai frecventa (integrare continua reala): destul de des, un PR este ridicat doar atunci cand o poveste / caracteristica este completa. Impingand direct sa stapanim, in schimb, ne integram codul imediat si ne intoarcem la adevaratul sens al „continuu” in integrarea continua.
  • Ne obisnuim sa nu rupem lucrurile: atunci cand lucram direct la master, nu dorim cu adevarat sa impingem nimic rupt, asa ca ne obisnuim sa executam o constructie locala inainte de a impinge si sa implementam codul intr-o serie de modificari care nu se rup. Pe de alta parte, cu ramuri este prea usor sa ignori o constructie esuata si sa o repari doar la final.
  • Mai usor de abordat refactorii mari: atunci cand lucram intr-o sucursala, avem tendinta sa ne temem sa facem lucruri care ar putea provoca conflicte de imbinare, de exemplu redenumirea pachetelor, mutarea lucrurilor, schimbari arhitecturale. matrimoniale ilfov redpointvc.biz Desi inca nu este usor, atunci cand lucrezi direct la master este cel putin mai usor sa faci acele lucruri, deoarece putem sa comitem mici schimbari si sa facem ca restul echipei sa fie la curent. Pentru schimbari cu adevarat complicate, in echipa mea anterioara ne-am obisnuit sa ne adunam in jurul unei singure masini pentru o sesiune rapida de programare a mob-ului improvizat, in care toti stam impreuna si vedem cum va arata solutia.
  • Mai multa vizibilitate asupra a ceea ce lucreaza toata lumea: cand schimbarile sunt intr-o sucursala, acestea sunt mult mai putin vizibile decat daca ne impingem cu totii sa stapanim. Devine mult mai usor sa vezi la ce lucreaza toata lumea si sa vezi daca unul dintre colegii nostri are nevoie de ajutor.
  • Instrumente mai bune pentru revizuirea modificarilor: mai degraba decat sa privim linii rosii / verzi pe o pagina web, asa cum fac oamenii de obicei atunci cand examineaza un PR, exista instrumente mult mai bune pentru a analiza ceea ce s-a schimbat inainte de a le angaja. matrimoniale sector 2 reft.laketahoeriverrafting.com Putem folosi IDE-ul nostru sau orice instrument ne place.
  • Pastrati istoricul original al angajamentelor: atunci cand fuzionati schimbarile dintr-o ramura in maestru, oamenii adesea isi pun toate angajamentele intr-una, pierzand istoria cum si de ce autorul original a facut aceste modificari. Atunci cand lucram la maestru, pastram istoria completa a fiecarui angajament asa cum s-a intamplat. Am lucrat in coduri de 10 ani, ale caror autori au plecat de multa vreme si avand capacitatea de a folosi istoricul git pentru a identifica exact angajamentul in care ceva schimbat a fost de nepretuit, deoarece ne-a oferit sansa de a citi mesajul cu care a trecut. ea si orice alta schimbare care a fost facuta in acelasi timp. matrimoniale crestine ortodoxe fete www.accidentlines.biz

Exista mai multe beneficii care vin din programarea perechilor, mai degraba decat din dezvoltarea bazata pe portbagaj, dar voi vorbi despre cele dintr-o postare dedicata la un moment dat.

Permiteti-mi sa fiu foarte clar: dezvoltarea pe baza de trunchi nu este in sine nimic special si nu ne ofera niciun beneficiu special. Ceea ce ne ofera beneficii sunt practicile pe care trebuie sa le aveti in vigoare pentru a putea dezvolta o baza pe baza de trunchi. Pentru ca o echipa sa poata lucra direct la master, inseamna ca stie sa lucreze fara sa rupa codul, cum sa scrie teste bune, cum sa lucreze eficient eficient etc.

Ati putea spune ca dezvoltarea bazata pe trunchi este un indicator al sanatatii echipei. matrimoniale busteni worldsbestcorp.com



  • publi 24 bucuresti matrimoniale
  • matrimoniale cu poze
  • matrimoniale oradea.ro
  • matrimoniale casatorii cluj
  • matrimoniale cluj napoca
  • matrimoniale medgidia
  • publicat 24 matrimoniale constanta
  • matrimoniale moldova
  • matrimoniale harghita
  • publi24brasov matrimoniale
  • matrimoniale chisinau femei
  • matrimoniale franta
  • matrimoniale constanta 2016
  • matrimoniale targu jiu
  • matrimoniale casatorii sibiu
  • matrimoniale,ro
  • publi24 matrimoniale satu mare
  • matrimoniale femei crestine
  • matrimoniale sentimente
  • matrimoniale gay cluj





Si, intr-adevar, asta au gasit in cartea Accelerate: dupa ce au studiat peste 10.000 de angajati si 2.000 de organizatii, cercetarile au descoperit ca exista o corelatie puternica intre o echipa care face dezvoltare bazata pe trunchi si echipa respectiva. In special, au descoperit ca in echipele performante ramurile traiau mai putin de o zi.

Cand intreb echipele de ce folosesc ramurile de functii sau de ce cred ca nu ar trebui sa impingeti direct pe master, de obicei primesc raspunsuri de genul „Trebuie sa mentinem stapanul intr-o stare buna, ar trebui sa fie intotdeauna eliberabile” sau „Vrem sa revizuim codul celuilalt, pentru a ne asigura ca este de buna calitate si respecta standardele noastre ”. vand si cumpar arad matrimoniale www.marshrut.by Sunt total de acord cu ambele afirmatii, iar in aceasta postare v-am aratat modalitati de a obtine aceleasi rezultate fara a utiliza ramuri.

Cu toate acestea, exista un alt motiv, adesea nespus, pentru care atat de multe echipe folosesc ramuri de caracteristici: „Este mai usor si mai eficient daca fiecare lucreaza in propria ramura, asa ca nu ne ocupam unul de celalalt.

Desi aceasta afirmatie este adevarata, trebuie sa nu sunt de acord. De aici apare cauza principala a atator probleme de echipa. Majoritatea echipelor sunt optimizate pentru performanta individuala, mai degraba decat pentru performanta echipei. admin matrimoniale exitgrandstrand.com Ei privesc cat de productiv este fiecare individ, decat sa priveasca cat de productiva este echipa. In termeni Lean, este un exemplu perfect de optimizare a eficientei resurselor si nu a eficientei fluxului.

Ramurile de functii optimizeaza pentru performante individuale, dar dezvoltarea bazata pe trunchi optimizeaza performanta echipei. Cand optimizati pentru performanta echipei, va parea ca indivizii merg mai incet. Este o schimbare de paradigma si este contrazicator. matrimoniale valenii de munte magesy.bassettmirror.biz Dar este modul in care transformi un grup de contribuabili individuali intr-o echipa.

Dupa ce am petrecut atat de mult timp spunandu-ti ca nu ar trebui sa folosesti ramuri de functii, simt ca trebuie sa clarific acest lucru: da, exista cateva scenarii in care ramurile de functii sunt utile. De regula, as spune ca ramurile de functii sunt bune atunci cand codul are un proprietar clar, dar altcineva lucreaza.

Exemplul perfect este modelul open source: intr-un proiect tipic open source, aveti adesea un proprietar, indiferent ca este vorba despre o persoana singura sau o echipa de baza, apoi un set de persoane care contribuie din intreaga lume, care lucreaza in zone de timp diferite, fara vorbind intre ei. In acest caz, are sens sa solicitati participantilor sa trimita un PR, deoarece proprietarii ar dori sa-l revizuiasca. Este de fapt pentru ce GitHub a inventat PR-uri! In acest scenariu, de asemenea, este mai usor pentru directorii sa respinga orice PR cu care nu sunt de acord (de exemplu, daca PR-ul nu a fost solicitat).

O situatie similara se intampla uneori si in companiile care folosesc un model open source intern: o echipa detine codul, dar pentru ca sunt prea ocupati pentru a lucra la ea, o alta echipa contribuie la acesta, trimitand solicitari de tragere. Nu este singura solutie la aceasta problema, dar este uneori un compromis bun.

Daca utilizati in prezent ramuri de functii si doriti sa ajungeti la stadiul in care puteti lucra direct la master, iata cateva sugestii:

  • Revizuieste-ti strategia de testare si lucreaza pentru a avea o structura stabila de incredere. Poate insemna ca trebuie sa incepeti sa faceti mai mult TDD, sa adaugati mai multe teste, pastrand in acelasi timp o compilare rapida.
  • Incepeti sa imperecheti mai mult. Daca de obicei nu faceti prea multe imperecheri, va sugerez sa incepeti initial sa le faceti cu privire la sarcinile dificile, deoarece va fi mai usor sa convingi pe cineva din echipa ta sa se imperecheze cu tine. Apoi puteti incepe sa o faceti din ce in ce mai multe lucruri si sa creati un grup principal de oameni in echipa carora le place imperecherea. Restul echipei va urma in cele din urma, mai ales daca stabiliti o regula in care codul care a fost scris la imperechere nu are nevoie de o revizuire a codului.

In afara de legaturile directe din articol, acestea sunt resurse bune daca doriti sa aflati mai multe despre subiect:

  • https://trunkbaseddevelopment. com/
  • Integrare continua si ramificare a caracteristicilor – Dave Farley
  • Model de organizare: dezvoltarea bazata pe trunchi – Steve Smith
  • Moartea integrarii continue – Steve Smith
  • Activarea dezvoltarii bazate pe trunchi cu conducte de implementare – Vishal Naik
  • Mergand direct catre portbagaj – Paul Hammant
  • Ce este dezvoltarea bazata pe trunchi? – Paul Hammant
  • Accelerate – dr. Nicole Forsgren, Jez Humble, Gene Kim
  • Efectuati modificari la scara larga in mod incremental cu ramura prin abstractizare – Jez Humble
  • BranchByAbstraction – Martin Fowler
  • https://www.branchbyabstraction.com – Paul Hammant

O multumire speciala lui Will, Aram si Pritesh pentru feedback-ul lor timpur si pentru ca m-au ajutat sa dezvolt si sa perfectionez aceste idei de-a lungul anilor. Va multumesc, de asemenea, lui Jurgen Gmach ca ati examinat proiectul si ati oferit feedback.