Perché nulla è mai scontato: l'arte della comunicazione nello sviluppo del software
Pubblicato: 2020-10-22Tutti dobbiamo comunicare tra di noi ogni giorno. Nella vita privata, a scuola, al lavoro. Ovunque e sempre. Alcuni hanno capacità di comunicazione migliori di altri, ma alla fine della giornata, tutti commettiamo errori ogni tanto.
Mentre alcuni problemi di comunicazione hanno un impatto minore sulla nostra vita (non è la fine del mondo se ordini una birra analcolica;)), alcuni possono avere conseguenze maggiori (indicare il dente sbagliato da estrarre). Le incomprensioni nella comunicazione nello sviluppo del software sono piuttosto queste ultime e possono avere implicazioni finanziarie.
Uno dei problemi più comuni che tutti abbiamo è presumere che un'altra persona possa leggere le nostre menti. Siamo tutti colpevoli di questo a volte. Hai mai sentito questa frase: 'Era ovvio!'? Scommetto che hai.
Non credo nell'ovvietà oggettiva. Pensiamo che alcune cose siano ovvie per tutti, ma ciò che è chiaro per una persona potrebbe non essere così evidente per gli altri. Per ottenere una comunicazione efficace nello sviluppo del software, smettiamo di credere nella lettura della mente e diciamo solo ciò che abbiamo in mente.
Perché è più facile a dirsi che a farsi? Analizziamo prima il processo di comunicazione.
Elementi di comunicazione
Più di 50 anni fa Roman Jakobson ha presentato un modello di comunicazione che può essere molto utile per analizzare i problemi di comprensione reciproca. Dai un'occhiata al diagramma:
È chiaro che la comunicazione è più di un semplice messaggio tra un mittente e un destinatario. Contesto, canale e codice influenzano il messaggio e possono modificare la ricezione delle parole. Anche se due dei fattori sono presenti e uno manca, si verificheranno problemi.
Dal momento che stiamo parlando di comunicazione nello sviluppo del software in particolare, dovremmo analizzare cosa accadrebbe durante le sessioni di perfezionamento del progetto se dovessimo perdere uno qualsiasi dei fattori sopra menzionati. In altre parole, diamo un'occhiata più da vicino all'importanza della comunicazione nella gestione dei progetti.
Fornisci sempre un contesto
Il contesto fornisce una spiegazione del quadro più ampio di qualsiasi problema. Potrebbe non essere utile informare uno sviluppatore di back-end sul gruppo target del prodotto. Può sembrare che il team di sviluppo abbia solo bisogno di sapere cosa è richiesto dalla sua parte e non le ragioni di business dietro di esso. Nulla potrebbe essere più lontano dalla verità.
La comunicazione nello sviluppo del software non riguarda solo i requisiti funzionali. Più contesto puoi fornire al team, meglio è. La corretta introduzione al concetto di prodotto può richiedere molto tempo e può sembrare una perdita di tempo e denaro ma, a lungo termine, aiuta a evitare una scarsa implementazione tecnica.
Se il team sa quali sono i piani a lungo termine per il prodotto, può fornire soluzioni tecniche più adatte. Anche se non desideri implementare codici promozionali nella prima versione della tua app mobile per la consegna di cibo, è bene informare i programmatori di software che arriverà nella prossima versione.
Per essere sicuro di aver fornito il contesto completo, chiediti se hai condiviso tutte le informazioni che hai. Se ti sorprendi a pensare "questo non è importante per gli sviluppatori, non è necessario che lo sappiano, chiedi almeno al team se queste informazioni potrebbero aiutarli". Potresti essere sorpreso da quali fattori gli altri potrebbero trovare cruciali.
Usa il canale con saggezza
Il canale è un fattore di comunicazione comunemente dimenticato nella gestione dei progetti. Al giorno d'oggi, quando i team di sviluppo lavorano molto spesso da paesi diversi, quando il backend è in India (ora, ben l'85% delle aziende americane esternalizza la maggior parte delle loro operazioni in India), lo sviluppo del frontend in Polonia e il Product Owner è negli Stati Uniti , utilizziamo tutti molti strumenti diversi per comunicare.
La scelta del canale corretto e il suo utilizzo efficace potrebbero avere un impatto. Teleconferenze, e-mail e chat sono fantastiche e ci consentono di essere costantemente in contatto. Ma creano anche nuovi modi in cui il messaggio può essere frainteso.
Non possiamo fingere che chattare online sia come avere conversazioni nella stessa stanza con il team. Quello che possiamo fare è tenere a mente i limiti della comunicazione remota e cercare di superarli.
Suggerimenti per una comunicazione remota efficace
- Accendere la fotocamera durante una conversazione tramite chiamate in conferenza. A seconda della situazione, la comunicazione non verbale può rappresentare più del 50% del messaggio. È molto più facile da catturare se sei sarcastico quando gli altri possono vederti, per esempio. Puoi anche vedere le reazioni in tempo reale dei tuoi interlocutori. Sei in grado di notare se gli altri sono confusi con le tue parole o meno.
- Usa stanze separate sulla chat per classificare le conversazioni. Quando il progetto è complesso, anche la comunicazione nello sviluppo del software tende a diventare complessa e compaiono costantemente nuovi argomenti di discussione. Le stanze separate ti consentono di mantenere i messaggi organizzati e di raggiungere i destinatari corretti con meno problemi.
- Tagga i destinatari dei messaggi mentre scrivi via chat. Non è facile seguire ogni conversazione. È nel tuo interesse assicurarti che la persona a cui stai scrivendo venga avvisata.
- Nella conversazione scritta, usa le emoticon quando opportuno. Non usarne troppi, ma fai sapere al pubblico che stai scherzando sulla distribuzione pomeridiana di venerdì
Revisione del codice di comunicazione
All'inizio del lavoro, è necessario stabilire un codice comune per comprendere i termini principali allo stesso modo. Anche quelli "ovvi". Ad esempio, abbiamo un requisito: "Come utente, posso effettuare un ordine solo al mattino in modo che il prodotto scelto possa essere inviato lo stesso giorno". Sembra chiaro, vero?

Bene... Allora, cosa significa esattamente mattina in questa funzione? Quando inizia la mattina? Quando il sole sorge oa un'ora esatta cioè le 7:00? Se alle 7:00 che fuso orario hai in mente?
La comunicazione nella gestione dei progetti, in particolare nell'IT, deve essere cristallina. Non c'è posto per indovinare. Nel nostro caso, potrebbe causare una situazione in cui i prodotti non possono essere ordinati prima delle 10:00 (quando lo sviluppatore principale si sveglia, ecco cosa significa per lui la mattina) e il proprietario dell'app perde denaro a causa della mancanza di ordini da parte dei mattinieri.
Migliori pratiche del codice di comunicazione comune
- Crea un glossario con i termini di uso comune. Aiuta all'inizio del progetto ed è estremamente utile per i nuovi joiner per capire la lingua parlata dal team di sviluppo.
- È anche bene chiedere al destinatario come comprende il requisito o la frase. E non parlo dell'inutile: 'È tutto chiaro?'. Sii specifico. Chiedi i dettagli. Assicurati di essere capito. Fai una revisione del codice di comunicazione.
Guardiamo ancora una volta il nostro esempio: per raggiungere una comprensione comune del termine “mattina”, chiedi a quella persona che l'ha usato di riformularlo. - La regola pratica è che è meglio essere ripetitivi nella comunicazione nello sviluppo del software piuttosto che lasciare spazio a giochi di ipotesi.
La questione delle competenze
Oltre a tutti i metodi di comunicazione nella gestione dei progetti sopra menzionati, c'è un'altra cosa cruciale che è bene tenere a mente mentre si discute dei requisiti del software. Non importa se si tratta di una startup o di un prodotto aziendale, nella maggior parte dei casi, prima che un cliente vada alla software house, trascorre una discreta quantità di tempo a pensare al proprio prodotto. Più tempo ci dedicano, più esperti diventano sull'argomento.
Quando sei un esperto, è facile dimenticare che non tutti intorno a te hanno la stessa conoscenza del dominio che hai tu. Ciò significa che i problemi che sono ovvi per te non sono così chiari per il team di sviluppo con cui stai parlando.
Come evitare il problema della competenza
- Fai un passo indietro all'inizio del tuo viaggio con il prodotto e spiega al team di sviluppo tutte le decisioni che hai preso. Quando capiranno come è iniziato tutto, troveranno soluzioni tecniche migliori o addirittura colmeranno le lacune nel tuo modo di pensare.
- Consenti al team di porre tutte le domande di cui ha bisogno. Non c'è esagerazione nel proverbio che non ci sono domande stupide.
Come comunicare in modo efficace nel team di ingegneria del software
Il più chiaramente possibile! Non c'è spazio per problemi di comunicazione poiché le conseguenze possono essere dolorose. Ricorda che non c'è ovvietà oggettiva ed è meglio ripeterti più volte che perdere un'informazione importante.
Trasforma la tua idea in un prodotto digitale eccezionale
Lavoriamo insiemeTieni a mente tutti e tre i fattori di comunicazione e ricontrolla per vedere se il tuo messaggio è stato interpretato come lo intendevi. Con il tempo, la comunicazione nello sviluppo del software sarà più facile per te e spiegare correttamente i requisiti non sarà più un problema.
Se stai cercando una software house esperta sia nello sviluppo di app che nella comunicazione, non cercare oltre!
Parla con i nostri specialisti Miquido e dai vita alle tue idee!