Impressioni di Settembre
È passato più di un mese dal mio arrivo in Big G e volevo raccogliere un po' di impressioni in questo post. Mi ritengo una persona fortunata perché ho fatto di una delle mie passioni un lavoro felicemente retribuito. Quando ho lasciato la precedente "grossa azienda" sapevo di perdere 'qualcosa' in cambio di avventure sicuramente meno stressanti, qualcosa che non riuscivo a definire con chiarezza. Per raccontare meglio devo però necessariamente fare un piccolo passo indietro agli ultimi tre o più anni lavorativi e chiedo scusa se questo post possa essere letto come troppo "comparativo".
Ho lasciato l'astronave madre nel 2012, sicuramente in uno dei momenti più bui della storia di Microsoft, secondo solo ai vari giri di licenziamenti più recenti: Sinofsky all'apice del potere, le policy del personale al massimo dei danni, Windows sull'orlo di una crisi di nervi. Passare ad Intentional, azienda che sviluppa in C#, è stato il modo migliore per minimizzare l'ansia da rientro pluridecennale nel mercato del lavoro: noi italiani, culturalmente parlando, non siamo molto affini con l'idea di una carriera improntata e supportata dal cambio di azienda. Intentional mi ha lasciato la possibilità di avere un ufficio da arredare, Windows come piattaforma di sviluppo e l'accoppiata fantastica C#/Visual Studio.
Ho perso il comfort di questa familiarità quando ho fatto il passo successivo: un'offerta di lavoro molto interessante, ricevuta nel momento perfetto, per fare qualcosa in Java che sapevo fare anche "appeso bendato a testa in giù e con le mani legate dietro la schiena". Non più un ufficio, ma un openspace; non più VS ma un dover scegliere tra NetBeans e IntelliJ (di Eclipse non se ne parlava neanche). Ho reimparato in fretta Java non senza sentirmi spesso ammanettato dalla mancanza di alcuni costrutti molto pratici disponibili in C#. A questo punto ho pensato di essere pronto a tutto tranne al panico.
Quando ho deciso di lasciare l'azienda precedente ho pensato di prendere in considerazione le tre classiche "big corporation" dell'informatica con una forte presenza locale ovvero Amazon, Facebook e Google. L'esperienza di tornare a fare colloqui è stata in parte elettrizzante, tra siti che raccolgono questo tipo di domande, colloqui telefonici, screening, pre-screening e loop "dal vivo". Tra le tre, anche per motivi logistici (Amazon e Facebook hanno la sede in Seattle: bisogna macinare miglia, attraversare il tratto di autostrada più costoso al mondo, ingiacchiarsi per il parcheggio, ecc.), avevo forti preferenze per Google ed alla fine - il destino - ha voluto così e oggi sono qui.
Com'è Google? Gli aspetti positivi sono tanti e dal punto di vista della mia carriera un paio sono quelli che mi hanno convinto che in questo momento sono nel posto giusto:
- i manager fanno i manager; si occupano semplicemente di rendere gli sviluppatori produttivi; la guida tecnica è delegata agli sviluppatori senior (technical lead o technical lead manager). Un manager viene giudicato dalla sua abilità di promuovere gli sviluppatori che lavorano per lui; più il manager riesce a promuovere, più il manager viene premiato/promosso a sua volta. Per evidenziare meglio questo il metro per un manager in Microsoft, quando ho lasciato, era nella sua abilità nell'applicare la curva che tradotto in soldoni significa avere a disposizione un 10% di sottoposti da mazzulare (in Amazon è anche peggio). In due parole in Google un buon manager è semplicemente un ottimo leader e al servizio degli sviluppatori
- la valutazione delle performance non dipende dal manager, che ha un ruolo di coordinatore/guida per la carriera, ma dal feedback dei propri pari. Se sei un testa di pazzo che pugnala a le spalle i colleghi in modo da dare al tuo manager la testa da mettere sul vassoio qui fai una brutta fine. Mi è stato ripetuto più volte che il modo più facile di fare carriera è di essere un fantastico team player
- la promozione è un processo estremamente formale che può essere avviato senza l'intervento del manager; durante i periodi in cui è aperta la fase di valutazione, basta mettere un check su una box per attivare tutti i meccanismi necessari
Dal punto di vista tecnico l'articolo su Wired è molto puntuale (le motivazioni descritte in questo video). Sinceramente devo dire che sono rimasto estremamente sorpreso dai tool di sviluppo che a confronto di quanto era a mia disposizione nel 2012, nell'azienda software più grande del mondo, sono fantascientifici: non sono perfetti, dal punto di vista del debug le limitazioni sono molto forti, ma per il resto davvero chapeau. Scrivere codice che gira in maniera trasparente su più datacenter distribuiti geograficamente è ovviamente complicato.
A parte questo, nelle cose di tutti i giorni relative allo svolgere il proprio lavoro, devo dire che in alcuni aspetti questo posto è meglio dell'altro: ogni sviluppatore è dotato di laptop (a scelta tra Windows/Linux/OSX) (in MS-2012 era un 'lusso' solo per dev lead); le policy di acquisto/ordine di materiale e di viaggio sono completamente liberali; e oltre a tutto questo cibo e snack gratis secondo l'imperativo che tra ogni scrivania e un chioschetto con gli snack ci devono essere non più di venti metri.
Concludendo: le mie impressioni sono molto positive, quello che faccio mi diverte: sono in una fase in cui sto imparando un sacco di cose e mi ritengo circondato da ingegneri estremamente talentuosi. Mi sarei aspettato un ambiente di sviluppo un po' più arcaico (trattandosi di Java) ma mi son subito dovuto ricredere. Ne riparliamo tra qualche mese per scoprire se si tratta di una luna di miele oppure no (*).
-quack
(*) a giudicare dalla serenità gestuale dei miei colleghi credo proprio di no.