ABONAMENTE VIDEO REDACȚIA
RO
EN
NOU
Numărul 146
Numărul 145 Numărul 144 Numărul 143 Numărul 142 Numărul 141 Numărul 140 Numărul 139 Numărul 138 Numărul 137 Numărul 136 Numărul 135 Numărul 134 Numărul 133 Numărul 132 Numărul 131 Numărul 130 Numărul 129 Numărul 128 Numărul 127 Numărul 126 Numărul 125 Numărul 124 Numărul 123 Numărul 122 Numărul 121 Numărul 120 Numărul 119 Numărul 118 Numărul 117 Numărul 116 Numărul 115 Numărul 114 Numărul 113 Numărul 112 Numărul 111 Numărul 110 Numărul 109 Numărul 108 Numărul 107 Numărul 106 Numărul 105 Numărul 104 Numărul 103 Numărul 102 Numărul 101 Numărul 100 Numărul 99 Numărul 98 Numărul 97 Numărul 96 Numărul 95 Numărul 94 Numărul 93 Numărul 92 Numărul 91 Numărul 90 Numărul 89 Numărul 88 Numărul 87 Numărul 86 Numărul 85 Numărul 84 Numărul 83 Numărul 82 Numărul 81 Numărul 80 Numărul 79 Numărul 78 Numărul 77 Numărul 76 Numărul 75 Numărul 74 Numărul 73 Numărul 72 Numărul 71 Numărul 70 Numărul 69 Numărul 68 Numărul 67 Numărul 66 Numărul 65 Numărul 64 Numărul 63 Numărul 62 Numărul 61 Numărul 60 Numărul 59 Numărul 58 Numărul 57 Numărul 56 Numărul 55 Numărul 54 Numărul 53 Numărul 52 Numărul 51 Numărul 50 Numărul 49 Numărul 48 Numărul 47 Numărul 46 Numărul 45 Numărul 44 Numărul 43 Numărul 42 Numărul 41 Numărul 40 Numărul 39 Numărul 38 Numărul 37 Numărul 36 Numărul 35 Numărul 34 Numărul 33 Numărul 32 Numărul 31 Numărul 30 Numărul 29 Numărul 28 Numărul 27 Numărul 26 Numărul 25 Numărul 24 Numărul 23 Numărul 22 Numărul 21 Numărul 20 Numărul 19 Numărul 18 Numărul 17 Numărul 16 Numărul 15 Numărul 14 Numărul 13 Numărul 12 Numărul 11 Numărul 10 Numărul 9 Numărul 8 Numărul 7 Numărul 6 Numărul 5 Numărul 4 Numărul 3 Numărul 2 Numărul 1
×
▼ LISTĂ EDIȚII ▼
Numărul 70
Abonament PDF

Arhitect datorită circumstanțelor

Șerban Petrescu
Senior IT Consultant @ msg systems Romania



MANAGEMENT


Un segment larg dintre dezvoltatorii software consideră că locul de muncă actual este doar o etapă intermediară, că nu este o destinație, ci doar un mod de a ajunge acolo. Sunt persoane care vor să își deschidă propria afacere, altele care se gândesc să presteze servicii de consultanță și în final sunt persoane care vor o tranziție spre arhitectură software. Cea din urmă opțiune este cel puțin din punctul meu de vedere subiectiv, una dintre cele interesante decizii. În acest articol, vă voi arăta modul în care am parcurs personal acest proces și ce învățăminte am tras pe parcurs.

Nu este o rețetă a succesului, ci doar o experiență personală. Sunt sigur că am comis o serie de greșeli și că voi mai face și altele în viitor. Rolurile tind să fie oarecum diferite de la o companie la alta, deci nu fiți mirați dacă vă veți întreba de ce vorbesc despre o anume temă pe care nu o asociați în mod direct cu arhitectura.

Contextul

În primul rând, voi vorbi pe scurt despre circumstanțele acestei tranziții. Eu activez în special în domeniul SAP. În opinia mea, această specializare este foarte diferită comparativ cu celelalte arii din domeniul IT. Veșnica prezență a unui sistem legacy extrem de complicat, paradigmele practic scoase din uz, amestecul tehnologiilor noi cu cele arhaice și rezistența perpetuă împotriva rescrierii codului sunt doar câteva probleme întâlnite în viața de zi cu zi.

SAP are o tendință pronunțată de a reinventa roata. A construit de-a lungul timpului o serie de concepte, produse și întregi tehnologii de la zero. Există limbaje de programare, baze de date, frameworkuri, servere de aplicații și chiar paradigme de programare care se folosesc exclusiv în ecosistemul SAP.

Pentru a înrăutăți lucrurile, o suită întreagă de tehnologii și produse au fost abandonate pe parcurs, dar în mod firesc, încă există atât clienți care le-au cumpărat cât și programatori care sunt nevoiți să lucreze cu ele.

Compania pentru care lucrez în prezent (msg systems) are un program numit "continuous learning". În cadrul acestuia, participanții își investesc un procent din timpul de lucru în studiul tehnologiilor noi. De obicei, sunt ajutați de colegi deja versați în conceptele respective. Deoarece ideea în sine pare bună, m-am implicat puternic în diverse astfel de activități de mentoring.

Cunoștințe utile

În ultimii ani, am descoperit un set de comportamente sau tehnici care fie m-au ajutat, fie m-ar fi ajutat la momentul respectiv dacă le-a-și fi descoperit mai repede:

  1. Implicarea clienților. Din experiență proprie, pot spune că mulți arhitecți fac o greșeală majoră la acest capitol. Se închid într-un așa-zis turn de fildeș, construiesc un set complex de idei și modele, dar nu reușesc să le valideze la timp împreună cu clientul. Un alt comportament similar este cel de a părăsii proiectul de îndată ce faza inițială de proiectare arhitecturală s-a încheiat. Un arhitect bun trebuie să fie parte a echipei până la finalizare. El poate tranziționa și spre un alt rol, de lead developer spre exemplu, pentru a se asigura că viziunea inițială este ajustată și transpusă în realitate.

  2. Stabilirea principiilor. Lipsa unui set clar de principii stabile și bine ancorate poate cauza foarte ușor probleme la toate stadiile unui proiect. Respectarea unui set de principii (spre exemplu "aderarea la semantica verbelor HTTP") asigură atât integritatea structurală a modelului cât și un proces decizional transparent și predictibil.

  3. Perfecționarea continuă. Este greu de atins deoarece se poate cădea foarte ușor în extreme. Dacă nu avem suficientă flexibilitate și preferăm soluțiile pe care le-am întâlnit în trecut, atunci putem ajunge foarte ușor la o situație comparabilă cu reinventarea roții. De fapt, cei de la SAP au parte de problema aceasta în multe dintre produsele lor. În celălalt capăt al spectrului, dacă folosim mereu ultimele apariții din domeniul tehnologic, nu vom reuși niciodată să finalizăm un proiect, echipa fiind mereu ocupată cu migrarea și refactorizarea codului. Un ritm echilibrat de preluare a noilor tehnologii reduce efortul depus pentru dezvoltare, dar nu afectează semnificativ viteza echipei.

  4. Negocierea perpetuă. În mediul în care activez, acest aspect are o importanță mai mare decât de obicei, deoarece sunt implicate trei părți în orice proiect: clientul, SAP-ul și noi. Într-o asemenea constelație, pasivitatea nu își are locul. În schimb, trebuie să fim fermi pe poziție și să deținem argumente solide pentru orice opinie. O tehnică bună este prezentarea mai multor soluții interlocutorului (fie el clientul sau chiar SAP). Apoi o analizăm pe fiecare în parte, o descompunem în avantaje și dezavantaje și, în final, formulăm o propunere pertinentă. Luarea de decizii individuale trebuie evitată. De asemenea, este bine să documentăm firul logic și pașii care au dus la o fiecare decizie.

  5. Adaptarea rapidă. În industria noastră aflată în perpetuă evoluție, a fi capabil de a reacționa la schimbări și de a asimila rapid noi informații este mult mai valoros decât dimensiunea bagajului actual de cunoștințe. Din păcate, ceea ce am învățat în trecut poate deveni foarte rapid depășit (cel puțin din punct de vedere tehnic). Trecem mereu printr-un ciclu de descoperire, învățare și mai apoi uitare a conceptelor.

Impedimente majore

Rezolvarea problemelor este în însăși natura jobului, dar sunt o serie de situații care ies în evidență:

  1. Implicarea târzie. Se întâmplă des: un alt arhitect începe munca, o abandonează pe jumătate terminată, iar apoi altcineva trebuie să finalizeze arhitectura. Într-un asemenea scenariu, date esențiale despre sistemul proiectat sunt invariabil pierdute, chiar și în cazul extrem de rar al unui transfer de informații eficient.

  2. Folosirea tehnologiilor de o maturitate scăzută. În lumea SAP, are loc o adevărată epidemie de asemenea situații. Folosirea unui framework nou implică de multe ori, o lipsă acută de documentații exacte, liste actualizate de funcționalități sau exemple de utilizare. O strategie de a reduce impactul acestei probleme este de a efectua o analiză detaliată a fiecărei funcționalități furnizate de către framework, înainte de a definitiva aspectele dependente ale sistemului.

  3. Necesitatea de a folosi tehnologii învechite sau pur și simplu "rele". Sunt persoane care descriu un așa-zis "sindrom Stockholm tehnologic", din cauza căruia, spre exemplu, devenim atașați de librării depășite doar pentru că am investit timp îndelungat în aprofundarea și utilizarea librăriei respective.

  4. Existența unei discrepanțe între nevoile clientului și capabilitățile platformei. De regulă clienții se decid anticipat asupra unei platforme țintă, mai ales când vine vorba despre cloud. Poate fi datorită aspectelor comerciale sau datorită unor decizii strategice la nivel de companie. În același timp, clientul expune un set clar de cerințe care trebuie îndeplinite prin construirea de software pe platforma dată. Este rolul nostru să descoperim dacă și cum putem să creăm o punte peste falia dintre caracteristicile oferite de platformă și cele necesitate de client.

  5. Lipsa de informații esențiale. Orice persoană care activează în domeniul IT a întâlnit de-a lungul carierei un moment în care și-ar fi dorit să cunoască mai multe detalii despre un anume subiect. Fie că este vorba despre procese de business, design, stiluri arhitecturale sau soft skills, asemenea situații sunt imposibil de evitat. Prelungirea orelor de lucru pentru a reduce frecvența acestui fenomen nu este o soluție de durată. Din propria mea experiență, pot spune că sunt două lucruri pe care le putem face pentru a ne ajuta: să fim transparenți în legătură cu lacunele noastre și să ne bazăm pe echipă. De aceea lucrăm în echipe, pentru a ne completa unul pe celălalt. Abordarea unui atitudini superioare pentru a ne masca propria ignoranță nu poate decât să ducă la un eșec spectaculos.

Concluzie

În încheiere, reiterez faptul că acest articol a fost bazat pe o experiență personală. Nu este nicidecum perfect sau un model de urmat. Mai degrabă alți programatori în situații similare pot învăța din această descriere pentru a evita anumite greșeli sau obstacole.

În mod cert a fost o călătorie zdruncinată. A fost pavată cu greșeli și gafe? Sigur. Aș face ceva diferit uitându-mă înapoi? Poate. Dar cel mai important este să ne asigurăm că învățăm din greșeli și ne îmbunătățim constant.

NUMĂRUL 145 - Microservices

Sponsori

  • Accenture
  • BT Code Crafters
  • Accesa
  • Bosch
  • Betfair
  • MHP
  • BoatyardX
  • .msg systems
  • P3 group
  • Ing Hubs
  • Cognizant Softvision
  • Colors in projects