Il lavoratore remoto: time zone e flessibilità


Le time zone sono sia la croce che anche la delizia dell’azienda in cui lavoro. I miei colleghi più ad est, rispetto a me, vivono sulla costa orientale dell’Australia, quelli più a ovest in California. Aziendalmente, ad esempio per il supporto ha molto senso, ma questa è un’altra storia.

Sta di fatto che collaborare non è così semplice come girare la sedia e far quattro chiacchiere con quello che siede dietro di voi. Potete immaginare. Non ha quindi nessun senso definire il concetto di orario lavorativo, viene molto comodo renderlo molto fluido e auto-gestito al fine di soddisfare le esigenze di tutti e quando ne avete bisogno poter collaborare con colleghi con cui altrimenti fareste molta fatica a collaborare.

Oggi è uno di quei giorni in cui la mia fascia oraria lavorativa si sposta verso le time zone americane. Quindi adesso me ne vado per un paio d’ore in bicicletta. Questa la parte “delizia” delle time zone, perché mi permette con estrema flessibilità di organizzare la mia lavorativa intorno a quella privata.

18556707_10154402045902027_4450858295323661566_o

Dimenticavo, se usate Slack teamtime.zone è un gran comodo :-)

author: Mauro Servienti | posted @ Wednesday, May 24, 2017 8:47 AM | Feedback (0)

Il lavoratore remoto: la pausa caffè con i colleghi


I momenti di aggregazione extra-lavorativi o durante le pause sono ottimi per consolidare quei rapporti umani fondamentali per la costruzione di un buon team.

Per il lavoratore remoto questa cosa è difficile, se non impossibile in certe situazioni.

Le pause con i colleghi semplicemente non ci sono

Mentre in uno scenario “tradizionale” viene abbastanza naturale che le persone che condividono lo stesso spazio fisico tendano anche a condividere momenti extra-lavorativi, vuoi anche solo sotto forma di racconti e aneddoti, per il lavoro da remoto dove lo spazio fisico non c’è, il processo di condivisione semplicemente non si avvia. Quando si è online si tende a mettersi in modalità “get shit done” e bando alle ciance, niente chiacchiere.

Questo fa si che i rapporti umani si formino e crescano con una lentezza esasperante, al limite del frustrante in alcuni casi.

Quindi?

Non ritengo che soluzioni tentativi come organizzare meeting ad hoc per simulare le pause caffè abbiano l’effetto desiderato, noi ne abbiamo (Coffee Connection, Beer o’clock, etc.) e non mi pare di poter dire che sortiscano l’effetto desiderato. Mentre ci sono due cose che apparentemente stanno portando i frutti desiderati:

  1. gli incontri fisici, quasi ovvio, anche se rari e per breve tempo, come ad esempio un weekend, hanno un fortissimo impatto
  2. le sessioni uno a uno con il tuo mentor, dopo un po’ si tende a chiacchierare di qualsiasi cosa, creando inevitabilmente un rapporto forte.

Per il povero consulente da remoto non ho proposte. Già on-site spesso è una vittima del sistema, e solo dopo lungo tempo e costanza diventa parte del team, quando è da remoto viene presto dimenticato se mai qualcuno si accorge che esiste. Fortunatamente non faccio il consulente da remoto.

author: Mauro Servienti | posted @ Monday, May 22, 2017 8:45 AM | Feedback (0)

Il lavoratore remoto: “turn on the webcam”


Una delle cose che il lavoratore remoto rischia di più è l’isolamento, e spesso è lui stesso che se lo cerca. Accendere la webcam sembra un tip stupido e per molti scontato, ma in quasi quattro anni di call quotidiane vi posso garantire che non lo è. E non è soltanto accendere la webcam, ma è anche far si che funzioni con decenza.

Partiamo da quando è accettabile non averla/usarla: pessima connettività. Ci sono scenari in cui la qualità della connettività è talmente scadente che attivare il video in una conference call renderebbe impossibile la conference call stessa. Mi vengono in mente connessioni con il cellulare, Wi-Fi pubbliche, reti degli alberghi e via dicendo.

In tutti gli altri casi fate un favore a voi stessi: webcam, accesa, sempre.

Quando dico accesa non mi riferisco semplicemente a avere la webcam funzionante puntata su di voi, ma anche a:

  • Far si che sia posizionata in maniera tale far si che siate visibili, e non si veda solo una mano ad esempio (Si, designer del Dell XPS 13 sto parlando con te, maledetto il giorno che hai pensato la posizione della webcam)
  • Far si che non siate spalle ad una finestra dove batte il sole, altrimenti sembrate tipo gli omini verdi di x-files quando vengono a prendervi
  • Far si che lo sfondo non la faccia impazzire e impedisca la messa a fuoco (o prendere una webcam che lo sappia fare)
  • Far si che avete multi-monitor la webcam stia sullo stesso monitor che guardate

Tutto questo è finalizzato a:

  • rendere l’interazione sociale migliore, che è la cosa importante per il lavoratore remoto
  • rendere l’interazione più rispettosa, che è la cosa importante per l’interlocutore

Ovvio che tutti questo vale principalmente per il lavoratore remoto e non per quello occasionalmente remoto a cui si può perdonare qualche pecca.

Aggiungo: non tenetela spenta mentre fate le call sul cesso, lo sciacquone si sente.

author: Mauro Servienti | posted @ Friday, May 19, 2017 9:04 AM | Feedback (0)

“Tutti i nostri aggregati sono sbagliati” @klabcommunity, 8 giugno


L’8 giugno alle 18 sarò nuovamente ospite di KLab, a Firoenzuola d’Arda, per parlare di modellazione, service boundaries e domain decomposition.

image

Il titolo del talk provocatoriamente è:

Tutti i nostri aggregati sono sbagliati

Inizia sempre tutto bene, il requisito è semplice e l'implementazione procede senza intoppi. Poi i requisiti aumentano e ci ritroviamo con una strana sensazione allo stomaco e con la necessità di introdurre alchimie tecnologiche che non ci piacciono, ma non sappiamo perché. Prenderemo una funzionalità tanto semplice, quanto usata, come il carrello di un e-commerce e proveremo a capire se è veramente così semplice. Guarderemo il problema tecnico che vogliamo risolvere e poi sposteremo l'attenzione sui requisiti di business. Requisiti che una volta compresi a fondo ci porteranno a capire quali sono le vere responsabilità del dominio.

Ho la sensazione, spesso poi confermata dai fatti, che troppo spesso si fa il salto “Facciamo DDD, evviva, allora definiamo gli aggregati”, tralasciando tutto un mondo essenziale che passa anche da identificare i service boundaries e decomporre il dominio.

Nel mio lungo peregrinare di post nel mondo SOA e UI Composition, ho toccato più e più volte l’argomento senza mai esplicitamente trattarlo. Bene questa è la volta buona. Il mio scopo sarà convincervi che un carrello della spesa in un sistema di e-commerce non si disegna così:

{
   CartId,
   UserId,
   Items: [{
      ItemId,
      StockItemId
      Description,
      Price,
      Quantity
   }]
}

Ma piuttosto, così:

{
   CartId,
   UserId,
   Items: [{
      StockItemId
   }]
}

O magari non si disegna proprio…Se siete curiosi, se non siete d’accordo e volete scoprire come e perché la penso così, se semplicemente volete tirarmi le pietre venite al KLab dell’8 giugno :-)

Actor Model

Poi ci saranno due loschi figuri (Melchiori e Ceroni) che parleranno di Actor Model, che potrebbe essere un modo interessante, concettualmente, per continuare la discussione ;-)

Poi?

Si mangia, ovviamente :-)

Maggiori informazioni e registrazione: https://www.eventbrite.com/e/klab-2017-3-tickets-34512631209

author: Mauro Servienti | posted @ Wednesday, May 17, 2017 6:58 AM | Feedback (2)

Coesione e accoppiamento: coesione.


Abbiamo recentemente parlato di accoppiamento. Abbiamo evidenziato come l’accoppiamento non sia necessariamente male di per se.

Malintesi…

Un secondo errore che tendiamo a fare è traslare il concetto di accoppiamento, e il male che riteniamo porti con se, ciecamente nel mondo dei servizi, o se preferite dei Microservices.

Il fatto che riteniamo l’accoppiamento il male ci porta a fare di tutto per rimuoverlo. Il fatto che interpretiamo male il concetto di accoppiamento ci porta a cercare di rimuovere, o peggio combattere, qualcosa che non dovremmo proprio evitare, ma piuttosto accettare e abbracciare.

Coesione

Immaginate il processo di acquisto che il vostro negozio online vi mette a disposizione, tipicamente è così composto:

  1. Scelgo dal catalogo
  2. Aggiungo al carrello
  3. Inizio il checkout
  4. Pago
  5. Scelgo il tipo di spedizione

Posso togliere il punto 3, Il checkout?

Direi proprio di no. Il processo logico di acquisto è coeso. Tutti gli elementi elencati sono necessari perché io in quanto utente del sito possa beneficiare del processo stesso.

Allo stesso modo una domanda provocatoria che ci potremmo fare è: ha senso avere quei passaggi temporalmente disaccoppiati? E anche qui la risposta è probabilmente no.

Qualcosa in più

Se guardiamo più a fondo però possiamo cominciare ad intravvedere che c’è qualcosa in più che ci sta probabilmente sfuggendo, il pagamento (4) e la spedizione (5) sono forse i più evidenti, o se volgiamo quelli che puzzano di più.
Se ci pensate probabilmente stiamo guardando una delle tante facce di una strana medaglia. Dal punto di vista del processo di checkout quello che mi interessa fare è avviare il processo di pagamento, o avviare il processo di spedizione, non necessariamente fisicamente eseguire il pagamento e/o attendere che la spedizione sia avvenuta.

Quindi probabilmente un “Payment Service” in realtà non è uno?

Vogliamo discuterne insieme?

Se volete scoprire come va a finire e non volete aspettare troppo il prossimo 8 giugno a Fiorenzuola d’Arda parlerò proprio di accoppiamento e coesione.

Fatevi sotto :-)

author: Mauro Servienti | posted @ Monday, May 15, 2017 10:27 AM | Feedback (0)

Che cosa faccio io per l’inglese?


Non pensavo che quello che originariamente nella mia testa era un pensiero sparso spopolasse così.

Fabio chiede:

image

A parte gli scherzi qual è stato il tuo approccio per imparare l'inglese? Corsi, fai da te, film... cosa è stato più efficace?

Io non faccio, più, nulla di particolare. Come dicevo lavorando in Particular mi trovo in una condizione privilegiata in relazione al problema lingua straniera:

sono l’unico italiano, quindi o imparo o non sopravvivo :-)

Inoltre da subito sono stato buttato nella mischia del “devi avere a che fare con i clienti”, il che mi ha spinto a studiare studiare studiare.

Diciamo che ci sono tre aspetti, tra i tanti importanti, che per me sono stati fondamentali.

La grammatica

È apparentemente facile da studiare, ma va fatto con un nativo altrimenti rischi che ti raccontino un sacco di cazzate :)
Ho avuto ottimi insegnanti di inglese nella mia vita, ma in alcuni casi mi hanno raccontato e insegnato cose grammaticalmente scorrette, quindi il mio consiglio è sceglietelo madre lingua. Se poi parla malissimo l’italiano, o non lo parla per nulla come l’ultima che ho avuto, ancora meglio.

La comprensione

Ascoltare, ascoltare, ascoltare. Pian piano il cervello comincia a distinguere nel rumore apparente cose che hanno senso ;) Fino a qualche tempo fa, piazzavo la radio su BBC 5 e la lasciavo andare tutto il giorno in sottofondo. BBC 5 perché tratta argomenti locali UK, quindi la stragrande maggioranza delle parole sono pressoché fuori dal vocabolario conosciuto. Inoltre la totale ignoranza del contesto complica un po’ di più la vita.

Nella nostra lingua nativa possiamo stare seduti al tavolo di un pub, con 15 amici, la musica e un sacco di rumore di sottofondo e nonostante questo captare discorsi molto lontani da noi, e capirli pure. Se l’inglese fa parte delle vostra vita questo è un passaggio importante, altrimenti passate la serata (o qualsivoglia occasione concettualmente simile) con un simpatico sorriso ebete stampato sulla faccia. Sorriso che dice: non sto capendo nulla, ma sorrido.

La capacità di esprimersi

La capacità di esprimersi va ben oltre il saper ordinare da mangiare da “Costa Coffee”. Il problema è che è naturale tradurre le forme native della nostra lingua in quell’altra, l’inglese in questo caso, correndo una serie di rischi interessanti, tra cui:

  • l’essere offensivi
  • fraintendimenti
  • fino alla totale incomprensione

Anche in questo caso un buon insegnante, o adesso nel mio caso dei pazientissimi colleghi, è fondamentale. Poi tanta pratica, bisogna anche sbagliare per imparare.

All’inizio è difficile, se non impossibile, ma sforzatevi di non pensare in italiano e tradurre. Semplicemente parlate.

Ah, dimenticavo

Io, se guardo la televisione, la guardo rigorosamente in italiano. Sinceramente mi rompe clamorosamente dover porre anche molta attenzione alle cazzate, la televisione appunto :)

author: Mauro Servienti | posted @ Friday, May 12, 2017 3:17 PM | Feedback (2)

Le conferenze hanno un problema?


TL;DR;

Ho sempre di più la sensazione che le conferenze, e uso il termine conferenza in senso allargato quindi includendo tutti gli eventi pubblici, stiano abbassando il tiro riducendo il livello delle sessioni a non oltre intermediate (quando va bene). A mio modo di vedere questo comporta un deperimento culturale generalizzato e un impoverimento dell’intero settore.

È ovvio che sto generalizzando, qualche esperienza positiva c’è, ma sono un’assoluta minoranza.

electrocardiogram-1922703_960_720

Stimoli

Come dicevo quando ho parlato di DDD Europe e ancora prima di noia mi rendo conto che probabilmente il problema è principalmente mio, so di essere alla ricerca di nuovi stimoli e quindi sto cominciando a sperimentare cose diverse, come SoCraTes tra un paio di settimane.

Ho iniziato a frequentare conferenze nei primi anni 2000. Ad oggi tra corsi ed eventi pubblici ho parlato in pubblico 197 volte (ho contato le slide che ho conservato in Dropbox, quindi potrebbero essere di più).

Ad oggi se vado ad una conferenza/evento è per soli tre motivi:

  • incontrare amici che vedo solo in quelle occasioni
  • sono tra gli speaker
  • sperimentazione, come è stato per l’AgileDay a Pavia (che è andato come è andato) o sarà per SoCraTes a Rimini

La situazione attuale genera due problemi:

  1. mi annoio
  2. chiedere a me se ha senso andare alla conferenza XYZ è rischioso

Una prima analisi

Di primo acchito ero convinto che il problema fosse la mia apatia totale nei confronti della tecnologia. La tecnologia è una delle componenti fondanti delle conferenze tecniche e quindi il sottoscritto si trova tipicamente spaesato, una sorta di pesce fuor d’acqua.

Spaesato al punto tale che se uno mi chiedesse: ha senso andare a NDC? La mia risposta sarebbe: neanche dipinto sui muri.

Il problema di fondo è che mi sembrava di essere l’unico a vederla così

Una seconda analisi

Ho quindi cercato di cambiare io. Nuove tipologie di conferenze, argomenti diversi dalla tecnologia, e via dicendo. Ma la sostanza non è cambiata. La sorpresa è stata quando ho fatto emergere il problema con colleghi e amici e la stragrande maggioranza condividono il mio sentimento.

Diciamo che tutti mi hanno detto che partecipano alle conferenze perché:

  1. le persone che si incontrano valgono il “biglietto”
  2. sono stato accettato come speaker

Nello specifico nessuno dei mie colleghi va alle conferenze per i contenuti stessa della conferenza.

Sollievo, ma…

Da un lato il non sentirmi Calimero è stato un sollievo, dall’altro mi chiedo se sia effettivamente la direzione in cui stiamo andando e se sia un problema.

Che ne pensate?

author: Mauro Servienti | posted @ Wednesday, May 10, 2017 10:36 AM | Feedback (2)

L’inglese, ripetete con me: l’inglese.


Era un venerdì di Ottobre 2013, atterravo a Newcastle e il giorno successivo sarei salito sul palco per il mio primissimo talk in inglese. Nel viaggio tra l’aeroporto e l’albergo il tassista mi parlava e io mi chiedevo se stesse parlando inglese. Newcastle è quasi Scozia, e anche gli inglesi stessi dicono che lassù non è che parlino proprio inglese, quindi in parte ero scusato ;-)

Alla cena speaker il venerdì sera, complice il fatto che non conoscevo nessuno e che io non sono la socialità fatta a persona, l’interazione con il mondo che mi circondava è stata abbastanza limitata. Il tutto ovviamente era condito dalla mia incapacità di relazionarmi in inglese, in mezzo a 20 persone tutte native, in un locale rumoroso, con la musica.

La giornata di conferenza, tutto sommato, alla fine è andata bene, soprattutto considerando che era la prima esperienza.

Alla sera lo stress accumulato era tale da farmi saltare la cena. Ho dormito circa 11 ore quella notte.

Poi tutto è cambiato

Già ad agosto di quell’anno collaboravo part time con Particular Software, collaborazione che è diventata full time ad aprile 2015. Ricorderò sempre il primo company meeting, giugno 2014 a Londra, arrivavo a sera e non vedevo l’ora di scappare in camera e ascoltare un qualsiasi schifo di programma televisivo in italiano (si in albergo si vedeva RAI 1). Ricordo perfettamente anche che il primo collega che ho visto dal vivo è stato Greg, australiano, con cui ho speso una mezz’oretta prima di cena. Anche in quel caso mi chiedevo se lui stesse parlando inglese…ma soprattutto cercavo di capire come fosse possibile generare così tante parole al minuto.

Avanti veloce

Quasi 4 anni dopo la mia prima esperienza come speaker in inglese.

Sono reduce da un bellissimo weekend a Bristol, con un paio di colleghi, per partecipare a DDD SouthWest 7. Il mio inglese è lontano dall’essere decente (IMO) ma è ad un livello tale che mi permette:

  • di rendermi conto che la lingua parlata dagli altri è la stessa che sto cercando di parlare io
  • di sopravvivere egregiamente ad una cena con una 20 di persone, condita da confusione e musica. Ma soprattutto seguita da qualche pinta in un pub, continuando ad essere in grado di interloquire
  • di gestire un’ora di presentazione, domande e discussioni in una sala con una sessantina di persone

È faticoso, ma ne vale la pena

Lungi da me il suggerirvi di andare a parlare all’estero, non è questo il punto, e mi rendo conto che l’essere l’unico italiano in un’azienda straniera ha forzato un po’ la mano, altrimenti non sarei sopravvissuto. Ho comunque studiato e investito parecchio.

Non vuole essere un post auto celebrativo, anche perché non ho nulla da vendere, piuttosto vuole essere un monito:

  • non si finisce mai di imparare
  • c’è sempre qualcuno che ne sa più di voi, soprattutto se è la sua lingua nativa ;-)
  • mettersi spesso in gioco è un ottimo modo per migliorare
  • studiate sto cazzo di inglese, ma soprattutto usatelo, usatelo e usatelo

Fate anche un paio di favori a voi stessi:

  1. piantatela di pensare che l’inglese sia una lingua “facile” e che tanto ve la cavate. Si certo probabilmente siete in grado di ordinare da mangiare al cameriere spagnolo che lavora nel fast food londinese.
  2. piantatela di pensare che siano gli inglesi ad essere stronzi quando secondo voi fanno finta di non capire. L’inglese è una lingua foneticamente molto difficile, in particolare per noi italiani; hanno ragione loro quando non vi capiscono :-)

author: Mauro Servienti | posted @ Monday, May 8, 2017 9:01 AM | Feedback (1)

Coesione e accoppiamento: quando l’accoppiamento è male?


Abbiamo parlato di accoppiamento, prima di addentrarci nel discorso coesione un piccolo approfondimento sull’ accoppiamento è doveroso.

Quando è male?

Se abbiamo detto che l’accoppiamento di per se non è ne bene ne male, ma è semplicemente una misura, quali sono i problemi che possono insorgere?

L’accoppiamento diventa un problema evidente quando è una barriera all’evoluzione.

Nella sua forma peggiore è la così detta “big ball of mud” ove tutto è fortemente accoppiato con tutto e l’evoluzione è impossibile.

desert-1803878_960_720

Ma da perfetto a big ball of mud ci sono un’infinita serie di sfumature, e la barriera al cambiamento può essere un buon modo per misurare il livello di accoppiamento.

Il carrello della spesa

Ripartiamo dall’esempio che abbiamo usato in chiusura nel post precedente:

se abbiamo un’interfaccia “IShoppingCart” che gestisce il carrello di un sistema di e-commerce vogliamo porre molta attenzione a chi la usa perché un uso indiscriminato, con un possibile conseguente forte accoppiamento, può solo portare a conseguenze poco positive in termini di manutenibilità ed evoluzione.

Facciamoci qualche domanda:

  1. Quale è il ruolo (o se volete quali requisiti deve soddisfare) del carrello della spesa?
  2. Definito il ruolo ci dovremmo chiedere quali informazioni sono necessarie al carrello per soddisfare il ruolo di cui sopra
  3. Date le informazioni necessarie ci dobbiamo chiedere di chi è la responsabilità di modificarle

Ecco…se arrivati al punto 3 vi ritrovate con informazioni che stanno nel carrello, ma che sono modificate da attori diversi dal carrello avete la quasi certezza che:

l’identificazione dei service buondary è sbagliata e state creando accoppiamento

tra componenti che non dovrebbero essere accoppiati, ma probabilmente in quel particolare contesto sono solo coesi.

Giusto per darvi un’idea, io non disegnerei un carrello così:

{
   CartId,
   UserId,
   Items: [{
      ItemId,
      StockItemId
      Description,
      Price,
      Quantity
   }]
}

Al prossimo giro parleremo di coesione.

author: Mauro Servienti | posted @ Wednesday, May 3, 2017 4:13 PM | Feedback (1)

Il lavoratore remoto e gli incontri in carne ed ossa


Sono reduce da 4, bellissimi, giorni a Stoccolma spesi con un gruppo di colleghi al solo fine di passare del tempo insieme.

Ovviamente la birra l’ha fatta da padrona, ma questa è un’altra storia ;-)

Camaraderie

mutual trust and friendship among people who spend a lot of time together.

Dopo tre anni posso con certezza dire che da remoto non funziona, i rapporti umani fanno moltissima fatica a formarsi, rafforzarsi ed evolvere. Le problematiche fondamentalmente sono:

  • Gli strumenti non aiutano, anzi, tendono a limitare i rapporti umani
  • Quando sei online con i colleghi si tende ad entrare in modalità “get shit done” e il tasso delle chiacchiere precipita a zero
  • Nel nostro caso la dispersione su time zone diverse peggiora le cose

Una delle cose che facciamo per alleviare il problema sono i company meeting, ci troviamo una volta l’anno, tutti, nello stesso posto per una settimana. È una settimana lavorativa, ma ovviamente essendo nello stesso posto il tempo speso con le persone in momenti non lavorativi è maggiore di quello speso in momenti lavorativi. Ed ecco che i rapporti umani cominciano a formarsi.

Ma non è detto che basti, e quindi dopo un po’ le perone ti mancano e alla prima occasione fai di tutto per spendere un po’ di tempo insieme. Come è successo in questo caso. O come succederà settimana prossima a Bristol.

Concludendo

Per il lavoratore remoto i contatti umani sono forse più importanti che per un lavoratore “tradizionale” perché mancano quelli che io chiamo i “momenti da macchinetta del caffè”, è quindi essenziale stimolarli e pianificare in funzione di quello.

Tornando alla birra, se andate a Stoccolma, vi piace la birra o se avete sempre e solo bevuto schifezze provate ad andare qui:

Cambierete idea.

author: Mauro Servienti | posted @ Monday, May 1, 2017 10:30 AM | Feedback (2)