Cerințe software

În studenție fugeam de scris proiecte și documentație ca dracu de tămâie. Îmi plăcea să scriu cod și doar asta aș fi făcut toată ziua dacă mă lăsai la calculator cu o sticlă de cola și un pachet de Lucky Strike. Mai plecam de la birou seara târziu când terminam inclusiv chiștoacele.

Nici pentru produsele la care lucram nu aveam acest bun obicei de a documenta. Motiv pentru care ajungeam în neplăcuta situație de a fi singurul care știa ce e am făcut acolo și trebuia să mă plimb de la client la client să rezolv până și cele mai mici probleme de configurare.

Noroc că m-am mai deșteptat prin 2010 și în primul rând m-am lăsat de fumat. Am schimbat jobul și am ajuns la Zitec unde lucrurile nu se mai făceau pe genunchi. Așa că am început să mă pun și eu le punct cu lucrurile pe care ar fi trebuit să le stăpânesc deja mai bine.

Unul din obiectivele mele de dezvoltare a fost să îmi îmbunătățesc abilitatea de comunicare în scris. În special când vine vorba de cerințe software, dar și articole tehnice sau alte forme de documentare. Așa a ajuns în lista mea de citit cartea Software Requirements: Practical Techniques for Gathering and Managing Requirements Throughout the Product Development Cycle.

Este genul de carte cu care cu siguranță poți să rănești pe cineva, fie că îl pui să o citească sau o folosești ca să aplici o lovitură la cap.

În orice caz, merită măcar răsforită pentru că mai reduce așteptările că software-ul se scrie singur pe vorbe și dacă se poate peste noapte. Fiecare propoziție scrisă te aduce mai aproape de un rezultat, decât o discuție care nu se ma termină.

Ce am învățat la Zitec?

M-am format ca profesionist în dezvoltare software la Zitec.

Interviul l-am avut în martie 2010. Pe atunci sediul se afla pe Strada Binelui.

Urmăream compania de ceva vreme, am văzut că au o echipă strong și un portofoliu bogat de clienți. Veneam cu o experiență de 2 ani și jumătate la, Pit Software unde dezvoltam soluții pentru Ho.Re.Ca și cu un portofoliu de siteuri web dezvoltate ca freelancer.

Știam că așteptările sunt mari așa că am venit cu emoții, dar și cu încredere că voi reuși. După primul interviu am primit acest mesaj.

Pe 17 Mai 2010 a fost prima zi de muncă.

La Zitec am învățat meserie

1) Bune practici

Când am ajuns la Zitec primul lucru pe care l-am descoperit a fost celebrul wiZki și regulamentul de ordine interioară.

Lucrurile se desfășurau cu o precizie incredibilă pentru mine care veneam dintr-un mediu în care prin comparație ai fi l-ai fi putut cataloga drept haos. Înainte lucram cu vreo 30 de clienți care mă sunau la ore târzii, aveam o grămadă de versiuni la care cu greu le mai dădeam de cap. De aceea mediul de lucru din Zitec m-a fascinat.

Am răsfoit wiZki-ul pe toate părțile, am citit sute de tichete din istoricul de proiect, m-am familiarizat cu sisteme de versionare și cu un ciclu de lucru pe sprinturi. Îmi plăcea ca aveam un feedback constant prin diverși metrici și că aveam ocazia să colaborez pe proiect. Lunar se realizau întâlniri de prezentare a proiectelor și cu ocazia asta aflam o grămadă de lucruri noi.

În primul am am stat pe un proiect considerat destul de învechit de care mulți se fereau. Pentru mine era o adevărată experiență. Îmi făcusem un sistem cu care urmăream branch-urile pe care lucram și mi-am propus să am cât mai puține tichete întoarse. Priveam totul ca pe un joc. Faptul că aveam o serie de metrici bine definiți mă ajuta să îmi auto-evaluez munca și progresul.

2) Dezvoltare continuă

Până să ajung la Zitec aveam un stil de învățare reactiv. Adică mă preocupam să găsesc soluții atunci când aparea o problemă. Prindeam foarte repede conceptele din practică, dar de multe ori se întâmpla să re-inventez roata.

Lucrând alături de oameni care aveau o înclinație către dezvoltarea continuă am început să mă preocup la rândul meu de studiu. Se promova dezvoltarea individuală mai ales în timpul liber pentru că lucrul pe proiecte permitea rar să găsești timp pentru învățare. Aveam acces la anumite facilități precum certificări plătite de firma și la o bibliotecă de cărți din domeniu.

În 2010 început să mă familiarizez cu Zend Framework. În 2011 mi-am luat certificarea Zend de PHP și în 2012 cea de MySQL Developer. Am organizat un grup de studiu împreună cu 3 prieteni în care realizam prezentări despre design patterns.

Primul plan de dezvoltare l-am făcut în iulie 2012 după un model prezentat de HR.

plan-dezvoltare-individuala

Surpriza a fost ca ritmul de creștere să fie mult mai accelerat decât mi-am imaginat. În 2013 Alex mi-a popus să coordonez departamentul de dezvoltare custom și să mă alătur echipei de conducere ZiBord.

3) Eficiență

Modul standardizat de lucru și bunele practici urmăreau un obiectiv foarte precis: eficiența în tot ce ne propuneam să realizăm.

Încadrarea în estimare și utilizarea eficientă a timpului reprezentau două din elementele importante pe care le urmăream. În fiecare zi completam un raport de activitate în care detaliam la ce am lucrat în ziua respectivă. Toate cele opt ore de lucru trebuiau să se regăsească în acel raport.

Aveam chiar o procedură care îți oprea accesul la internet și te băga în pădure dacă nu aveai completat raportul pe ultimele 5 zile. Pădurea era Subiect de bășcălie și caterincă în echipă. Într-un teambuilding la munte ne-am propus să simulăm “cronul” care rula de fiecare dată la 5 dimineața, să trezim un coleg și să-l ducem în pădure.

padurea

Așa am învățat să lucrez eficient, să descompun problema în sub-probleme și să mă preocup de a livra calitate într-un timp cât mai scurt cu putință.

Faptul că foloseam un tool de project management intern și un aveam un ritm de lucru bazat pe sprinturi asigura predictibilitatea procesului. Nu tot timpul ne ieșea așa cum am planificat, dar de fiecare dată estimările erau asumate și făceam tot posibilul să ne încadrăm în termenele promise clientului.

4) Lucru în echipă

Până să ajung la Zitec nu știam ce înseamnă să lucrezi în echipă. Colaboram foarte bine cu clienții și colegii de la PitSoftware, dar când era vorba de programare eram un lup singuratic pentru că eram singurul dezvoltator pe tehnologii web.

5) Fun

biroul

promovare

promovare-2

motivation-eduard-budacu

alocari

10856487_10155566728547355_3012018659569073022_o

10039_10151741843172355_279136265_n

38371_410946952354_5724965_n

53718_10152425050342355_312441536_o

177014_10151313689467355_1435074888_o

218854_10150192218602355_8295389_o

218928_10150192216322355_3324052_o

227959_10150192219862355_5237612_n

292927_10151086237017355_1594000671_n

310238_10150407533252355_1560791542_n

409695_10151086237227355_705608237_n

553047_10151741842882355_64659487_n

617117_10151313689282355_2090628952_o

856740_10151574374247355_1541432197_o

860278_10151541298002355_1261134545_o

892137_10152425048442355_2078253303_o

1274862_10152239907752355_567442388_o

1397589_10152608426367355_294684758_o

1400361_10152425050407355_1803429857_o

1403090_10152799212257355_903548731_o

1978441_10154267090137355_426061216652575086_o

10273401_10154781007252355_933406862848140098_o

10394501_10155166349582355_5433872158540030981_n

10484150_10155482220242355_1885158751635204080_o

Preocuparea pentru Agile – partea a doua

În noiembrie 2014 am susținut primul curs despre metodologiile Agile la masterul SIMPRE. A fost o sesiune interactiva și mi-a plăcut mult schimbul de experienta. Am fost foarte entuziasmat de proiectele în care m-am implicat la Zitec și am avut o confirmare ca subiectul pe care îl studiez prezintă interes pentru lumea întreagă.

Din ianuarie 2015  mi-am dat demisia de la întreprindere și m-am dedicat 100% acestui subiect.

Am început cu o serie de interviuri cu scopul de a descoperi mai multe despre cum se lucrează în alte companii de IT. Am vorbit cu manageri din trei companii din București și una din Cluj. Unul din interviuri, cu Mihai Olaru de la Avangate (actual 2checkout) cu care am rămas în bune legături după aceasta experiența. Din aceste discuții am extras provocările cu care se confrunta și mi-am definit un plan de studiu.

Urmărind studiile realizate de Version One, Scrum Alliance și Scot Ambler am definit un chestionar cu care am cules date despre modul în care sunt aplicate practicile Agile în companiile de IT din România. Rezultatele le-am publicat la conferința de Informatică Economică într-un material pe care l-am scris împreună cu doamna Bodea.

În același timp am început sa cer recomandări și sfaturi legat de activitatea de training și consultanță. M-am cunoscut cu Maria Diaconu de la MozaicWorks. Am făcut o prezentare în comunitate Agile Works. Mi-am organizat materialele și prezentările pe care le-am susținut în trecut.

Prima recomandare a venit de la fostul meu coleg Tiberiu. O experiență interesanta ce m-a pus în poziția de a-mi defini serviciile și de a cere un preț pentru munca prestată. Echipa cu care am lucrat făcea dezvoltare pentru produse de banking și se confrunta cu provocarea de a trece de la un mod de lucru waterfall, la unul agile. Inițial am făcut o oferta pentru o colaborare mai lungă, idee care a fost refuzată de management care își dorea sa aducă pe cineva de la centru care să se ocupe de tranziție. În final am livrat trei sesiuni despre Agile și estimări în echipa.

La sfârșitul lunii martie am călătorit la Iași unde l-am asistat pe Mark Summers in trainingul de certificare Scrum. Pe lângă experiența de a vedea un formator profesionist în acțiune am avut ocazia sa descopăr o grămada de lucruri interesante despre Agile Coaching și tehnici de facilitare în Scrum. Examenul de certificare l-am dat în tren și l-am luat.

Prima companie cu care am lucrat se numește Blink IT. O echipă mică alături de care am petrecut  aproape 4 luni la TechHub  cu misiunea de a-i ajuta să se organizeze mai bine pentru a livra un proiect inovativ folosind NodeJS și React.

Blink IT

Am trecut prin multe aventuri împreună de la a descrie un roadmap de produs, definirea de specificații și implementarea unei versiuni funcționale în fiecare sprint. Incertitudinea și dificultatea de a implementa o tehnologie aflată la început de drum ne-a oferit multe ocazii de a dezbate sau de a ne contrazice. Am trecut cu bine peste provocări cu umor și discuții deschise.

Dr Etienne Wenger: Learning in landscapes of practice

Despre filosofia învățării ca relație socială cu Dr. Etienne Wenger

Learning is often viewed as something individuals do as they acquire information and skills. It is usually associated with some form of instruction. Dr Wenger presents a different perspective on learning, one that starts with the assumption that learning is an inherent dimension of everyday life and that it is fundamentally a social process. From this perspective, a living “body of knowledge” can be viewed as collection of communities of practice. Learning is not merely the acquisition of a curriculum, but a journey across this landscape of practice, which is transformative of the self. Achieving a high level of “knowledgeability” is a matter of negotiating a productive identity with respect to the various communities of practice that constitute this landscape. This lecture reviews the main tenets of this learning theory, the ways in which it has been used in practice, and more recent developments.

Dificultatea invățării

Deprinderea unei noi abilități este un proces de lungă durată și foarte dureros. Pentru că te pune față în față cu limitele personale. Aud toate vocile care îmi spun că nu se poate, că este greu, că nu voi reuși.

Pentru a trece peste hăul învățării e nevoie de mulă energie, voință și perseverență. Am făcut primii pași pentru a deprinde abilități avansate de analiza a datelor și m-am lovit de obstacolul neputinței.

Pentru a reuși îmi găsesc tovarăși de drum alături de care să lucrez. Pentru mine învățarea este o experiență socială. Caut să mă înconjor de oameni cu aceleași preocupări alături de care să schimb experiență. Îi urmăresc pe cei ce au reușit și evit să conversez cu cei ce-mi spun că nu se poate.

Cum se formează decari?

La fel ca Gică Hagi mi-am propus să ajung să formez Decari și după prima experiență de a preda am aflat cât de greu este. Dintre cei 76 de studenți alături de care am colaborat în laboratorul de Tehnologii Web 6 au obținut rezultatul maxim la proiect. Deci cu unul mai mult decât mestrul Gică. El spune ca are 5 decari in acest interviu.

Am muncit cu drag, am investit multă energie și pasiune, dar este important să mă uit la rezultate. O distribuție normală. Natura și-a făcut datoria.

Cel mai mare pericol este să ne învățăm cu “lungă și pe a doua”. Să credem că meseria se învață cu două-trei tutoriale rezolvate înainte de interviu sau de examen. E nevoie de multă energie investită. Altfel ne vom ruga împreună la Sfântul Cinci.

Eu am fost un student de nota 6.33 în facultate. Dar am avut două mari ambiții:

  • la Algoritmi de programare mi-am propus să iau nota 11 și am reușit
  • la Structuri de date mi-am propus să trec examenul chiar dacă nu am trimis temele.

Cu doi dintre cei 6 am vorbit mai mult. I-am remarcat pe parcursul semestrului fiind foarte activi și dornici să evolueze. Mai apoi am aflat că au terminat licee de profil uman. Că au avut dorința să treacă peste ceea ce considerau limitări.

Discuțiile mi-au adus aminte de efortul pe care l-am depus să termin facultatea în condițiile în care lucram full time. La cele două materii mi-am dorit să iau nota maximă pentru că știam foarte bine ceea ce mă definește.

In final, a fi Decar nu e despre nota. Un Decar posedă pe lângă inteligență o serie de trăsături de caracter ce îl definesc. Perseverența, curiozitate, conștiiciozitatea, optimismul și autocontrolul sunt câteva din trăsăturile necesare pentru a avea succes.

Îmi voi arăta mereu disponibilitea de a sprijini pe cei ce își doresc să se auto-depășească. Eu urăsc învățatul cu trebuie. Deci dacă aveți idei sau răspunsuri pentru întrebarea “Cum se formează decari?” vă rog să îmi trimiteți.