Agentie sau developeri in-house pentru un proiect de frontend?

Ce parere aveti despre angajarea unei agentii pentru dezvoltarea frontend-ului pentru o aplicatie web medie in comparatie cu angajarea a cel putin 2 developeri?

Angajarea a devenit foarte dificila, fiind o companie foarte mica cu doar 2 angajati, suntem evitati de majoritatea developerilor mid-senior care lucreaza full time, cei care sunt de acord vor doar part time.

Ma gandeam daca totusi nu e mai eficient sa angajam o agentie, ca si asa am intarziat mult cu proiectul, decat sa mai pierdem inca cateva luni cu recrutarea. Pe langa asta suntem ocupati cu clientii existenti si nu prea avem timp disponibil pentru managementul proiectului.

Multe lume nu le recomanda pentru ca poti plati aproape dublu pentru o calitate slaba, dar totusi vad ca multe rezista deci nu poate fi chiar asa rau.

Care sunt lucrurile la care sa fim atenti cand lucrezi cu o agentie? Care sunt experientiel voastre? Poate si ceva sfaturi de la developeri care lucreaza la astfel de agentii.

Multumesc

1 Like

Categoric vei plati (mult) mai mult decat daca ai plati dezvoltatorii direct.

E adevarat, exista si riscul sa platesi niste developeri o vreme si sa nu faca (mai) nimic, chestia asta chiar s-a intamplat la o firma pentru care lucrez. Dupa aproape un an de facut mai nimic au zburat, dar firma s-a ales cu pierderi de pe urma lor, ca i-a platit in timpul asta.

Poate erau de-aia scoliti la libertate la fraierit in IT, varianta ucrainiana.

Am participat odata la angajearea unui agentii, erau turci, si a fost teapa, proiectul a fost fail, ei au venit cu niste oameni OK, la inceput, ca apoi de fapt sa lucreze altii la proiect, juniori low-paid care vroiau sa castige experienta doar, din ce am inteles e common sa bage in fata oamenii buni ca sa castiige proiecte ca apoi sa lucreze altii.

3 Likes

Ai dreptate ca e greu sa angajezi. Dar e greu sa gasesti si o agentie serioasa care sa iti livreze. Gandeste-te ca si agentiile au aceeasi problema cu angajarile ca tine.

Am auzit o poveste horror chiar anul asta. Agentie mare din romania nu a livrat proiect serios(dar cam mediu ca si complexitate) pe react. Proiectul a trebuit livrat de dezvoltatorii interni in “prelungiri”.

A devenit cam loterie, sa iti spun sincer.
Eu as merge pe varianta cu angajari de devi cu experienta in domeniu si part time daca doar asta vor.

Iti doresc mult succes.

1 Like

Ms pentru raspunsuri, mi-am intarit convingerea ca agentiile sunt de evitat.

Totusi riscul ca un developer sa “traga de timp” ca si la o agentie, mai ales daca e part-time si contractat pe ora ramane, eu personal cunosc developeri care fac asta. Cum credeti ca ar fi cel mai bine redactat contractul incat sa reduca riscul asta, dar sa fie echitabil si pentru developer?

Sa fie in totalitate bazat pe milestones (de ex. primesti $x cand y e terminat dar cu un deadline)? Sau sa fie ceva mixt, genul un tarif pe ora mai mic + milestone? Sau alte idei?

La milestone problema poate sa fie daca celalalt programator il trage in jos pe primul si proiectul intarzie din cauza altuia, nu a lui, e mai greu de despartit la inceput taskurile, mai ales daca unul e senior si lucreaza la partile mai sensibile si celallat e mid.

Eu as merge pe solutia agentie, cu cateva lucruri stabilite de la inceput:

  • 4 milestones (+/- in functie de complexitatea proiectului) agreate cu agentia; plata la finalul unui milestone;
  • proiectul sa stea pe un repository unde aveti si voi acces (chiar indicat sa setati voi un cont pe bitbucket/github si sa le dati lor acces);
  • vorbit cu un programator extern, cu experienta, daca poate face audit pe ceea ce livreaza agentia(in materie de calitate cod). E ok sa se uite timp de 1-2h, o data pe saptamana; Valabil daca voi nu aveti persoane tehnice in echipa;
  • cerut raport de lucru la final de saptamana;
  • interviu cu developerii ce vor participa la dezvoltare, sa va dati si voi ok-ul;
  • suport ‘gratis’ pentru bug-uri, inca 6 luni dupa livrare.

Fiind si de o parte si de alta a baricadei, cam asta as zice eu ca e nevoie in mare ca sa fie totul cat de cat ok.

Cred ca agentiile o taraganeaza sau livreaza calitate proasta la clientii care nu stiu exact ce vor sau nu au experienta tehnica.

1 Like

Dezvoltarea de software nu e știința exactă, va trebuie o echipă cu o combinație perfectă de oameni capabili.

2 oameni sunt foarte puțini, nici un om normal la cap nu se bagă singur pe FE/BE de exemplu, estimarea trebuie făcută de cei care fac proiectul, degeaba pui un milestone, e praf în ochi. Tu nu știi ce complexități se ascund în spate.

E normal ca un dev să tragă de timp, nu nesimțit de mult, dar trebuie o doza sănătoasă de supraestimare că nu lucrezi doar la ce știi că vei lucra.

Eu zic că aveți așteptări nerealiste, trebuie un roadmap și date de livrare țintă, dar făcut după estimarea devilor (± 20%).

Altfel dacă se știe că vreti navetă spațială în 2 luni că e simplu și voi l-ați estimat e mort proiectul din start. Un manager e important să seteze așteptările ca să nu facă devii over engineering când trebuie ceva simplu și nici improvizație când trebuie ceva serios.

Subcriu la dev intern + agenție, dev-ul intern lucrează cu agenția și participă la fiecare meeting. Ce se face la multe agenții e un senior la 3 mid/juniori sau mai rău, dar plătești și managerii.

Frontend-ul e dificil dacă n-ai o echipă, puțini știu ce fac. Plus până când FE nu e total integrat cu BE și cei de pe BE sunt 0 barat că pot să arate ceva ce teoretic va merge dar mai mereu dai de ceva problemă la integrare. Dacă trebuie kubernetes mai adaugi o lună cel puțin doar pentru configurări și CI/CD.

Eu îți zic că dacă ceva agenție sau dev nu trage din nas si nu supraestimeaza la un timeline dat de tine e un red flag.

1 Like

super helpful, ms

Intrebarea este foarte complicata. Experienta mea cu agentiile e foarte proasta (chiar daca am platit multi bani) si cunosc una singura care o pot recomanda dar este $$$.
Problema este ca si daca angajezi oameni dar nu ai un lead bun va fi problematic.

Agentia o sa faca pusshback, ca o sa fixeze, ca asa e la inceput pana, work in progress, etc, totul ca sa fii comitted cu ei, bine cei mai destepti la inceput o sa lucreze bine, pana cand sa fie prea scump si prea tarziu sa ii schmbi, asa cu un developer, mai negociezi, trebuie sa iti dea 30 zile preaviz, si poti angaja pe alcineva sa faca handover.

1-2 ore pe saptamana e putin sa faci audit.

1 Like

In momentul de fata cererea de developeri este probabil la maximul istoric. Sansele ca sa resusesti sa angajezi, din postura de firma mica, unul-doi developeri cu senioritate, in termen de 2-3 luni sunt mici.
Sa nu zic de cat overhead va exista daca developer-ul decide ca nu ii place ce face si pleacă in 2 luni.

Eu cred ca fiecare trebuie lasat si platit sa faca ce stie mai bine. Clientul sa vanda paine (doar un exemplu), agentia sa faca site-uri.

‘1-2 ore pe saptamana e putin sa faci audit.’
Decat deloc, e ok si asa. Trebuie doar sa vezi in mare ca nu iti fac site-ul din cod copy-paste de pe stackoverflow sau ca folosesc librarii deprecated. Daca mai rulezi si un Sonarqube peste cod, cateva ore sunt suficiente sa stii ce se livreaza. Pentru code-review meticulos ai nevoie de cineva in echipa, cel putin part-time, sa se ocupe de asta.

Nu tin partea agentiilor, stiu ca multe au ca scop sa stoarca si ultimul cent de la client; insa daca stii ce vrei si ii tii din scurt (inclusiv financiar) sunt nevoiti sa se mobilizeze si sa livreze.

LE: Si conteaza foarte mult si developerul/ii pe care ii pune la dispozitie agentia. De aceea am punctat si faptul ca ar trebui sa aiba o discutie si clientul cu ei inainte. Daca nu ii pun sa lucreze pe 2-3 proiecte concomitent, 90% din ceea ce se livreaza e la latitudinea developerilor.

Problema cu agentiile este ca isi cauta devii in aceiasi piata ca restul lumii. Rar, foarte rar gasesti in ziua de azi o agentie cu devi seniori care stiu ce fac si se tin de treaba. Exista, dar nu cred ca iti permiti scorurile de la MRM//McCann sau altele cu notorietate similara.

Foarte multi programatori cu experienta din agentii au trecut pe freenancing/contractori direct la client pentru ca nu mai are sens sa lucreze pentru intermediari. Altii care nu au vrut freelancing, au trecut la firme de produs.

Bineinteles ca eu cunosc doar practicile unora dintre agentii. Nu am toate datele. Insa din ultimele patanii concluzia de mai sus ar trage-o oricine.

Stiu 2 proiecte care au fost facute cu agentii in ultimul an. Doar partea de frontent. Si agentii cu un oarecare nume in Romania, nu firme de apartament. S-a lasat cu rescrieri din cauza calitatii slabe. Unul din proiecte a avut intr-o luna 12 autori in repo-ul proiectului de pe github. Credeti ca avea agentia 12 angajati pe frontend in total? Nu. Dar programatorii veneau si plecau ca in gara de la aia.

Cunosc si o situatie in care a fost adus un “frontend consultant” pentru terminarea unui proiect in timpii doriti de management. Avea 3 luni la dispozitie sa termine treaba. Ce credeti ca s-a intamplat? A plecat dupa 1 luna. Mai mult a incurcat decat sa descurce.

In fine. Fiecare face ce vrea. Nu doresc cearta cu nimeni. Vreau doar sa punctez faptul ca angajarile se fac foarte greu in ziua de azi. Nu numai “unu mic” are probleme in a gasi oameni. Au toti. Mai bine aduci oameni care pot lucra 2h pe zi. Dar au experienta si stiu ce fac.

1 Like

Pentru fiecare e loc pe piață.

  1. Agenții - calitate slabă spre mediocră, dar adună toate resursele necesare și duc proiectul pâna la capat; sunt bune pentru majoritatea proiectelor finanțate din bani publici, site-uri de prezentare și aplicații relativ simple.

  2. Angajați in-house - calitate mediocră spre bună; e greu să-i găsești si greu să-i motivezi să facă treabă de calitate superioară; buni pentru orice proiect care nu își propune să rupă gura târgului, outsourcing.

  3. Angajați in-house + stock options - calitatea maximă permisă de cunoștințele și abilitățile pe care le au; buni pentru proiecte proprii.

Orice antreprenor în domeniul ăsta ar trebui să fie în categoria 3. Cât e firma mică, patronul trebuie să fie arhitectul și programatorul principal, nu e nevoie de un extern să facă code review. De multe ori, antreprenorii nu cunosc nici tech-stack-ul nici domeniul.

Eu sunt pe partea cealaltă, in spatele unei firme care dezvoltă software.

Din experiența mea vin o grămadă de clienți dar rareori se concretizează într-un contract. Toți vor marea cu sarea, stabilim că putem face, doar semnăm și ne punem pe treabă. Apoi pauză, că se mai gândesc.

Comunicarea cu cei cărora le dezvoltam softul e buna spre excelentă, problema e că undeva după 3 luni își dau seama că nu mai au chef sau ideea lor nu se pupă cu piața. Am avut un proiect lăsat baltă la 99% că omul și-a dat seama că nu vrea să lucreze în industria x.

Eu zic că suntem oameni capabili, softul pe care l-am construit pentru afacerea centrală merge de rupe. Nici nu consider că suntem scumpi (sub 100.000 de euro per proiect - mai mulți oameni, 3 - 6 luni, nu suntem plătiți cu 1000 de euro dar nici nu facem 15.000 pe lună cum e promis prin diferite locuri), chestia e că toată lumea e cu morcovul in fund că nu știu ce vor și nici nu testează piața.

De fapt asta e mirarea mea: n-a venit vreodată un client să zică: băieți, ia faceți-mi un prototip in o săptămână pe 2 euro să văd ce tracțiune are in piață. Toți vor următorul sistem de operare, Facebook, dar vin cu descrieri incomplete, parca scrise de copii de generală (de genul, aplicația va fi bazată pe inteligenta artificiala - atât) și când venim cu întrebări suplimentare, pauză cu săptămânile. Probabil că își dau seama că suntem buni și ei că nu știu ce vor.

In fine, avem un destin ciudat. Toți ne laudă ce buni softisti suntem, pe de altă parte clienții rămân cu un soft pe care apoi nu-l folosesc.

Ceea ce doare e că ne implicăm să iasă lucrurile bine, încercăm să facem cat mai mult în bugetul dat, ba facem chiar și muncă patriotică că apoi clientul să dispară că s-a reîntâlnit cu prietena din liceu și acum vrea să facă fotografie cu fluturi pe câmpii și nu îl mai interesează softul.

5 Likes

Depinde cu ce clienti alegi sa lucrezi… daca sunt Gigei care vor sa se aventureze in SaaS sau mobile apps ca de acolo au auzit ca se fac bani, dar au 0 experienta in domeniu, se poate intampla orice.

Eu de ex am un produs existent (construit de mine) in spate care are clienti considerabili si merge bine. Am nevoie de un UI / UX imbunatatit pentru a trece la urmatorul nivel.

Totusi problema la agentii e ca si ei vor sa scoata cat mai mult cu cat mai putin. Produsul pe care il am necesita integrari cu diverese SaaS. Cand facem integrari si dam de aplicatii care lucreaza prin agentii imi pun mana in cap. Modificari simple de cod dureaza o saptamna cand pot fi facute intr-o ora…

Nu de multe ori am discutii cu clientii principali si mi se reproseaza ca integrarea e complicata si ca a platit foarte mult pentru ea, dar tot ce a facut agentia e sa includa un script de pe un CDN si sa faca un call la o functie cand se intampla un anumit eveniment in aplicatie. Pentru asta am vazut cum agentiile au facturat clientilor chiar si intre 20 si 100 de ore de lucru, la 3 linii de cod modificate, pe cand developerii in-house fac totul si intr-o ora, cu tot cu testare s.a.m.d.

Nu zic ca toate agentiile sunt la fel, dar marea majoritatea cu care am lucrat asa fac, de asta sunt reticent cu privire la agentii, trasul la ora (cel putin la tipul asta de task) e sport national.

1 Like

Ti-as recomamda sa cauti contractori mid senior chiar daca e mai acump si sa iti faci proiectul cu ei. E mai ok decat sa apelezi la o agentie si cel mai probabil mai ieftin. O agentie probabil are deja astfel de oameni pe care doar ti livreaza tie si le ramane si lor profit. Poti gasi un front end dev senior pentru proiectul tau la un tarif intre 30 - 45 EUR / ora. Success!

1 Like

Nu exista task de o ora, nu stiu de unde iei asta, poate schimbarea unui text, unei iconite, setarea unui feature flag, dar in rest nu ai asteptari realiste.

Fiecare task trebuie transpus intr-un story, estimat, acel story trebuie luat in sprint (prioritizat sau trebuie terminate celelalte taskuri din sprint, inceput un sprint nou), inteles, daca nu stie nimeni cum se integreaza acel ceva posibil se face un spike, se face documentatie din spike si dupa cineva integreaza, scrie teste, dupa vine cineva si testeaza ca functioneaza, trebuie acceptat de PO si abia dupa se livreaza.

Deci in mod ideal 1-2 zile de munca dupa ce s-a luat task-ul in sprint pentru ceva ce e foarte bine documentat si relativ usor de testat. Daca sunt buni si cineva prioritizeaza munca il fac in jumatate de zi, dar nicidecum o ora.

Acum cu indieni am vazut si eu cum nu face nimeni nimic timp de o saptamana dupa ce am avut 2 call-uri in care practic le-am facut tot ce trebuia sa faca si trebuia sa dea copy paste din call si in fiecare zi au zis ca lucreaza la task.

Ca sa iti dau complexitatati cu ce ai zis ca e task de o ora: Ca sa iei un script de pe un CDN posibil trebuie sa setezi CORS pe backend/load balancer, trebuie modificat backend-ul si facut un release, dupa ce e facut se poate testa ca merge pe frontend. Alta complexitate: Poate acel script are erori in SonarQube, are erori de exportare si nu poti sa ii faci push in cod fara sa pui exceptii, trebuie sa vezi cum poti sa il folosesti si sa nu cazi tu de vina daca cineva iti sparge aplicatia prin script-ul ala.

1 Like

Fac asta de 4 ani, cu 1000+ companii integrate, stiu exact ce inseamna scriptul si care e tot flow-ul. Da, e task de o ora de implementat (fara release in productie), e mult mai simplu decat crezi, nu vorbesc in necunostinta de cauza, asta fac zilnic.

Cand sunt developeri in-house, totul merge super repede, de cand incepe lucrul la taskul de integrare dureaza o ora in majoritatea cazurilor pana ajunge in staging. Poate putin mai greu la companiile mai mari, dar lucram cu companii mici si medii.

1 Like

Eu am lucrat si de o parte a baricadei (ca si dev intr-o agentie) si de alta (ca si lead tehnic ce asteapta o agentie sa implementeze ceva). Totul se reduce la definirea asteptarilor.

Daca poti sa definesti foarte bine ce vrei (tehnic, comunicare, livrabile, plata) si esti sigur de tine, merge in ambele cazuri. Daca observi ca si in proiectele curente aduci modificari proiectului in timp ce il dezvolti, va fi greu de lucrat cu o agentie.

E la fel ca si cum ai primi un proiect tu si ai vrea sa il faci. Te uiti peste el, poate e clar in linii mari, dar cand intri in detalii incepi sa ai intrebari.

Daca ai documentatia proiectului de la overview spart pana in taskuri atomice toata lumea o sa aiba aproape aceiasi intelegere si atunci gasesti oameni care vor taskuri clare.

Cumva de asta fuge toata “industria” si “agile-ul” a castigat teren pentru ca lasa loc pentru schimbari neprevazute.

Din experienta mea e foarte greu sa pui toate specificatiile, nu doar cele tehnice ci si cele de performanta/testare (diferiti clienti si browsere) si mai ales unele de securitate care iti pot schimba arhitectura/livrarea gen (cine este responsabil pentru toate librariile din proiect iar daca s-a decis sa se ia un stack si una din librarii e foarte vulnerabila, gen Log4J - stiu nu se aplica la frontend …; va fi ok proiectul dpdv livrabil si pentru tine inseamna o noua runda de dev sa elimini vulnerabilitatile, insemnand timp si bani in plus fata de asteptarile initiale)

1 Like

Pentru un agajat senior part time care o sa lucreze cu alti mid, pe ce metoda ati merge
?

  1. plata pe ora fara nici un milestone - risc mare sa frece menta
  2. plata pe milestone - problema aici cum pui milestone daca depinde de altii? degeaba pui sa-l platesti cand e terminat feature-ul x si y daca ceilalti programatori il trag in jos (sau invers). Chiar daca pui acelasi milestone pentru toti, nu toti o sa aibe acelasi ritm de lucru si pot sa iasa discutii ca ceilalti nu muncesc si el vrea banii.

Oare care ar fi cea mai buna solutie?