La guida vitale per assumere grandi sviluppatori freelance
Pubblicato: 2022-03-11Tecnicamente, assumere sviluppatori freelance non è mai stato così facile, ma non cullarti in un falso senso di sicurezza. Il numero di piattaforme freelance e sviluppatori esperti sul mercato sta aumentando, ma lo sono anche le sfide associate alla ricerca, al test e alla selezione di un candidato davvero eccezionale.
Allora, come lo facciamo? Bene, ci sono molti liberi professionisti tra cui scegliere; molti sono buoni, ma molti no. Più grande è il mercato, maggiore è il rischio. Con più candidati tra cui scegliere, controllare le referenze e selezionare i singoli candidati può essere un problema, soprattutto se pubblichi un annuncio su una delle principali piattaforme freelance e ricevi centinaia di candidature.
Allora qual è il modo più veloce e sicuro per assumere sviluppatori freelance? Se stai pensando che sto per dire Toptal, indovina di nuovo. Chiamami vecchio stile, ma credo ancora nel passaparola e nei consigli personali. In qualsiasi momento posso contattare alcune persone con cui ho lavorato in passato e chiedere loro di consigliarmi un programmatore o un designer freelance. Tuttavia, questo non funzionerà per tutti; Ho passato anni nella tecnologia e mi capita di conoscere molte persone che meritano la mia fiducia.
Ovviamente, la fiducia è un prerequisito per qualsiasi impegno serio in qualsiasi rapporto d'affari o personale. Ma cosa succede quando non conosci le persone giuste e devi andare in un enorme mercato freelance per cercare talenti? Dopo alcune dozzine di domande, le persone inizieranno a dubitare del proprio buon senso, per non parlare di fidarsi degli estranei e delle loro promesse. La fiducia è buona, la fiducia vende.
Toptal è, in parte, costruito su quel concetto: ecco perché i nostri sviluppatori vengono selezionati e perché possiamo garantire la qualità, mentre altre piattaforme freelance no (e non possono). Vedete, eliminiamo semplicemente alcune incognite dall'equazione, consentendo ai clienti di concentrarsi su ciò che conta davvero in un candidato, riducendo così la loro esposizione a qualsiasi tipo di rischio.
Quindi cosa importa davvero? Diamo un'occhiata ad alcune cose da fare e da non fare nell'assunzione di freelance.
Non puoi affrettarti
Questo è ovvio; se vuoi assumere sviluppatori freelance, devi prenderti il tuo tempo e non c'è modo di aggirare questo. Naturalmente, questo vale per qualsiasi settore, ma in un settore frenetico come il nostro, potrebbe non essere così facile come sembra. La concorrenza è brutale, le scadenze sono ravvicinate, ma molto lavoro può essere svolto a distanza. Assumere rapidamente un paio di liberi professionisti per accelerare lo sviluppo o partecipare a un nuovo progetto con una scadenza ravvicinata, sembra molto allettante. Tuttavia, di solito non è una buona idea.
Se possibile, dovresti provare a collaborare con lo sviluppatore prima di prendere la decisione finale. La prova può comportare un piccolo progetto o solo una serie di test. Il periodo di valutazione non deve essere troppo lungo, a condizione che sia ben ponderato. È bene coinvolgere anche il resto della squadra; dopotutto, lavoreranno con il nuovo sviluppatore e potrebbero essere in grado di identificare alcuni problemi che altrimenti passerebbero inosservati. Ascolta il loro contributo, chiedi loro un feedback e non prendere la decisione da solo.
Tuttavia, una valutazione potrebbe non funzionare in tutte le situazioni. Se il tuo candidato è uno sviluppatore molto abile ed esperto, potrebbe anche sembrare un insulto professionale. Dipende dal loro ego, ma non vuoi comunque primedonne nella tua squadra, vero?
Un candidato ragionevole dovrebbe essere disposto a saltare attraverso alcuni cerchi e accettare una qualche forma di valutazione. In caso contrario, questa dovrebbe essere di per sé una bandiera rossa; di solito significa che il candidato non è troppo serio riguardo al lavoro e non vuole impegnare molto tempo e fatica. Un'altra spiegazione potrebbe essere la fiducia, ovvero i candidati presuppongono di essere eccessivamente qualificati per il lavoro e di non avere nulla da dimostrare. Non c'è niente di sbagliato in un po' di arroganza e competitività vecchio stile, ma troppa può creare attrito tra i membri del team.
Non si tratta solo di tecnologia
Quindi, stai cercando un programmatore freelance e il tuo focus è sulle loro capacità di programmazione piuttosto che su qualsiasi altra cosa. Naturalmente, le competenze tecniche sono una priorità, ma prima di raggiungerle, dobbiamo dare un'occhiata al lato umano delle cose. Com'è la tua cultura aziendale? Cosa pensa il tuo team del nuovo sviluppatore? Cosa pensa di te il candidato?
Il candidato è adatto?
Sebbene questa possa sembrare una domanda logica, i datori di lavoro spesso trascurano l'aspetto culturale a causa della loro attenzione alle competenze tecniche. Ora, se sei di fretta e hai bisogno di un paio di liberi professionisti che ti aiutino a rispettare una scadenza tra un mese o due, l'enfasi, chiaramente, dovrebbe essere sull'abilità e sull'esecuzione. Tuttavia, se stai cercando persone che rimarranno a bordo per mesi o anni, che potrebbero diventare membri a lungo termine del team e alla fine guidare i propri team, è molto importante considerare l'aspetto umano. Inoltre, gli sviluppatori freelance possono trasformarsi rapidamente in membri vitali del team e, infine, in team leader. Se assumi un buon libero professionista e tutto funziona, un anno o due dopo potresti ritrovarti a condividere un ufficio con quella persona.
La tecnologia cambia e si evolve, quindi gli sviluppatori devono adattarsi e apprendere nuove abilità lungo il percorso. Anche le persone possono cambiare, ma non è qualcosa su cui puoi contare. Con questo in mente, a volte è meglio scegliere un candidato disposto ad apprendere nuove abilità ed essere un giocatore di squadra, piuttosto che un programmatore ancora migliore che provoca attrito nel team.
Un milione di programmatori ha un milione di personalità diverse e ogni azienda è diversa, quindi non esiste una regola valida per tutti quando si tratta di compatibilità culturale; tocca a voi.
La maggior parte delle competenze tecniche diventano obsolete nel giro di anni, ma le capacità, la professionalità e la dedizione delle persone no. Uno sviluppatore disposto ad adattarsi alle nuove tendenze del settore e padroneggiare nuove competenze può rivelarsi più prezioso di uno sviluppatore eccellente in una particolare area di competenza. Un processo di intervista ben congegnato dovrebbe affrontare alcuni di questi problemi.
A seconda di dove ti trovi e del tipo di attività in cui operi, potrebbe essere una buona idea consultare qualcuno abituato a trattare con sviluppatori freelance, soprattutto se non avevi la possibilità di farlo prima. Una serie di insidie legali e fiscali potrebbero interessare le aziende in determinate giurisdizioni, quindi se stai pensando di assumere il tuo primo libero professionista, assicurati di consultare il tuo commercialista (possibilmente, anche un avvocato). Fortunatamente, nella maggior parte del mondo non dovresti essere influenzato da leggi sul lavoro o codici fiscali obsoleti scritti nell'era dell'informatica a valvole.
Approvvigionamento, preselezione, pianificazione
Competenze umane a parte, l'attitudine tecnica è la preoccupazione principale dei datori di lavoro. Il numero di tecnologie utilizzate nello sviluppo è in costante crescita, così come la necessità di filtrare in modo rapido ed efficiente i candidati che non lasciano il segno. Questo può essere più difficile di quanto sembri, soprattutto se hai bisogno di candidati in grado di lavorare in contesti e lingue diverse. C'è molto da coprire.
Condurre un colloquio completo richiede tempo e fatica. Richiede anche una buona dose di preparazione perché è necessario adattare attentamente le domande. Fortunatamente, Toptal può aiutarti con una serie di guide alle assunzioni che coprono un'ampia gamma di argomenti. Se stai cercando un lavoro o se vuoi assumere uno sviluppatore freelance, dovresti assolutamente dare un'occhiata ad alcune delle nostre risorse.
Facciamo un passo indietro e osserviamo un tipico processo di assunzione. Una volta che hai identificato le tue esigenze e iniziato a prepararti per il processo di sourcing, sono disponibili diversi metodi per trovare candidati adatti: sourcing interno, annunci di lavoro tradizionali, mercati freelance online, servizi per l'impiego e buoni vecchi consigli personali.
Indipendentemente dal metodo scelto, dovrai scrivere un buon brief del progetto e una descrizione del lavoro. Puoi utilizzare le descrizioni dei lavori di Toptal come un buon punto di partenza; ad esempio, controlla le nostre descrizioni dei lavori per sviluppatori front-end e back-end. Ricorda, se vuoi sviluppatori di talento, persone che possono ottenere un nuovo lavoro con un preavviso di pochi giorni, devi fare un po' di marketing da parte tua. Questo non significa che devi sovrasvendere il progetto, ma devi commercializzarlo correttamente per attirare persone di qualità . Chiediti se applicheresti o meno il tuo annuncio se fossi uno dei migliori sviluppatori freelance?

Una volta che le domande iniziano ad arrivare, è probabile che ti ritroverai con molti dati grezzi che devono essere elaborati con attenzione prima di selezionare i singoli candidati. Alcuni candidati semplicemente non lasceranno il segno e verranno respinti in questa fase iniziale, altri verranno inseriti nella rosa dei candidati, mentre alcuni potrebbero essere considerati materiale di secondo livello: candidati che possono svolgere il lavoro, ma sono oscurati dai più talentuosi. Potrebbe essere una buona idea tenere traccia di tali candidati, nel caso in cui ne avessi bisogno in seguito.
Le interviste devono riguardare l'attitudine tecnica e molto altro
Ora che hai ristretto il campo dei potenziali candidati, è tempo di programmare alcuni colloqui. Non si tratta solo di porre alle persone molte domande tecniche e cercare di capire se sarebbero adatte o meno alla tua squadra; questo è un processo serio e deve essere supportato da molte ricerche e domande accuratamente selezionate, progettate per tirare fuori il meglio (e il peggio) in ogni candidato.
Ecco alcuni punti da tenere a mente quando si pongono domande tecniche:
- Non fare domande banali che hanno più a che fare con la storia della tecnologia che con il lavoro vero e proprio.
- Cerca di evitare le domande che si trovano comunemente nelle guide alle assunzioni; se è online, chiunque abbia provato a prepararsi per il colloquio potrebbe saperlo.
- Poni domande pratiche e aperte che diano al candidato un grado di libertà creativa.
- Dai un'occhiata ad alcuni dei precedenti progetti del candidato e poni alcune domande pertinenti su di essi.
- Cerca di saperne di più sulle abitudini e abilità professionali del candidato, ad esempio, con quale frequenza apprende nuove abilità e perfeziona quelle esistenti?
Ora, vediamo come apparirebbe nel mondo reale, utilizzando la guida all'assunzione di PHP di Toptal. Ad esempio, invece di porre domande trivia/storiche come "Quando PHP 5 è diventato mainstream?" O "Perché la funzione array_merge()
ha causato problemi di compatibilità durante l'esecuzione di codice PHP4 legacy?", dovresti provare a porre domande che soddisfano i criteri sopra elencati.
Ecco un buon esempio dalla nostra guida PHP: “Cosa sono i tratti? Fornisci un esempio di una dichiarazione di tratto e di una classe che utilizza tratti multipli".
Questa domanda ti farà sapere molto di più sul candidato rispetto alle domande trivia. I tratti sono stati introdotti in PHP 5.4, il che significa che il candidato ha abbracciato alcune delle ultime funzionalità. Se vuoi davvero dare una svolta all'intervistato, controlla le note di rilascio di PHP e ravviva la domanda con alcune aggiunte ancora più recenti dal log delle modifiche ufficiale in PHP 5.5.xe 5.6.x. Questa domanda semplice e relativamente semplice ti consentirà di sapere se il programmatore desidera o meno abbracciare gli ultimi sviluppi e utilizzare le migliori pratiche.
Naturalmente, lo stesso principio si applica a quasi tutte le nicchie, non solo a PHP.
Un'altra buona idea è quella di dare un'occhiata più da vicino al track record del richiedente e ai progetti completati. Quando si fa domanda per un lavoro, ognuno elenca il proprio lavoro migliore, che può essere o meno rappresentativo della qualità effettiva. E se il candidato si fosse opportunamente dimenticato di menzionare un mucchio di progetti di cui non è troppo orgoglioso? Ci sono grosse lacune nel curriculum? Lo sviluppatore ha completato cinque progetti a cinque stelle in cinque anni, senza menzionare una dozzina di progetti scadenti e scadenti che hanno pagato l'affitto tra di loro? Tali divari dovrebbero essere una bandiera rossa, sebbene non siano necessariamente un fattore squalificante, purché vi sia una spiegazione ragionevole per loro.
Non siamo più in territorio tecnico, questo ci porta alla personalità e all'integrità del candidato, che può essere più difficile da giudicare della sua abilità di codificazione.
Tieni la tua squadra al passo con i tempi per assicurarti una buona vestibilità
Nella maggior parte dei casi, il nuovo sviluppatore si unirà a un team esistente, quindi è fondamentale informare e coinvolgere il team ad un certo punto del processo di assunzione. Il team può offrire una visione inestimabile di alcuni aspetti del progetto, aiutarti a prepararti per il colloquio e porre domande pertinenti (o anche domande "capite") e, ovviamente, ha un interesse acquisito nel coinvolgere il miglior candidato possibile. Dopotutto, questa è la persona con cui dovranno confrontarsi giorno dopo giorno, forse per mesi, forse per anni.
Nessuna squadra vuole un collega incompetente. Usa questo a tuo vantaggio e tocca la tua squadra per ulteriori input. Non troverai carenza di interesse.
Il tuo team può anche assicurarsi che il "nuovo ragazzo" si adatti. La personalità fa molta strada e talvolta può rivelarsi più importante delle abilità di programmazione a secco. Che senso ha assumere uno sviluppatore di serie A se lui o lei non va d'accordo con il team? E se assumessi uno sviluppatore rockstar che non volesse condividere le proprie conoscenze con il resto del team?
Sfortunatamente, c'è sempre la possibilità che l'assunzione dei tuoi sogni si trasformi in una delusione, un compiaciuto egocentrico non gradito al resto della squadra, ma questo è solo un motivo in più per consultare la tua squadra: "Non guardarmi, hai firmato anche tu .”
Scherzi a parte, una squadra armoniosa è una macchina ben oliata e ogni ingranaggio funziona perfettamente. Fa bene al morale, fa bene agli affari. Cosa succede se aggiungi uno sviluppatore Android rockstar al tuo team nella speranza che migliori la produzione? Ai grandi sviluppatori piace lavorare con i loro colleghi, quindi se hai molti sviluppatori inesperti a bordo, i nuovi talenti potrebbero non risolvere la situazione.
Sì, gli sviluppatori che superano tutti i test Android e le domande dei colloqui che poni loro sapranno sicuramente cosa fare, ma cosa succede se il resto del team non riesce a tenere il passo? Ti aspetti che il tuo nuovo brillante sviluppatore stellare spieghi ogni punto ad alcuni sviluppatori "verdi" su base giornaliera? Ti aspetti che il nuovo sviluppatore ne sia felice? Cosa penserà il resto della squadra, se stai assumendo qualcuno per superarli, nonostante la loro anzianità percepita?
Tornando all'analogia steampunk: un singolo ingranaggio in titanio non renderà il resto della macchina altrettanto forte. Un grande sviluppatore desideroso di prendere l'iniziativa e condividere la conoscenza può aiutare alcuni compagni di squadra, ma non tutti.
Per assicurarti che non ci siano attriti inutili, devi semplicemente consultare il tuo team e non c'è modo di aggirare questo.
Sii realistico e diretto
Tutti vogliono assumere il miglior sviluppatore là fuori e ogni sviluppatore vuole ottenere un lavoro da sogno, ma siamo realistici; tutti devono operare entro i propri limiti di budget, quindi il denaro è spesso il fattore limitante. Le brave persone costano bene, quindi molte organizzazioni semplicemente non possono permettersi i migliori sviluppatori là fuori.
I datori di lavoro di solito vogliono il miglior sviluppatore che possono permettersi e in molti casi non hanno effettivamente bisogno del miglior sviluppatore del settore, perché il progetto su cui stanno lavorando non richiede competenze all'avanguardia. Gli sviluppatori, invece, vogliono essere ben ricompensati per i loro sforzi, vogliono lavorare su progetti interessanti, con compagni di squadra abili.
Tuttavia, i soldi non sono tutto .
Se riesci a trovare uno sviluppatore che condivida la tua visione e crede in quello che stai facendo, potresti ottenere più di quanto ti aspettassi. Se lo sviluppatore crede di lavorare a un buon progetto con un grande potenziale a lungo termine, è probabile che cercherà di fare un lavoro eccezionale e di esibirsi al di sopra e al di là del proprio dovere. Il progetto potrebbe essere una buona opportunità per gli anni a venire e potrebbe avere un bell'aspetto nel loro curriculum.
Se, d'altra parte, lo sviluppatore rimane solo per lo stipendio e non crede che il progetto sia veramente promettente ed eccezionale, è altamente improbabile che otterrai lo stesso livello di impegno, o lealtà del resto.
In conclusione: non puoi aspettarti miracoli, non puoi aspettarti di assumere il miglior libero professionista là fuori, soprattutto se hai un budget limitato e non stai lavorando a un progetto di prim'ordine. Devi concentrarti sull'ottenere il miglior sviluppatore che puoi ottenere, non il miglior sviluppatore al mondo.