Back to Scrum 2020

Anul trecut am luat o pauză de la rolul de Scrum Master / Agile Coach în echipe de dezvoltare software pentru a experimenta un rol mai aproape de client la Amiqa o companie aflată la început de drum.

Mi-am îndreptat astfel atenția către metoda Lean Startup și principiile de construire a unui model de afacere. Am început să studiez și să aplic acest proces denumit Customer Development popularizat de Steve Blank prin care ne-am propus să descoperim și să validăm profilul de client ideal pentru Amiqa.

A fost o călătorie extrem de interesantă alături de Bogdan, fondatorul companiei și echipa pe care a adunat-o în jurul ideii sale de produs. Am interacționat cu o grămadă de oameni din industria de IT pentru a ne forma o imagine cât mai clară asupra provocărilor pe care le pe zona de testare software.

Am descoperit că cel mai dificil este să ieși din bula ta și să te conectezi cu oameni din întreaga lume pentru a pune bazele unei companii care are potențial de a scala global.

Pentru mine tot procesul a fost cu suișuri și coborâșuri. Mi-am dat seama că sunt un moment din carieră în care apreciez mai mult claritatatea și stabilitatea. Până la un punct am reușit să gestionez incertitudinea de a nu avea clienți și de a fi într-un brainstorming prelungit.

Începutul pandemiei a momentul în care am început să simt mai multă presiune și stres. Deși am început să fim mult mai clari în modul în care exprimăm problema și soluția pentru mine incertitudinea provocată de context a venit cu nevoia de a obține o confirmare mult mai rapidă.

Cred că formarea mea din ultimii ani a venit din urmă și am căutat un proces mai clar și rezultate mai concrete. Lucru care m-a făcut să înteleg mult mai bine provocările cu care se confruntă un Product Owner atunci când are în față o mulțime de posibilități și trebuie să ia în fiecare moment decizia potrivită.

Prima zi de școală în pandemie

Mi-am pus aici imaginea cu Doodle-ul de pe pagina căutare de la Google ca să-mi amintesc de prima zi de școală din pandemie

Google ne prezintă un ideal de care suntem foarte departe în 2020 pentru că sunt zeci de mii de copii care nu au acces la instrumente de învățare.

Acestora le lipsesc până și caietele și rechizitele tradiționale. Să nu mai vorbim de un calculator suficient de performant de pe care să participe la lecțiile online.

Dacă dai click pe imagine, începi să vezi știre cu știre realitatea

POO și ATP: între frustrare și înțelepciune

În anul universitar 2019 / 2020 dl prof Pocatilu mi-a propus să colaborez în colectivul de programare la doua materi Programare orientată obiect (POO) și Algoritmi și Tehnici de Programare (ATP).

POO este spaima studenților de anul II în primul semestru pentru că dacă te numeri printre cei care au promovat înseamnă că ai lucrat cu adevărat în C++ și nu ai lăsat totul pentru sesiune.

Disciplina ATP este predată in anul I semestrul doi unde studenții își pun bazele gândirii algoritmice și învață să lucreze cu fișiere de intrare / ieșire în limbajul C.

Am predat cu atitudinea: greșește, greșește, greșește până când vei înțelege și vei continua să faci greșeli, dar din ce în ce mai puțin.

Am descoperit acest citat tradus aproximativ într-o poezie pe peretele casei lui Donald Knuth într-un interviu pe care l-a dat pe YouTube. Îl găsești la adresa https://www.youtube.com/watch?v=v678Em6qyzk

Dacă l-ai văzut probabil că ți-ai dat seama la fel ca și mine ca din aceste materii ai descoperit doar mici frânturi despre ce înseamnă programarea.

Aș mai adauga pe lista de videoclipuri recomandate această prezentare a lui Alan Kay de la OOPSLA din 1997 pe care o găsești adresa https://www.youtube.com/watch?v=oKg1hTOQXoY

Știu că azi nu mai avem timp pentru lucruri atât de “învechite”, dar am realizat după această experiență cât de util este să te întorci la principiile de bază și să încerci să ți le explici mai bine.

Studenții spun mereu că materiile astea s-ar putea preda mult mai bine și atunci ei nu ar mai avea restanțe, industria IT ar face produse de miliarde de dolari și eu probabil aș scrie această postare de pe o insula din Bali.

Dar iată-mă undeva în Vitan, încercând să înțeleg cum se aplică derivatele în Machine Learning și cum se obține rezultatul înmulțirii a două matrici.

Colaborare 2.0

Concepte precum “desktop”, “personal computer” sau “workstation” se vor transforma în moduri pe care nu le bănuim încă de tehnologiile cloud.

În prezent colaborarea la locul de muncă presupune o forma de partajare și prelucrare de informații care conduce la îndeplinirea unui obiectiv comun. Calitatea deciziilor depinde de modul în care se face accesul la date și de cum acestea sunt prelucrate în informații valoroase.

Partajarea de informații prin posta electronica pare la fel de rudimentara precum posta tradițională pentru cei care își doresc sa acceseze informația în timp real. Sa aștepți după cineva care are acces la o foaie de calcul și este plecat în concediu pare de neconceput, dar este o situație atât de des întâlnită atât în marile corporații, cât și în companiile mici.

Birocratia moderna presupune o forma de a limita accesul la informații cheie de care depinde succesul organizației. Pentru a reduce efectele negative ale birocrației sunt necesare metode noi de colaborare.

Colaborarea 2.0 nu duce lipsa de unelte, ci necesita o schimbare de mentalitate și de înțelegere a relațiilor de lucru care se formează într-o organizație.

În centrul sistemului colaborativ se afla angajatul care este purtător de cunoaștere și care își folosește abilitățile cognitive pentru a prelucra date și a le transforma în intuiții actionabile. Forță de muncă moderna dispune de caracteristici precum agilitatea, creativitatea, gândirea critică și abilitatea de a rezolva probleme complexe.

Angajații sunt persoane autonome, conduși de scop și de dorința de a se auto-depăși. Activitățile de rutina sunt îndeplinite de algoritmi inteligenți care învață din colaborarea cu oamenii. Munca fizica este făcută de roboți.

Vine vacanțaaaaa maree!

Un beneficiu la care am renunțat când am ales să nu mai fiu angajat este concediul plătit. Lucrând de cinci ani pe proiecte, acum mi se pare un mare lux să ai zile libere plătite. Am câștigat totuși ceva mai multă flexibilitate și o vacanță mare care sa ma deconecteze de la rutină. Am câștigat timp în care să mă plictisesc și să mă ajute să vin cu o perspectivă fresh in munca pe care o fac.

Așa că trec luna august la capitolul investiții pentru un plus de energie înainte de finalul de an care de fiecare dată a fost foarte dinamic.

Anul trecut după vacanță am luat o decizie importantă de a mă concetra mai mult pe dezvoltare de produs.

Am observat cât de mari sunt provocările pe zona de testare software în companiile cu care am lucrat, așa ca am simțit o potrivire foarte bună cu misiunea Amiqa. Atunci când dezvolți într-un ritm rapid, cu livrări repetate, este inevitabil să nu strici ceva. E o problemă pe care o confirmă orice echipă cu care am discutat. De aici rolul meu alături de Amiqa e să înțelegem cum putem productiza procesele de testare și cum putem să împachetăm mai bine tehnologia pe care o dezvoltăm.

Pot să spun că ritmul de învățare a accelerat semnificativ și viața într-un start-up e foarte diferită de o companie stabilă deja pe piață. Efortul de adaptare a fost mare și s-a cumulat cu cel de a preda la facultate. Cred că vacanța e bine meritată și abia aștep să mă re-conectez cu mine.

Pe lângă odihna de rigoare, mi-am luat niște teme. Anul acesta vreau să mă concentrez mai mult pe managementul de produs, pe comunicarea în scris și colaborarea de la distanță.

Îmi doresc să fie o vară liniștită, să rămânem sănătoși și să ne bucurăm de viață!

De la cusut la programare


Când eram mic îmi plăcea să cos. Și făceam haine pentru păpuși.
Eram fascinat de mașina de cusut pe care încă o mai are mamaia Jeni. De fiecare dată când mergeam în vizită îmi plăcea să o studiez ca să înțeleg cum funcționează.

Înainte să încep clasa întâi am fost la atelierul de croitorie la care lucra mătușa mea ca să îmi facă uniformă. Acolo am văzut că era un întreg sistem pentru a produce un costum cu tot felul de mașini și șmecherii. Am trăit o experiență fascinantă să văd cum măsurătorile mele sunt transformate într-o schiță, apoi sunt transferate pe material, sunt tăiate și cusute cu atenție. Ca în final să am o uniformă special croită pentru mine.

În clasele primare abia așteptam ora de lucru manual. Auzisem de la prietenii de la bloc mai mari că o să facem traforaj cu un profesor care era al dracului. Noroc că atelierul de școlii s-a închis în perioada de austeritate. Și profesorul cred că s-a pensionat pentru că noi nu l-am mai prins. Așa că deopotrivă, băieți și fete am învățat cum să facem modele pe etamină, să împletim și să facem mărțișoare din ață colorată.

Mai târziu am învățat de la maică-mea să croșetez. Era o activitate ce necesita foarte multă concentrare și atenție pentru a păstra același număr de ochiuri pe fiecare rând. Pentru a realiza modele complexe trebuia să schimbi împletitura când pe față, când pe dos. Țin minte că erau acele reviste cu șabloane pe care dacă le urmai puteai să faci orice de la căciuli, șosete sau fulare. N-am ajuns la nivelul acela de performanță, dar știu că mi-au ieșit câteva bucăți de material pe care le-am lipit într-un colaj. Apoi a apărut moda cu goblen-urile când eram deja ceva mai mare. Nu mai știu dacă eram în școala generală sau în primii ani de liceu.

Acum conștientizez cum toate aceste experiențe s-au translatat în cariera mea de programator. Mi-a fost ușor să înțeleg cum să parcurg un vector element cu element pentru că mintea mea era deja antrenată de la număratul ochiurilor la croșetat. O matrice nu era nimic mai mult decât șablonul unui goblen. Și diagramele de arhitectură seamănă mult cu tiparele unui costum.

Nu zic să lăsăm tastaturile și să ne apucăm de croșetat. Doar realizez că în lucrurile simple există multă știință și cunoaștere.

În peștera digitală

În mii de ani oamenii au dezvoltat simboluri cu care sa comunice, sa exprime idei și sa transfere cunoștințe de la o generație la alta.

Imaginile pictate pe pereții peșterilor au fost primele forme de comunicare. În timp s-au dezvoltat simboluri mai complexe precum hieroglifele egiptene. Scrierea cuneiforma a înlocuit desenele cu forme mult mai abstracte care sa permită o eficienta sporită. Alfabetul și dezvoltarea tiparului a acelerat exponențial transmiterea de cunoștințe.

În prezent, în era digitala, ne întoarcem la comunicarea prin imagini și simboluri. Acestea fiind este cel mai accesibil mod prin care oamenii se exprimă folosind interfețele actuale.

Folosind dispozitive mobile dotate cu camere foto puternice capturam din realitatea ce ne înconjoară o scenă pe care vrem sa o împărtășim cu ceilalți cât mai repede.

Aplicăm câteva filtre, etichete și mesaje cu care să atragem atenția și postarea ajunge la rapid la prietenii ce ne urmăresc feed-ul. Apoi sperăm algoritmul ne va ajuta să ajungem la cât mai multe persoane de la care sa primim o reacție sau o confirmare ca am fost văzuți.

Platformele multimedia ne ocupă cel mai mult din timpul pe care îl petrecem folosind dispozitivele mobile pentru ca sunt optimizate ca să ne capteze atenția. Pentru a funcționa aceste platforme au nevoie de baze mari de utilizatori care consumă și creează informație în cel mai simplu mod cu putință.

În toată aceasta economie a timpului și atenției câștiga cei care cunosc simbolurile, codurile și limbajul tehnologiei. Dacă vrei sa ieși din peștera digitală trebuie sa înțelegi cum este construită.

Dezvoltarea unui stil în programare

Un artist nu își dedică carieră pentru sine, ci pentru stilul pe care dorește sa îl lase în urma muncii sale.

Ca să perfecționezi un stil ai nevoie de perseverență și disciplină. Ca să transferi un stil ai nevoie de răbdare.

Artistul care reușește sa transfere stilul său către discipoli devine maestru. Un maestru insuflă celor cu care lucrează creativitatea pentru ca le transfera stilul și uneltele sale pentru a-și realiza propriile creați.

Dacă artistul rămâne atașat de ego-ul său atunci tot ce face este sa transmită reguli și sa emită sancțiuni când cel pe care îl ghidează se îndepărtează de la stil.

În programare sunt patru stiluri principale:

  1. Funcțional
  2. Imperativ
  3. Orientat obiect
  4. Procedural

Din aceste stiluri sunt derivate stiluri proprii pe care un grup, o echipa sau o companie le dezvoltă. Pentru a captura elementele esențiale sunt realizate ghiduri de stil.

Alan Kay, cel care a inventat Programarea Orientată Obiect spune că cel mai bun mod de a prezice viitorul este prin a-l inventa. Așa că următorul stil de programare se așteaptă a fi inventat de către cei ce nu reușesc să își exprime bogăția de idei cu instrumentele actuale.

https://www.youtube.com/watch?v=KVUGkuUj28o

Despre complexitate

In ultimii ani am fost companion și uneori călăuză pentru echipe ce se străduie sa rezolve problemele complexe de dezvoltare software.

Din această experiență am învățat despre orientare și observare într-un spațiu al minții în care ideile se nasc și ajung sa fie transpuse în linii de cod ce soluționează diverse probleme

Pentru mine e ceva fascinant. Un mecanism aproape magic pe care nu îl înțeleg pe deplin, dar care funcționează. Din furtuna care se întâmplă în mințile noastre, lucrurile se așează, capătă claritate și o structura ce e înțeleasă de calculatoarele pe care le programam

Educația îți dă un avantaj nedrept

Spun acest lucru pentru că în ziua de azi, când companiile se bat pe resursa umană, a fi o persoană educată te face să ieși din turmă foarte ușor și îți aduce oportunități fenomenale.

Nu ma refer aici doar la educația formală, ci la educație in general. Educația formală pur și simplu adâncește nedreptatea datorită numărului mic de instituții care oferă cât de cât calitate.

Este nedrept pentru ca a rămâne needucat este atât de simplu. Pârghiile care sa stimuleze trăsături precum curiozitatea, perseverenta și conștiinciozitatea, atât de necesare pentru a deveni o persoană educată lipsesc. Așa că pentru cei care au deprins aceste caracteristici, pur și simplu nu există competiție.

Este banal sa…

  • Accesezi resurse gratuite online
  • Sa cumperi cărți
  • Sa mergi la evenimente ce au ca scop schimbul de cunoștințe
  • Sa mergi la un curs profesional
  • Sa obții o certificare
  • Sa termini o facultate sau un masterat

Cu toate astea numărul de persoane care aleg sa nu se definească intelectual într-o societate bazată pe informație este suficient de mare cât sa iti ofere posibilitatea de a te diferenția.