All | H.P.C. Consulting Blog

Archive for category All

Silicon Valley vs Europa – sau concentrarea de resurse – sau atitudine

Citeam azi pe blog-ul lui Loic LeMeur (http://www.loiclemeur.com/) unul din oamenii foarte influenți în tot ceea ce înseamnă dezvoltarea Internetului părerea lui de ce Silicon Valley ”kicks Europe’s butt”. El o spune foarte bine aici: http://www.slideshare.net/loiclemeur/why-silicon-valley-kicks-europes-butt, e un video de 12 minute care merită văzut.

Ascultându-l pe Loic, mi-am amintit câteva din ideile lui citite pe blog-ul lui Radu Georgescu aici și prin alte articole sau comentarii de pe blog-ul lui.

E clar: resurse umane multe și bune, foarte diverse cultural, concentrate în special pe o industrie, resurse financiare atrase de-a lungul timpului, antreprenori cu experiență, etc. În preajma lor o Universitate (Stanford http://www.stanford.edu/) extrem de performantă și foarte deschisă. Uitați aici: http://ecorner.stanford.edu/ o colecție impresionantă de filmulețe cu antreprenori și manageri de succes care le vorbesc studenților despre ceea ce fac. Mă întreb când vor învăța Universitățile noastre că e extrem de util și motivant pentru studenți să aduci în mijlocul lor oameni de succes în domeniul pe care ei îl studiază? (aici sunt puțin rău, dar impresia mea este că uneori orgoliile în mediul academic de la noi sunt prea mari…)

Ce ne lipsește nouă, Timișoara sau România, de a deveni o putere în domeniul IT? Pe lângă unele aspecte evidente: lipsa unei strategii guvernamentale, calitatea slabă a învățământului, etc. etc. – m-am săturat să ne tot blazăm că nu avem și nu facem, respectiv degeaba le tot enumerăm că nu le vom schimba așa – ei bine, cred că în primul rând ne lipsește mentalitatea sau atitudinea de lideri adevărați. Cum spunea Loic în filmulețul de mai sus: antreprenorii din Silicon Valley vor să fie lideri mondiali în ceea ce fac. Când ne-am trezit noi ultima dată dimineața și ne-am propus ca în X ani să devenim CEI MAI BUNI din LUME la ceea ce facem? Și când spun ”noi”, mă refer la fiecare individ din țara asta, iar când spun ”cei mai buni din lume” luați-o ca pe o țintă care pare foarte departe (și care ar putea fi pur și simplu cel mai bun din Europa, sau între primii 5 din regiune). Dacă nu îți propui, n-ai nicio șansă, dacă îți propui măcar te vei apropia. Oare cât costa să visezi?

P.S.: pentru scepticii care vor spune că in Silicon Valley sunt bani și de aceea ei sunt buni, aș dori să le reamintesc ce era acolo acum 100 de ani.

, ,

6 Comments

Scutirea de impozit pe venit la programatori

Nu e genul meu să scriu aici despre finanțe, economie, politică, dar în ultima vreme s-a tot discutat despre eliminarea scutirii de impozit pe venit la programatori, ca o măsură care ar aduce mai mulți bani la buget.

Eu dețin o firmă de software, deci știu exact cum stă treaba la mine în curte. Mult mai bine documentat este articolul acesta al lui Varujan Pambuccian – deputat de mulți ani, responsabil cu comisia de IT – unde dă cifre concrete: http://varujan.rol.ro/2010/05/14/genul-proxim-si-diferenta-specifica/. Evident, subscriu 100% la ce spune dumnealui chiar dacă eu văd lucrurile la un nivel mult mai jos. Însă pot să confirm că în ultimele zile oamenii din IT (angajatori, angajați) au discutat foarte mult pe marginea acestui subiect, ajungându-se la posibile concluzii de plecat din țară respectiv mutat sediile financiare.

E păcat că cei care ne conduc nu fac o analiză cost / beneficii înainte de a debita astfel de prostii. Anul trecut au fost efectiv eradicate 100.000 de companii din cauza măsurii impozitului forfetar – companii care măcar susțineau câte o familie, dacă nu și aduceau ceva bani la buget. Am observat că ieri /azi nu prea s-a mai discutat de eliminarea scutirii de impozit, ceea ce e un semn de speranță pentru mine. Pe de altă parte rămân sceptic, pentru că prima suită de măsuri nu va fi suficientă și probabil se va recurge la mai multe peste câteva luni, prin urmare nu cred că acest subiect este încheiat.

Și pentru cei care nu știu detaliile: scutirea de impozit pe venit la programatori nu este o subvenție. Subvenție este în agricultură, unde se dau bani care nu se mai întorc niciodată la bugetul de stat. În IT este o investiție, pentru că această scutire determină o returnare (ROI) de 6 la 1 cel puțin, sub formă de impozit pe profit, și alte taxe pe care firmele românești le plătesc la Stat. Ca să nu vorbim și de fenomenul social: eu unul m-am săturat să tot plece din România persoane bine educate și plătite bine, iar noi să rămânem cu cine?

4 Comments

Practica de vara / Internship: da sau nu?

Scriu acest articol din perspectiva unei firme care își pune problema să invite studenți în practică de vară sau internship. Eu am înființat compania în 2006, deși abia pe finalul acelui an am început activitatea cu adevărat, iar de atunci am crescut constant, atât numeric cât și ca cifră de afaceri, menținând profitabilitatea cvasiconstantă. Unul din motivele pentru care am reușit asta, este că mi-am pus mereu problema resursei umane mai ales gândind pe termen mediu și lung. Astfel, în fiecare vară și mai nou în timpul semestrului II avem studenți în practică / internship. Este clar un cost pentru noi, în timp și uneori chiar bani, dar asta a fost o cale prin care am recrutat mai mulți colegi actuali.

Când vorbim de practică în general, aparent lucrurile par simple dar ele nu sunt deloc așa. În primul rând, există 3 părți implicate în intersnhip-uri: studenții, facultățile la care aceștia studiază, firmele dispuse să ofere locuri de practică.

Studenții. Ei sunt cei care ar trebui sa aibă tot interesul pentru activități practice în general. Facultatea le dă anumite cunoștințe, dar pentru domeniile tehnice trebuie neapărat să dobândească și experiență reală înainte de a absolvi. Spun ”ar trebui sa aibă tot interesul…” pentru că de fapt un mare procent din ei nu îl manifestă. E comod să abordezi viața de student în maniera ”dormi în pace / țara inginer te face”, mai ales în ultimii ani pentru studenții din IT, care – mai ales în orașe mari precum Timișoara – erau angajați la absolvire aproape garantat. Diploma de licență era un fel de cec în alb, un fel de voucher de salariu bun, cu job de la 9 la 17 și fără prea multe bătăi de cap. Situația s-a schimbat datorită crizei din care se pare că nu vom ieși prea curând, și în acest moment simpla absolvire a unei Facultăți de profil IT nu garantează nimic. Din punctul meu de vedere, criza înseamnă și ceva pozitiv: ne face să ne punem problema valorii pe care o aducem în sistem, să ne întrebam ”de ce m-ar angaja pe mine?”, respectiv pe studenți poate că îi face mai realiști.

Nu vreau să reiasă că aceasta e părerea mea vis-a-vis de toți studenții. Sunt mulți interesați de a câștiga experiență, de a face ceva, sunt curioși și doritori să se manifeste, iar asta mă bucură. Aceștia nu au de ce să își facă griji pentru ziua de mâine, pentru că din start au ceva în plus față de concurența lor și atât timp cât economia nu colapsează complet își vor găsi de lucru.

Exact din perspectiva asta mă gândesc acum la ce spunea odată tatăl meu, și el proprietar de firmă, într-una din lungile noastre discuții despre firme / economie / finanțe / vinuri :-), și anume că un procent oarecum măricel al șomajului aduce și ceva bun: pentru angajați frica de a nu fi șomeri îi face mai atenți, responsabili și buni.

Facultățile. Interesul acestora este evident: studenților le trebuie găsite cumva locuri pentru desfășurarea practicii, iar Facultățile în sine nu dispun de logistica necesară pentru acest lucru, respectiv nu se mai întâmplă ca pe vremea comunismului când existau companii mamut unde era ușor să plasezi dintr-un foc tot studenții. Ce ar putea totuși să facă mai bine acestea, este să mențină o legătură mai strânsă cu firmele posibil doritoare de studenți în practică.

Un alt aspect de îmbunătățit aici ar fi modul în care se desfășoară evaluarea practicii de vară. Colocviul din toamnă este mai degrabă o formalitate, și literalmente li se permite studenților să vină cu o adeverință de practică semnată și ștampilată la buticul din colț respectiv cu o poveste despre ce vezi-Doamne au făcut ei în timpul verii. Probabil Facultățile sunt reticente în a pune presiune pe evaluarea practicii atât timp cât nu pot oferi locuri pentru desfășurarea ei, dar nu cred că ar trebui să își manifeste atâtea griji ci pur și simplu să evalueze.

Firmele. Teoretic, orice firmă care dorește să aibă șanse de viitor își pune problema resursei umane de mâine. Dacă vei întreba un manager sau proprietar de firmă: ”vrei să îți meargă bine peste 3 ani?” / ”vrei să nu duci lipsă de angajați atunci când crește activitatea?” / etc – toți vor răspunde afirmativ. Însă diferențele apar în momentul în care fiecare acționează sau nu în acest sens.

Am constatat de-a lungul timpului, cu diverse ocazii, că multe firme preferă să stea într-o zonă de confort și să nu manifeste interes pentru atragerea de studenți în practică, adică să nu depună efort. Am auzit explicații de genul ”ce rost are să iau studenți în practică, că nu știu nimic?” / ”de ce să investesc în formarea lor ca apoi să plece la altă firmă?” / etc. Poate că pentru unele firme funcționează doar publicarea de anunțuri de angajare, dar eu cred că mai ales pentru firmele mici – medii este de ajutor cunoașterea în prealabil a noilor colegi, într-o situație în care aceștia sunt puși să facă ceva, să lucreze. Și da, nu ne putem aștepta ca un student în practică să facă ceva util – el pur și simplu învață. Și nu, nu este niciun câștig pentru firmă, nu pe termen scurt. Dar poate să fie un beneficiu pe termen lung – cum se întâmplă în cazul nostru, în care angajăm cam 1 persoană din 4 după fiecare practică de vară. Procent dat atât de calitatea studenților cât mai ales de ritmul nostru de creștere în acel moment.

Ar mai fi și argumentul responsabilității sociale. Nu sunt vorbe mari, dar ar trebui ca fiecare din noi care ajunge într-o poziție în care poate să o facă, să contribuie la educarea forței de muncă de mâine, așa cum am fost și noi beneficiari și noi la un moment dat. Dacă nu ne punem cu toții problema societății de mâine, cine să o facă?

Pe scurt, fiecare din cele 3 părți implicate petrece prea mult timp explicând de ce nu e OK: să faci practică cum trebuie / să cauți firme doritoare / să iei studenți în practică. Ce-ar fi dacă fiecare din noi și-ar petrece timp pentru a căuta soluții? (Eu unul îmi permit să îmi dau cu părerea și să comentez, pentru că avem studenți în practică :-) ).

, ,

3 Comments

MVP Summit 2010 - 2

Marți a început conferința, cu keynote și recepția de sosire: 1400 de participanți, din care peste 300 de MVP noi (”fresh meat”, printe care și subsemnatul). Nimic special, decât eventual modul în care ni s-a ”sugerat” ca suntem sub NDA (Non Disclosure Agreement) și să nu scăpăm informațiile confidențiale: au pus un filmuleț cu un tip care doarme, și se trezește cu un coșmar în care scapă informații confidențiale. După care scria ceva de genul: atenție la informațiile confidențiale, altfel veți dormi prost … și poate vă pierdeți titlul :-).

Dar să o luăm pe rând. Bellevue, căci aici este centrul conferinței, este un oraș lângă Seattle, destul de mare și foarte bine dezvoltat. Multe detalii pe Wikipedia dar pe scurt: aproape 130k locuitori, în centru lucrează 35k oameni, iar eu am numărat peste 20 de zgârie-nori (chiar și Hotel Hyatt în care stau este unul dintre ei). Este uluitor pentru mine să văd această devoltare, în condițiile în care Bellevue este de fapt un oraș situat în apropierea unei metropole, Seattle, iar eu personal îl vedeam ca un fel de suburbie.

Dacă keynote-ul și recepțiile generale au loc în Bellevue, sesiunile tehnice sunt organizate în Redmond, acasă la echipele de produs. Pentru mine este prima vizită in campusul Microsoft, și trebuie să spun că m-a impresionat: clădiri primitoare, nu mai înalte de 3 etaje, multă verdeață, geamuri înalte, multe terenuri de sport (soccer, baschet, etc). Campusul este imens – nu vă gândiți la un campus universitar – pur și simplu sunt zeci de clădiri doar în zona pe care am văzut-o eu, iar pentru a ajunge dintr-o clădire în alta de multe ori este nevoie să iei autobuzul (au chiar un serviciu de shuttle – suni și vine o mașină să te ducă în clădirea în care ai treabă). Am luat și niște capturi dar e mai greu să le pun pe blog :-).

Legat de conferință, azi a fost prima zi plină, cu sesiuni dedicate pe tehnologii. Eu am mers la ASP.NET unde am discutat despre ce din ASP.NET (Web Forms, Ajax, MVC) apare în .NET 4.0, respectiv Futures – adică ce nu intră în acest release, și va apărea mai încolo. 80% din ce am văzut știam deja, iar restul nu pot să spun acum :-), dar oricum sunt destule informații publice, respectiv voi reveni cu o suită de Live Meeting-uri pe aceste teme.

Mâine facem un ”deep dive”, de fapt continuă discuțiile de azi, iar vineri se încheie cu sesiuni generale. Va fi interesant, acum că abia mi-am reglat somnul, să plec spre casă sâmbătă dimineața.

,

1 Comment

MVP Summit 2010

Am ajuns la Seattle împreună cu Marius Băncilă pentru MVP Summit de anul acesta. MVP Summit este o conferinţă de vreo 4 zile dedicată unor sesiuni în care echipele de produs ale Microsoft discută cu MVP-ii din lume care doresc să participe. Eu mi-am fixat agenda a.i. să ajung la sesiuni, mic-dejun-uri respectiv cine cu persoane ca Scott Guthrie și Stephen Walther și subiecte ca ASP.NET, Ajax.

Conferința începe marți, dar am venit de ieri ca să ne plimbăm puțin prin zonă. Acum e 3 noaptea și ceva aici (nu credeam, dar se întâmplă să fii dat peste cap din cauza diferenței de fus orar) și ne uităm pe tot felul de hărți cum să ajungem unde dorim. Vrem neapărat Fry Electronics, respectiv o excursie la Mount Rainier dacă ne ajută vremea. Pe moment, plouă de când am ajuns.

,

1 Comment

Interviu cu mine la Tech Ed 2009

Sunt destul de tânăr în programul MVP, și nu sunt încă obișnuit cu totul, dar am observat la TechEd în Berlin că persoana din MS care are ca responsabilitate coordonarea programului lua interviuri la MVP-i care doreau acest lucru. Pentru ei scopul este să promoveze cât mai bine programul de MVP, de aceea mi-a și pus întrebări de genul: ”Cum ai ajuns să lucrezi în IT?” / ”Cu ce te ocupi zi de zi?” etc – cumva să vadă cei non-MVP că nu e foarte greu de atins acest obiectiv; pe de altă parte, evident că și eu aveam interesul să promovez ceea ce fac în comunitate, și in plus eram curios :-).

Nu a ieşit chiar rău, mai ales că am reuşit să promovez 2 site-uri din .ro:

embedded by Embedded Video

,

No Comments

Carte ASP.NET MVC scrisa de un prieten

Nu am mai publicat demult pe blog. Am fost cam ocupat, în special cu mutatul într-o locație nouă, mai mare și ceva mai potrivită pentru noi acum. O să revin pe acest subiect.

Doresc acum să anunț publicarea pe Amazon a cărții unui prieten din comunitatea programatorilor de .NET din România, Andrei Ignat. Andrei este MVP din 2009, și îi place mult subiectul ASP.NET MVC – deci iată și cartea lui. Există și versiunea în limba Română.

, ,

No Comments

Planificarea implementarii de Team Foundation Server (1)

E foarte posibil să începem din Ianuarie 2010 un proiect destul de mare ca să se justifice trecerea la unelte profesionale pentru tot ceea ce înseamnă managementul procesului de dezvoltare software. Stăteam zilele trecute și dezbăteam cam ce am folosi. Idei, sunt de tot felul, și încerc să le înșir mai jos.

Analiza cerințelor

În faza asta, de obicei există două tipuri de probleme:

1). Nu reușești să captezi corect cerințele. Ori sunt ambiguități, ori sunt conflicte – ele trebuie detectate cât mai rapid, pentru că mai târziu costă mult. Aici nu ajută prea mult uneltele, ci mai degrabă proceduri și un mod de lucru structurat, plus discuții multe cu clientul. Unii spuneau ca analiza cerințelor durează cam 20-30% din întreaga durată a dezvoltării produsului (sigur, împarțită pe toată perioada). Ceea ce sigur ne-a ajutat pe noi, a fost un curs de la Trilex, respectiv câteva cărți de la Microsoft Press, printre care ”Software Requirements, Second Edition”. Ca o paranteză, începem și noi ca firmă să înțelegem cu adevărat că e bine să cumperi un training sau o carte dacă vrei să înveți repede.

2). Întotdeauna când ecranele aplicației erau specificate de la început, am avut senzația că ne este clar la ce lucrăm. Chiar dacă nu poți la inceput să detaliezi 100% interfața, măcar prototipuri cu toate ecranele și navigările între acestea este obligatoriu să ai. Nu neapărat pentru tot proiectul, dar cel puțin pentru primul release.

Revenind la unelte, cochetăm cu BluePrint (http://www.blueprintsys.com/) sau CaseComplete (http://www.casecomplete.com/) pentru un management mai bun al cerințelor, respectiv cu Balsamiq (http://www.balsamiq.com/) pentru prototipuri. De asemenea, pentru estimarea și planificarea respectiv urmărirea task-urilor, Excel s-a dovedit o unealtă foarte utilă.

Colaborare

Prin colaborare înțeleg cel puțin 2 lucruri:

1). Management de proiect. Aici unelte sunt foarte multe, de la unele făcute custom (intern, foarte multe firme de soft am observat că au propriile unelte de tot felul – ceea ce mie mi se pare uneori o risipă de resurse), respectiv Excel, până la Team Foundation Server.

2). Integrare continuă. Adică să te asiguri că ce a lucrat azi fiecare dezvoltator nu strică nimic din ce e deja făcut. Și nu mă refer doar la a te asigura că nu face un ”check in” în sistemul de versionare care implică să nu compileze aplicațiile – dacă ai înca problema asta, nu are sens să povestim despre integrare continuă. Ci mă refer la a face zilnic un build la toată soluția, după care rulate toate testele (evident, totul să fie automat), și constatat că nu s-a stricat ceva făcut ieri sau de altcineva. Deci, aici cuvintele cheie sunt: daily build, automated build, unit testing, automated testing, source control.

În zona asta, unelte iar sunt multe: Ant, NAnt, MSBuild, Make – pentru build automat; SourceSafe :-), SVN, etc pentru source control; MSTest, nUnit pentru unit testing; respectiv putem ajunge la CruiseControl sau Team Foundation Server dacă trecem la nivelul superior.

Dezvoltarea propriu-zisă

În funcție de metodologia de lucru (dacă e agilă în special), trebuie acordată atenție la aspecte ca: code review / refactoring, pair programming, test – driven development, mocking, dependency injection, etc. În firma noastră deja folosim code review (cam puțin, e drept), dar vom începe să acordăm mai multă atenție la acest aspect cu tot cu refactoring, respectiv la pair programming (această metodă de lucru este foarte utilă inclusiv pentru creșterea rapidă a nivelului programatorilor mai tineri, iar noi avem intern un document care scrie ce trebuie să știe un programator la H.P.C. Consulting). De asemenea, folosim uneori și de acum vom folosi mai des (în special în proiectele în care merită dpdv al dimensiunii) Unit Testing, dar nu TDD.

Ca unelte, Unity http://www.codeplex.com/unity, RhinoMocks http://www.ayende.com/projects/rhino-mocks.aspx, MSTest, nUnit, Resharper (sau Visual Studio pentru refactoring).

Scriu aceste rânduri după ce am văzut la TechEd câteva prezentări / workshop-uri despre Team Foundation Server 2010. Acum 10 zile aveam o discuție cu un client, care ne spunea că ar fi bine să trecem la TFS iar eu eram foarte sceptic din două motive: unealta mi se părea complicată – aspect ameliorat mult acum după ce am vazut la Berlin, respectiv faptul că o unealtă de acest gen nu are sens decât dacă vine peste o serie de proceduri / mod de lucru bine structurate în echipa de dezvoltare. Cu acest al doilea aspect încă mai avem de lucru, dar voi insista foarte tare în următoarea perioadă pentru a ajunge la nivelul de maturitate în care TFS să aibă sens, și să ajute, să îmbunătățească ceea ce noi facem deja.

Legat de proceduri / mod de lucru structurat, am reușit până acum să avem câte ceva, chiar dacă - dupa cum spuneam – mai avem de lucru:

  • procedură de release. Scrisă, cu un checklist care se listează la imprimantă și se semnează de cel care face release-ul.
  • document care descrie procesul de dezvoltare. Va fi modificat, odată cu trecerea la TFS – dar ideea e că avem ceva în acest moment.
  • document de Change Request – util atunci când clientul modifică cerințe care au fost deja estimate și asupra cărora s-a căzut de acord.
  • document care specifică în detaliu ce trebuie să știe un programator de la H.P.C. Consulting, și în cât timp, și cine îl ajută să învețe.

Voi reveni în perioada următoare, pe măsură ce reușim să avansăm cu implementarea de TFS.

,

1 Comment

TechEd Europe 2009

Sunt și eu la Berlin. TechEd-ul de anul acesta a anunțat câteva lucruri interesante:

  • Achiziția Teamprise. Adică, niște add-in-uri de Eclipse (și toate sculele bazate pe Eclipse) pentru Team Foundation Server. Mișcare deșteaptă, dacă ținem cont exact ce unelte de dezvoltare (și de la ce firme :-) ) sunt bazate pe Eclipse.
  • Lansarea Exchange Server 2010.
  • CTP-ul de SQL Server 2008 R2.
  • Evident, discuții despre cloud computing, mai exact Azure. Dacă anul trecut la TechEd se vorbea foarte abstract despre acest subiect, acum s-au prezentat chestiuni mult mai practice: exemple de aplicații, scenarii posibile, etc.
    Eu personal sunt interesat anul acesta de subiecte ca: Team Foundation Server, Agile, Scrum (vreau să implementăm la noi TFS și încă nu mi-e clară metodologia pe care o să mergem). Din fericire, sunt destule sesiuni și destui oameni deștepți pe aceste subiecte, așa că probabil voi pleca de aici lămurit.
    Am apucat azi să pun mâna și pe ceva tehnologie, și am rămas plăcut impresionat de o evoluție pe partea de ASP.NET / Ajax: Ajax Navigators respectiv Ajax Connectivity. Sunt 2 idei interesante, dar din păcate dacă am înțeles bine nu funcționează decât în IE8.

Închid, că mi-e foame și sete de o bere.

, , , ,

1 Comment

Live Meeting-uri XamlCentral

Colegii de la XamlCentral au înregistrat câteva LiveMeeting-uri săptămâna trecută:

  1. Introducere în RIA Services
  2. Databinding, Dependency Properties, Routed Events

Pentru compatibilitate 100%, deschideți link-urile cu IE (la fel și pentru prezentarea mea anunțată aici).

,

1 Comment