LOVE YOUR CODE!

Ieri și azi, la marea uzină, a venit un super guru în ale programării, și nu numai, Venkat Subramaniam să ne zică una alta. Evenimentul, deși țintit către oamenii tehnici, a avut două sesiuni mai generaliste care s-au chemat așa: Caring about Code Quality și Evolutionary Design: Pragmatics and Practices. Acuma, eu nu am mai scris vreo linie de cod de câțiva ani buni, dar subiectele mi se păreau de interes și pentru amărâtul de Project Manager ce sunt zilele astea.

Mi-a plăcut la maximum. M-a uimit stilul american de pragmatism, deschidere și simplitate pe care l-a adus Venkat cu el. Totul a fost de bun simț și deși eram de acord aproape cu tot ce zicea am rămas cu un mare semn de întrebare: Dacă suntem de acord cu totul și nu pare străin, atunci la mine pe proiect de ce nu e așa? Și cum aduc toate astea și la mine în proiect fără să fac o revoluție care mă poate costa timp și bani, pe care nu îi am?

Pe lângă asta, două chestii mi-au rămas zbârnâind în cap, mai tare ca altele:

1. Love your code! Do not neglect it. – Comparația folosită de Venkat, un pic exagerată evident, a fost cam așa: Codul tău e ca și un copil pe care trebuie să îl crești responsabil și cu grijă ca atunci când merge în lume, aka producție, să se comporte Beautiful!. Nu vrei să îți neglijezi codul, așa cum nu vrei să îți neglijezi copiii, iar când scapă de acasă să își facă de cap în cele mai dubioase moduri posibile. Grija pentru cod înseamnă, printre altele, să fie simplu, extrem de ușor de citit de ceilalți colegi, bine scris și acoperit complet de teste automate și manuale. Mi-a plăcut. LOVE YOUR CODE! ( M-am și gândit cu un pic de groază la codul pe care l-am lăsat după mine și e prost crescut. Ca noroc că m-am măritat și mi-am schimbat numele și nu mai poate da nimeni de mine.)

2. De ce oare trimitem Project Manageri și Scrum Masteri la cursuri și certificări de cum să aplice o metodologie de organizare sau alta, dar nu îi trimitem la conferințe tehnice unde se discută despre ce se întâmplă în linia de cod din proiecte, despre calitate, eficiență, dependințe, librării, tendințe în dezvoltare de software, tendințe în testare automată, arhitectură evolutivă…, lucruri care pot să aibă un impact la fel de mare asupra proiectului ca o organizare bună? Sau lumea face asta și numai eu sunt tutuță?

V-am zis că mi-a plăcut, nu?

coding-national-curriculum-computing