Arhitectură și audit

O analiză de arhitectură a tot ce rulezi deja

Din momentul în care o firmă rulează mai mult de o aplicație, întrebările interesante nu mai sunt despre niciuna dintre ele luată separat. Ce vorbește cu ce. Unde același client există de trei ori și cele trei nu sunt de acord. Ce pas dintr-un proces există doar pentru că un sistem nu putea să îl facă în 2016. Cum ajunge o schimbare în producție și cum se întoarce. E partea din muncă în care nu am niciun motiv să îți vând o construcție.

ÎntrebareaRăspunsul obișnuit
O diagramă actuală cu ce rulează undeRar există
Aceeași înregistrare, în câte sistemeTrei, în dezacord
Conexiuni ținute de o persoanăCel puțin una
Sisteme fără cale de actualizareDe obicei unul
Cât durează un releaseMai mult decât spune cineva
Prima discuție e gratuităAfli de care dintre ele ai nevoie înainte să înceapăConstatările sunt ale tale, orice ai decideVorbești cu mine, nu cu un account manager

Recunoști asta

Ai nevoie de asta dacă

  • Afacerea ta rulează pe mai mult de un sistem și nimeni nu poate desena cum se leagă între ele.
  • Același client, produs sau angajat există în trei locuri, iar cele trei nu sunt de acord.
  • Cineva exportă în fiecare săptămână un fișier dintr-un sistem și îl tastează în altul.
  • Există un sistem pe care nimeni nu vrea să îl atingă, și încă ține ceva important.
  • Ești pe punctul de a cumpăra încă o aplicație și nu poți spune dacă înlocuiește ceva sau se adaugă.
  • Livrarea unei schimbări durează zile, iar anularea ei durează mai mult.
  • Ai o ofertă de la un furnizor și niciun mod independent de a judeca prețul, perimetrul sau abordarea.
  • Un proiect rulează, oameni capabili sunt ocupați și nu ajunge nimic.

Patru variante

Ce poți să ceri

Trei dintre ele au un nume. A patra e cea cu care ajunge, de fapt, majoritatea.

O analiză de arhitectură

Îmi dai sistemele pe care le rulezi. Eu desenez cum se leagă în realitate, îți spun unde sunt cusăturile, ce nu are viitor și ce aș face în locul tău, și în ce ordine.

Cineva care să conducă livrarea

Ai un furnizor sau echipa ta, iar construcția nu e problema. Eu conduc livrarea: perimetrul, ordinea lucrărilor, dependențele, ce a întârziat și de ce, și ce trebuie decis săptămâna asta.

O opinie tehnică, la cerere

Iei tot timpul decizii greu de întors și nimeni din jur nu e destul de tehnic ca să te contrazică. O înțelegere prin care poți aduce una, fără să deschizi un proiect de fiecare dată.

Ceva ce nu e pe lista asta

Majoritatea lucrurilor pentru care sunt căutat aici nu au încă un nume. Descrie-l și îți spun dacă e ceva ce pot face bine sau dacă ai nevoie de altcineva.

Mică, medie sau corporație. Simptomele de mai sus nu se schimbă cu numărul de angajați. Doar numărul de sisteme se schimbă, iar o firmă cu patru aplicații poartă aceeași discuție ca una cu patruzeci. Am petrecut ani de ambele părți ale liniei, iar la scară de corporație intru ca consultant alături de echipele tale, nu în locul lor.

Peisajul

Harta despre care toată lumea presupune că există

Roagă cinci oameni din firmă să deseneze care sisteme vorbesc cu care și primești cinci desene diferite, niciunul complet. Nu pentru că a fost cineva neglijent, ci pentru că fiecare conexiune a fost adăugată într-o marți ca să rezolve o problemă, și nimănui nu i s-a cerut vreodată să țină imaginea întreagă. Primul lucru pe care îl produce o analiză de arhitectură e imaginea asta, și de obicei e prima dată când o vede cineva.

  • Fiecare sistem care poartă date de business, inclusiv cele cumpărate fără IT
  • Ce circulă între ele, în ce direcție și cât de des
  • Unde aceeași înregistrare stă în mai multe locuri și care copie câștigă
  • Unde o persoană e integrarea, făcând de mână ce nu leagă niciun sistem
  • Ce sisteme nu mai au cale de actualizare și ce e prins în ele

Cum arată de obicei un peisaj

Financiarsistem de referință
CRMlistă proprie de clienți
Magazin onlinelistă proprie de clienți
Export săptămânalo persoană, de mână
HRlistă proprie de angajați
Instrument internun autor, fără documentație
Ce arată harta întâiConstatare
Clientul există în trei sistemeTrei adevăruri
O conexiune e o persoanăPunct unic
Un sistem pe care nimeni nu îl poate schimbaFără cale

O schiță a formei, nu a vreunui client real. A ta se desenează din sistemele tale.

Felul în care se lucrează

Jumătate din proces există pentru că softul nu putea

Procesele sunt rareori proiectate. Se adună. Cineva adaugă o aprobare pentru că un sistem nu avea roluri, un tabel pentru că un raport nu exista, o a doua introducere pentru că două sisteme nu s-au înțeles niciodată. Ani mai târziu constrângerea a dispărut și pasul supraviețuiește, iar toată lumea presupune că e politică internă. Citirea procesului împreună cu sistemele e singurul mod de a distinge ce pași sunt afacerea ta și care sunt țesut cicatricial.

  • Ce pași există dintr-un motiv de business și care dintr-unul tehnic care între timp a expirat
  • Unde se introduce aceeași informație de două ori, și cât costă asta în ore și în erori
  • Aprobări pe care nu le citește nimeni și decizii pe care nu le asumă nimeni
  • Rapoarte făcute de mână în fiecare lună, pe care un sistem le-ar produce singur
  • Ce s-ar schimba cu adevărat dacă un sistem ar fi înlocuit și ce nu

Eficiența nu e aici un exercițiu de tăiat costuri. Scopul nu e să scoți oameni. E că orele petrecute ca să ții două sisteme în acord sunt ore pe care nu le-a ales nimeni, și de obicei sunt petrecute de oamenii pe care ți-i permiți cel mai puțin acolo.

PasulMotivul real
A doua aprobare înainte să plece o comandăDe business
Date tastate într-un al doilea sistemFără integrare
Raport lunar asamblat de mânăRaport lipsă
Căsuță comună folosită ca listă de așteptareFără roluri
Tabel ținut lângă sistemLimită expirată

Release-uri

Cum ajunge o schimbare în producție și cum se întoarce

Tot ce e mai sus e despre ce rulezi. Asta e despre cum se schimbă. O firmă poate avea sisteme bune și tot să nu se poată mișca, pentru că a livra ceva înseamnă o persoană, o seară și speranța comună că nu se rupe nimic. Pipeline-ul, CI/CD dacă așa îi spui, nu e o grijă de programator: el decide cât de repede poate reacționa afacerea la orice.

  • Câte medii există și dacă se testează ceva înainte să fie live
  • Ce rulează automat la fiecare schimbare și ce depinde de cineva care își amintește
  • Cât durează un release și câți oameni trebuie să fie treji pentru el
  • Dacă un release prost poate fi anulat și dacă asta a fost vreodată repetat
  • Cine poate face deploy, și dacă există o evidență a ce a ieșit și când

Măsura care contează nu e cât de moderne sunt uneltele. E cât durează să duci o schimbare mică și sigură în fața utilizatorilor tăi, și cu câtă încredere ai putea să o întorci. Un pipeline simplu care răspunde la amândouă bate unul elaborat care nu răspunde la niciuna.

Pipeline-ul, citit de la un capăt la altul

Schimbarescrisă
Verificatăautomat
Stagingundeva real
Liveși reversibil
Medii înainte de producțieDeseori niciunul
Verificări automate la fiecare schimbareRar
Timp până livrezi ceva micZile
Rollback repetat vreodatăAproape niciodată
Evidența a ce a ajuns live și cândParțială

Ce primești

O hartă și constatări pe care le poți da altcuiva

Rostul unei analize nu e să ajungi la o ofertă de la mine. E să rămâi știind ceva ce nu știai, într-o formă în care poți acționa fără mine. Deci primești imaginea peisajului tău și constatările în scris, sunt ale tale, și nu expiră dacă decizi să lucrezi cu altcineva.

  • O diagramă a peisajului tău: ce rulează, ce se leagă și unde sunt cusăturile
  • Diagrame până unde ceri tu, de la o imagine de ansamblu până la cine ce face într-un proces anume
  • Ce am găsit, în scris, ordonat după cât te-ar costa să ignori
  • Ce aș face în locul tău și în ce ordine
  • Ce e în regulă, spus simplu, ca să nu ți se vândă muncă de care nu ai nevoie
  • Scris ca să îl citești tu, nu ca să îl descifreze alt programator

Nu vine cu nicio ofertă atașată. Un audit care ajunge cu o ofertă capsată în spate e un document de vânzare. Dacă se dovedește că eu sunt omul potrivit să repar ce am găsit, vorbim despre asta separat, după ce îl citești.

ElementAl tău
Diagrama peisajuluiDe păstrat
Constatări, ordonate după costul ignorăriiÎn scris
Ce aș face și în ce ordineÎn scris
Ce e deja în regulăSpus simplu
O variantă cu care poate lucra alt furnizorInclusă
O ofertă pentru lucrareNeatașată

Când construcția nu e problema

Cineva trebuie să spună ce a întârziat și de ce

Multe proiecte au oameni capabili pe ele și tot nu ajung nicăieri. De obicei pentru că nimeni nu își asumă ordinea lucrărilor, dependențele dintre părți sau deciziile pe care toată lumea așteaptă politicos să le ia altcineva. Asta e o meserie, și e altă meserie decât scrisul de cod.

  • Un perimetru cu o ordine, ca părțile care blochează altele să fie făcute întâi
  • Un singur loc în care e scrisă starea proiectului și e la zi
  • Dependențe numite, inclusiv cele care sunt de partea ta
  • Decizii scoase la suprafață cât încă sunt ieftine
  • Furnizorii tăi și oamenii tăi tratați direct, ca să nu fii tu curierul

Nu concurez cu furnizorul tău. Dacă ai deja pe cineva care construiește, treaba mea e să fac munca lui să ajungă, nu să o înlocuiesc. Dacă cred că ai furnizorul greșit, îți spun asta direct, în loc să administrez pe lângă el.

Cine pe cine așteaptă

Perimetruconvenit, scris
Ordineblocajele întâi
Deciziiscoase devreme
Livrarestare, la zi
Părțile pe care furnizorul nu le poate începeTu
Părțile pe care nu le-a decis nimeniLa suprafață
Părțile care pur și simplu au întârziatNumite

Cum decurge

De la o discuție la ceva pe care poți acționa

  1. Vorbim

    Gratuit și fără obligații. Descrii situația. Îți spun dacă e o privire gratuită sau muncă plătită, și dacă sunt eu omul potrivit.

  2. Convenim perimetrul

    Ce sisteme citesc, pe care nu, ce primești la final și cât costă. În scris, înainte să înceapă ceva.

  3. Îl citesc

    Sistemele, conexiunile, procesul din jurul lor și felul în care schimbările ajung în producție. Cu accesul necesar, și nimic în plus.

  4. Primești harta și constatările

    Imaginea peisajului tău, ce am găsit și ce aș face în ce ordine. Apoi o discuție despre ele, dacă vrei una.

Nimic nu e convenit până când perimetrul și prețul sunt în scris

Cât costă

Afli de care dintre ele ai nevoie înainte să înceapă, nu după

O discuție, o opinie despre o ofertă pe care ai primit-o și o privire peste tot ce se poate atinge din exterior sunt lucruri pe care un om le poate face într-o după-amiază, deci rămân gratuite. Cititul de cod sursă, de sisteme, de pipeline-uri și de backupuri e muncă reală, iar dacă aș pretinde altceva ar ieși ori superficial, ori aș ajunge să o regret. Care dintre cele două îți trebuie ție îți spun în prima discuție.

Convenit înainte să înceapăUn site are o formă pe care o poți evalua înainte să îl vezi. Munca asta nu: ce aș avea de citit e diferit de fiecare dată, deci o cifră pe pagina asta ar fi o ghiceală, nu o reducere. Convenim perimetrul și prețul în scris, și abia atunci începe ceva.
Gratuit rămâne gratuitPrima discuție, o opinie onestă și o privire peste tot ce se poate atinge din exterior nu costă nimic, orice ar urma. Asta rămâne la fel pe măsură ce firma ta crește.
  • Ți se spune care dintre ele ți se aplică înainte să înceapă ceva
  • Dacă răspunsul onest e că nu ai nevoie de niciuna, auzi și asta
  • Harta și constatările sunt ale tale, fie că mergi mai departe cu mine, fie că nu
  • O părere onestă despre ce nu ar trebui făcut, care e de obicei jumătatea mai valoroasă
  • O persoană cu nume cu care ai de-a face pe tot parcursul, și aceea sunt eu

Unde cade linia

Din exterior, gratuit

O discuție despre situație

O opinie despre o ofertă

Orice se poate atinge public

Care dintre cele două îți trebuie

Din interior, plătit

Sistemele și ce le leagă

Codul sursă care îți aparține

Pipeline-ul și mediile

Datele și cine le poate citi

Întrebări

Întrebări frecvente

Cât costă prima discuție?

Nimic, și nu urmează nicio obligație. Treizeci până la patruzeci și cinci de minute sunt de obicei destule ca amândoi să știm dacă are sens să continuăm.

De la câte sisteme merită?

Două sunt destule, dacă ar trebui să fie de acord între ele și nu sunt. Valoarea nu stă în numărul de sisteme, ci în cusăturile dintre ele, iar al doilea sistem e locul unde încep cusăturile.

Unde se oprește exact gratuitul?

În punctul în care am nevoie de acces. O discuție, o opinie despre o ofertă și orice se poate atinge public rămân gratuite. Cititul de cod sursă, de sisteme, de pipeline-uri sau de backupuri e muncă plătită, și afli asta înainte să înceapă, nu pe factură după.

Ai nevoie de acces la sistemele noastre de producție?

De obicei nu. Cea mai mare parte dintr-o analiză e documentație, configurare, cod și discuții cu oamenii care folosesc sistemele. Unde accesul live chiar ajută, e doar de citire, cu perimetru convenit și limitat la ce cere întrebarea.

Analiza se termină cu o ofertă de la tine ca să repari?

Nu. Harta și constatările ajung singure. Dacă se dovedește că eu sunt omul potrivit pentru lucrare, aia e o discuție separată pe care o începi tu, după ce le-ai citit.

Ce se întâmplă dacă nu găsești nimic grav?

Atunci asta scrie în constatări, și merită știut. Un raport care fabrică urgență ca să își justifice propriul cost nu e un audit.

Poți conduce un proiect pe care nu l-ai construit tu?

Da, ăsta e cazul obișnuit aici. Cei care construiesc pot fi echipa ta, furnizorul tău existent sau amândoi.

Semnezi un acord de confidențialitate?

Da, înainte să discutăm ceva care cere unul. Dacă nu ai, pot pune eu la dispoziție unul simplu.

Nu ești sigur dacă îți trebuie o analiză sau o construcție?

Descrie situația. Ți se spune care dintre ele e și cât ar costa, înainte să înceapă ceva.

Descrie situația