luni, 19 iulie 2010

Dacă prostia ar durea...

Hai bonjur dragi conaționali și nu numai!
Titlul articolului vă sugerează că nu este vorba despre concediu, poze, etc, nu? Ei bine, aveți dreptate!
Acum să vă explic și de ce:
- treaba cu sortatul, redimesionatul, clasificatul, și alte ...atu-ri am făcut-o la birou! Prin urmare, pozele sunt bine-mersi în computerul de la birou! Și-așa de acolo am scris de când m-am întors din concediu, nu de acasă (din cauză că merge netu mai bine la birou)!
- dar să zicem că n-ar fi fost asta o problemă, și aș fi putut foarte bine azi să mai scriu și de acasă (așa cum fac acum, de altfel). Problema e că nu mai am chef! De ce? Pentru că tocmai am descoperit cât de prost pot fi!
Știu că o mare parte din voi nu o să înțelegeți prea multe din articolul de față, dar îl scriu mai mult pentru a mă descărca! Că mor de ciudă cât de căscat și de superficial pot fi!

Deci: vineri a fost primul build pentru noul release la care am muncit cu toții! Pentru cine nu știe ce-i aia: s-a dat în folosință la client rezultatul muncii unei echipe! Dimineață m-a anunțat PM-ul că am avut 2 erori in scripturile mele!

Una din cauză că am uitat să fac o chestie minoră: mi-a zis el să re-denumesc un view pe care l-am creat la unul din task-uri și să-l drop-uiesc pe ăla vechi. Fi-i-ar silă să-i fie! Mare rahat: din NetProvContract trebuia să-l re-denumesc în NetworkProviderContract, că e mai sugestiv! Bineînțeles că asta după ce am terminat de dezvoltat partea respectivă cu tot ce implica ea (view-uri, proceduri, ...)
Sugera-mi-ai ...
L-am re-denumit! Numai că, la cât sunt de amețit, am uitat să-l drop-uiesc (adică să-l șterg) pe ăla vechi! Ăla vechi care era folosit într-o procedură, într-o definiție a unei variabile, unde bineînțeles că am uitat să modific denumirea. Dacă îl dropuiam, procedura nu s-ar fi compilat și aș fi observat instantaneu greșeala! Dar bineînțeles că nu am observat, iar scriptul de instalare a crăpat în locul respectiv!
A doua din cauză că eu, datorită faptului că am lucrat în majoritatea anilor doar în baza de producție, obișnuiam să lucrez fără să salvez la mine în PC la fiecare pas! Salvam la început, pe la mijloc și la final! Ei bine, asta ține când lucrezi direct pe baza de date! Când lucrezi normal (adică cu scripturi de instalare la fiecare release) trebuie lucra în .sql (adică procedura/funcția/pachetul la care prășești să o prășești cu tool-ul respectiv (TOAD, PL/SQL Dev, ...), dar salvat fiecare modificare pe PC). Ei bine, mi-a zis mie PM-ul asta, dar mai acu 2-3 săptămâni, când a observat și omu ce fel lucrez eu! Un anumit pachet nu l-am salvat după ce am făcut oarece modificări la el, în felul ăsta făcând Check-In (adică am predat aplicația celor de la Source Control) pe sursa de dinaintea modificării!
Stupid me!

Ei bine, Oameni suntem/Găini mâncăm! Greșim și noi! mi-am zis. Viața merge înainte, oamenii din greșeli învață, etc.

Am băgat ce-am băgat azi niște trebi, apoi, pe la pauza de masă, vine iar PM-ul la mine să-mi zică alta: că nușce nu merge! Sap io și găsesc buba (relativ repede, că aveam așa un presimț în urină): tot un pachet pe care l-am modificat in baza de date, dar nu l-am salvat => sursă dusă nașpa in SourceControl și , mai departe în build!
Fuuuuck!
Ce să mai zici? Puteam să-i explic șerifului că s-a întâmplat în săptămâna premergătoare concediului? Și că mie îmi stătea capu la bilete de avion/hoteluri Paris/hoteluri Bulgaria/... ?
Băi, și are șerifu ăsta un stil de îmi venea să-mi f..t una singur! Deci doar mi-a adus la cunoștință! Sec! Și problema, și urmările: deoarece s-a propagat eroarea in build, până la build-ul următor nu va putea fi testată de catre cei de la echipa de testare părticica asta de aplicație, ci doar după al doilea build! Ceea ce înseamnă timpi în plus față de ce era prevăzut în plan! Și atât!
Da' mai bine mă-njura de mama! Deci nu pot să vă explic ce fel m-am simțit! Parcă îmi dăduse cineva pantalonii jos, și, odată cu ei, și chiloții!
Înainte aș fi râs de ”importanța” acordată acestor erori. Ele sunt niște greșeli minore în fond (un pic de neatenție, din 15-16-17 task-uri lucrate la proiectul ăsta, ăstea au fost singurele erori), dar, datorită stilului profesionist în care lucrează ăștia aici, sunt greșeli MARI!
Acuma, oleacă în apărarea mea, aș putea spune că 5% din vină îi aparține și lu' dom'PM! Că intră în atribuțiile lui să verifice orice modificare fac, are și tool-uri speciale pentru asta, care îi arată exact diferența dintre o sursă veche șu una nouă! Dar ar însemna să fiu măgar! Pentru că omu' a văzut că mă descurc binișor, nu mai stătea să mă verifice cu boldul! Adică mi-a acordat cumva încrederea lui! Încredere pe care acum am pierdut-o! Tâmpit notoriu ce sunt!

Pana mea! Nu mai am chef de nimic acum! M-a făcut grecu' din vorbe de numa'. Și asta fără să ridice tonul, fără să reproșeze, doar mi-a adus la cunoștință! Pe un ton mai amărât ce-i drept! Și asta a fost tot! Dar îmi venea să intru în pământ! Nu m-am mai simțit așa de nașpa de mult tare! Parcă trăsesem un pârț în plin birou, așa mă simțeam! Îmi venea să mor de ciudă!
Vă dați seama ce fel o să mă privească ăsta acum, nu? O să mă întrebe de fiecare dată dacă am verificat, dacă e versiunea corectă sursei, și alte de-ăstea! Că așa-i stilul la ei! Nu-ți aduc aminte că ai fost prost, doar se asigură că nu o să uiți!

Ce mai pot să zic! ... Am comis-o! Asta e!
Sper să reușesc să repar impresia creată!


O să mai scriu când m-oi m-ai calma! Că acum sunt plin de draci!
Hai pa!

4 comentarii:

sobolanu' spunea...

Ma vita..

Tun pana mea n-ai acces la toolu' de source countrol? Ca lanoi diveloparii isi baga singuri taskurile in dev, urmand ca in mediile superioare sa le urce un build manager (adica mandea, care mai uita sa urce taskuri cand ii vin pe e-mail, d'aia inainte de cutover suflu sin iaurt, adica printez screenuri ci compar taskuri, versiuni si last modified by).

Orcum, eo taj trimite acasa :)

Mishu expatu' spunea...

Ba vaca-cu-kabina,
normal ca n-am acces! Aici se munceste organizat, nu ca la voi! Aici fiecare e cu patratica lui: eu sunt cu programatu'. Serifu' e cu analizatul, impartitul, verificatul! Testing team-ul e cu testatul! Source Control System e cu controlul surselor si cu deploiatu'. Avem responsabil cu managementul de proiect (adica unu' care nu face decat sa tina socoteala despre cum merge proiectul, termene, intarzieri, ...). Avem pana si responsabil cu documentatia! Orice este documentat, standardizat, de la cereri de concediu pana la definitii de tabele, view-uri, descrieri de functionalitati ale sistemului, tot!

Ce sursa dau la Source Control, e decizia mea; dar odata ce le-am dat-o, eu nu mai am treaba!

Stupidule!

P.S. Am uitat satz zic: n-avem soarech! :D

juarec spunea...

bine ma, hai sa-ti mai zic ceva. Paici rusii da programeaza nu zic nidioadata ca au fost idioti si d'aia au bagu x sau y... zic ca n-au trimis sursa care trebuie :)

juarec2 spunea...

astfel, daca tu dai checkin in dev in source control, inseamna ca mai poti baga un ochi nainte de catovar sa vezi ce-ai urcat...

Trimiteți un comentariu