{"id":26503,"date":"2020-09-02T00:00:00","date_gmt":"2020-09-01T22:00:00","guid":{"rendered":"https:\/\/blexin.com\/?p=26503"},"modified":"2021-05-20T20:00:02","modified_gmt":"2021-05-20T18:00:02","slug":"pair-programming-parliamone","status":"publish","type":"post","link":"https:\/\/blexin.com\/it\/blog\/pair-programming-parliamone\/","title":{"rendered":"Pair Programming, parliamone!"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"608\" data-attachment-id=\"26505\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/pair-programming-parliamone\/attachment\/01-1\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/01-1.png?fit=1024%2C608&amp;ssl=1\" data-orig-size=\"1024,608\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"01-1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/01-1.png?fit=1024%2C608&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/01-1.png?resize=1024%2C608&#038;ssl=1\" alt=\"\" class=\"wp-image-26505\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/01-1.png 1024w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/01-1-980x582.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/01-1-480x285.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Negli ultimi mesi, sto lavorando con un\u2019azienda che predilige l\u2019uso della metodologia \u201c<strong>Pair Programming<\/strong>\u201c, chenon mi era mai capitato di utilizzare in modo costante. Certo, \u00e8 successo a tutti di sedersi con un collega per discutere di un problema o guardare insieme un pezzo di codice alla ricerca di eventuali migliorie, ma farne una metodologia di lavoro \u00e8 di sicuro tutt\u2019altra cosa.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Innanzitutto, spieghiamo in cosa consiste questa metodologia, prendendo in prestito la definizione di Wikipedia: \u201c<em>\u00e8 una tecnica&nbsp;<a href=\"https:\/\/it.wikipedia.org\/wiki\/Metodologia_agile\">agile<\/a>&nbsp;di&nbsp;<a href=\"https:\/\/it.wikipedia.org\/wiki\/Sviluppo_del_software\">sviluppo del software<\/a>&nbsp;nella quale due programmatori lavorano insieme a una postazione di lavoro. Uno dei due, indicato come &#8220;conducente&#8221; (&#8220;driver&#8221;) scrive il codice; l&#8217;altro, detto &#8220;osservatore&#8221; (&#8220;observer&#8221;) o &#8220;navigatore&#8221; (&#8220;navigator&#8221;), svolge un ruolo di supervisione e di revisione simultanea del codice. Il conducente ha l&#8217;obiettivo principale di portare a termine una soluzione funzionante del problema in considerazione, mentre al navigatore \u00e8 lasciato il compito di segnalare errori del conducente o proporre strategie alternative di soluzione. I due programmatori cambiano spesso ruolo.\u201d (<a rel=\"noreferrer noopener\" href=\"https:\/\/it.wikipedia.org\/wiki\/Pair_programming\" target=\"_blank\">https:\/\/it.wikipedia.org\/wiki\/Pair_programming<\/a>)<\/em>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" data-attachment-id=\"26508\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/pair-programming-parliamone\/attachment\/image_1\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image_1.jpg?fit=1920%2C1080&amp;ssl=1\" data-orig-size=\"1920,1080\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"image_1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image_1.jpg?fit=1024%2C576&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image_1.jpg?resize=1024%2C576&#038;ssl=1\" alt=\"\" class=\"wp-image-26508\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image_1-980x551.jpg?crop=1 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image_1-480x270.jpg?crop=1 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Questa \u00e8 solo una definizione di Pair Programming, ma la variet\u00e0 di stili con cui \u00e8 possibile metterla in atto \u00e8 molteplice. Vediamo insieme qualche esempio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ping Pong Pairing<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Questo stile fa al caso vostro quando utilizzate TDD come metodo di sviluppo. Avremo quindi i seguenti passaggi:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li><em>Ping:&nbsp;<\/em>Sviluppatore A scrive un Unit Test che ha come esito Rosso (fallito)<\/li><li><em>Pong:&nbsp;<\/em>Sviluppatore B scrive una prima implementazione in modo da rendere il test verde (passato)<\/li><li>A questo punto sar\u00e0 lo sviluppatore B a scrivere il prossimo&nbsp;<em>Ping&nbsp;<\/em>(test rosso)<\/li><li>Dopo ogni Pong si fa una sessione di refactoring del codice in modo da utilizzare l\u2019approccio Red &#8211; Green &#8211; Refactor (Scrivi test che fallisce, rendi il test verde con una prima implementazione, rifattorizzi il codice scritto)<\/li><\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Strong Style Pairing<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Questo stile viene utilizzato specialmente quando bisogna introdurre un nuovo membro in un team o progetto. L\u2019idea alla base \u00e8 che un progetto di chi osserva venga implementato da chi scrive il codice. In questo stile, l\u2019<em>Observer&nbsp;<\/em>\u00e8 la persona con pi\u00f9 esperienza e conoscenza di ci\u00f2 che si andr\u00e0 ad implementare, mentre il&nbsp;<em>Driver<\/em>&nbsp;\u00e8 il novizio che, durante la fase di implementazione, probabilmente non capir\u00e0 completamente quello che scriver\u00e0. Dopo l\u2019implementazione, bisogner\u00e0 dedicare uno spazio alle eventuali domande del Driver su quanto implementato. Questo stile \u00e8 amato particolarmente da quei manager che prediligono un inserimento di un nuovo membro basato sul \u201cfare\u201d e non sull\u2019osservare passivamente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Per una corretta sessione di pair programming, non basta scegliere il giusto stile da utilizzare: ci sono altri aspetti da tener presente, in modo da non rendere l\u2019esperienza frustrante.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"474\" data-attachment-id=\"26514\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/pair-programming-parliamone\/attachment\/image_4\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image_4.png?fit=1024%2C474&amp;ssl=1\" data-orig-size=\"1024,474\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"image_4\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image_4.png?fit=1024%2C474&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image_4.png?resize=1024%2C474&#038;ssl=1\" alt=\"\" class=\"wp-image-26514\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image_4.png 1024w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image_4-980x454.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image_4-480x222.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Gestione del tempo<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Non siamo delle macchine, lavorare otto ore consecutive insieme ad un&#8217;altra persona che ci osserva o anche da osservare non \u00e8 facile: meglio utilizzare dei piccoli slot di tempo in cui concentrarsi su specifici aspetti dell\u2019implementazione, che porteranno alla chiusura del task assegnato. Una delle tecniche consigliate \u00e8 quella del \u201cPomodoro\u201d, che si divide in cinque fasi:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Scegliere il task su cui lavorare<\/li><li>Settare un timer su un intervallo di tempo (di solito 25 minuti)<\/li><li>In questo intervallo, provare a lavorare senza interruzioni sul task scelto<\/li><li>Dopo il primo intervallo, fare una breve pausa (5-10 minuti)<\/li><li>Dopo 4 o 5 intervalli concedersi una pausa pi\u00f9 lunga (15-30 minuti) in modo da ricaricare completamente le batterie evitando qualsiasi attivit\u00e0 connessa al lavoro.<\/li><\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Rotazione del pair<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La rotazione del pair prevede che, dopo un certo tempo (stabilito di comune accordo), uno dei due componenti del pair abbandoni il task che si sta affrontando, lasciando il posto ad una persona completamente nuova. Questo dovrebbe favorire lo sharing delle conoscenze all\u2019interno del team ed evitare il concentrarsi delle conoscenze su singoli individui. Un altro motivo per cui \u00e8 vantaggioso ruotare i pair \u00e8 sicuramente quello logistico: uno dei due componenti potrebbe essere assente per malattia, o ferie. La rotazione porta vantaggi e svantaggi, sta ad ognuno capire il modo migliore per farlo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Pianificazione della giornata<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Lavorare in coppia richiede che le due persone si organizzino in modo da avere gli stessi slot di tempo liberi per dedicarsi allo sviluppo. Concordare gli orari per evitare impedimenti tipo meetings, permessi per faccende personali ecc. aumenta la produttivit\u00e0 del pair ed evita la situazione spiacevole in cui uno dei due rimane fermo ad aspettare la disponibilit\u00e0 dell\u2019altro.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Come tutte le metodologie di lavoro, anche questa ha i suoi vantaggi e svantaggi. Io vorrei spiegarvi cosa vi ho trovato di buono e cosa, invece, non mi ha convinto.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Vantaggi<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" data-attachment-id=\"26517\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/pair-programming-parliamone\/attachment\/image_3\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image_3.jpg?fit=1280%2C720&amp;ssl=1\" data-orig-size=\"1280,720\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"image_3\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image_3.jpg?fit=1024%2C576&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image_3.jpg?resize=1024%2C576&#038;ssl=1\" alt=\"\" class=\"wp-image-26517\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image_3-1024x576.jpg 1024w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image_3-980x551.jpg?crop=1 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image_3-480x270.jpg?crop=1 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Condivisione delle conoscenze:&nbsp;<\/strong>lavorare a stretto contatto con un\u2019altra persona ha sicuramente il vantaggio di poter, in ogni caso, imparare qualcosa di nuovo. Osservare un diverso modo di pensare, di approcciare un problema e come risolverlo, aiuta sicuramente a crescere professionalmente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Rapido inserimento in un nuovo team:&nbsp;<\/strong>di solito, quando si entra in un nuovo team, c\u2019\u00e8 sempre il primo periodo di adattamento per imparare la metodologia di lavoro, come svolgere dei task semplici per iniziare a conoscere i vari progetti su cui lavorare. Poter lavorare a stretto contatto con una persona che invece ha gi\u00e0 esperienza su tutto quello che riguarda il lavoro che si andr\u00e0 ad affrontare, permette comunque un inserimento \u201cmorbido\u201d ma sicuramente pi\u00f9 rapido ed efficace, sia che si faccia da&nbsp;<em>Drive<\/em>r che da&nbsp;<em>Observer<\/em>. L&#8217;alternarsi delle due cose permette, anzi, in un caso di osservare i vari \u201csegreti\u201d utili per velocizzare il processo in cui si diventa produttivi, nell\u2019altro pu\u00f2 velocizzare l\u2019individuazione di punti deboli su cui lavorare per aumentare la propria produttivit\u00e0.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Team Building:&nbsp;<\/strong>quale migliore occasione per conoscere i tuoi compagni di team se non lavorare a stretto contatto? Il pair programming non significa concentrarsi esclusivamente sul codice otto ore al giorno senza scambiarsi una parola. Anzi, secondo la mia esperienza, l&#8217;alternarsi di sessioni di coding e piccole pause caff\u00e8 aumenta la produttivit\u00e0 e la concentrazione.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Codice migliore:&nbsp;<\/strong>quattro occhi sono meglio di due. La matematica non \u00e8 un&#8217;opinione, due persone che guardano lo stesso pezzo di codice hanno sicuramente meno possibilit\u00e0 di sbagliare. Si discute sulle scelte architetturali, su eventuali librerie da utilizzare e quali pattern scegliere. Il confronto \u00e8 sempre una cosa buona e produce cose migliori.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Svantaggi<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"736\" height=\"589\" data-attachment-id=\"26519\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/pair-programming-parliamone\/attachment\/image_2-1\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image_2-1.jpg?fit=736%2C589&amp;ssl=1\" data-orig-size=\"736,589\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"image_2-1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image_2-1.jpg?fit=736%2C589&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image_2-1.jpg?resize=736%2C589&#038;ssl=1\" alt=\"\" class=\"wp-image-26519\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image_2-1.jpg 736w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image_2-1-480x384.jpg 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 736px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Effetto Traino:&nbsp;<\/strong>una delle cose peggiori che pu\u00f2 succedere durante un pair, \u00e8 che l\u2019<em>Observer&nbsp;<\/em>sia poco coinvolto. Questo pu\u00f2 capitare specialmente se il pair viene fatto da remoto: la lontananza fisica pu\u00f2 portare a quel fenomeno per il quale l\u2019<em>Observer&nbsp;<\/em>si fa un po\u2019 i fatti suoi, lasciando il&nbsp;<em>Driver&nbsp;<\/em>da solo a risolvere il problema, e sminuendo l\u2019utilit\u00e0 di questa metodologia di lavoro, producendo uno spreco di risorse economiche ed umane.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Pair Errato:&nbsp;<\/strong>c\u2019\u00e8 poco da fare, ad alcune persone piace particolarmente lavorare da soli, magari ascoltando musica, altri invece possono non essere a proprio agio mentre vengono osservati a scrivere codice. Qualsiasi sia il motivo, secondo me non \u00e8 conveniente forzare un pair. Magari potrebbe essere utile far ruotare i pair del team fino a trovare quelli che funzionano. Questo \u00e8 un altro aspetto controverso: alcuni sono dell\u2019opinione che ruotare i pair ad intervalli regolari porti esclusivamente benefici, magari per alcuni dei motivi che spiegavo sopra (come la condivisione delle conoscenze). Secondo la mia esperienza, non \u00e8 sempre giusto: fa bene ogni tanto magari ogni due o tre iterazioni cambiare partner, in modo da arricchire la propria esperienza, ma se si \u00e8 trovato un buon compagno di lavoro che aumenta la vostra produttivit\u00e0 e non fa risultare pesante la giornata di lavoro, \u00e8 giusto continuare a lavorarci assieme.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Pair esclusivamente remoto:&nbsp;<\/strong>uno dei vantaggi di questa metodologia \u00e8 sicuramente il poter interagire con un&#8217;altra persona stando a stretto contatto. Per me, il metodo migliore \u00e8 quello in cui si utilizza un solo terminale e il pair seduto alla stessa scrivania lavora e discute del task di cui si sta occupando scambiando spesso i ruoli di&nbsp;<em>Driver<\/em>&nbsp;e&nbsp;<em>Observer<\/em>. Lavorare sempre da remoto con un&#8217;altra persona, che magari non si \u00e8 mai conosciuto personalmente, pu\u00f2 rendere questa metodologia a volte pesante. Non \u00e8 naturalmente la regola, tutti questi discorsi sono sicuramente soggettivi e magari ci sono persone che invece preferiscono di gran lunga lavorare esclusivamente da remoto. Ma, secondo me, la parte di interazione sociale \u00e8 molto importante per far funzionare questa tecnica di lavorazione.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusioni<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Come gi\u00e0 detto, tutto questo \u00e8 molto soggettivo. Quello che posso dire \u00e8 che, come ogni cosa, anche l\u2019utilizzo di questa metodologia aumenta sicuramente il proprio bagaglio di esperienze. Entrando nello specifico, mi \u00e8 capitato molto spesso di essere in pair con un collega veramente molto bravo sul TDD (Test Driven Development): osservare il suo modo di lavorare e ricevere correzioni sul mio lavoro, mi ha aiutato notevolmente ad imparare ad utilizzare correttamente ed efficientemente questa metodologia di sviluppo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Anche il livello di esperienza dei due attori coinvolti \u00e8 molto importante nel pair programming: lavorare con un altro Senior pu\u00f2 essere sicuramente divertente e ti permette di crescere, ma d&#8217;altro canto lavorare con uno sviluppatore dal profilo Junior aiuta a far crescere il team, trasferendo conoscenze ad una persona con meno esperienza di te.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Spero di aver alimentato la vostra curiosit\u00e0 sull\u2019argomento e magari la voglia di provare il pair programming nei vostri cicli produttivi.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Al prossimo articolo!<\/p>\n\n\n\n\n","protected":false},"excerpt":{"rendered":"<p>Un&#8217; esperienza con questa controversa metodologia di sviluppo in coppia<\/p>\n","protected":false},"author":196716246,"featured_media":26505,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"off","_et_pb_old_content":"","_et_gb_content_width":"","_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","inline_featured_image":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_wpcom_ai_launchpad_first_post":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"{title}\n\n{excerpt}\n\n{url}","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_wpas_customize_per_network":false,"jetpack_post_was_ever_published":false},"categories":[688637374],"tags":[688637539],"class_list":["post-26503","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-devops-it"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Pair Programming, parliamone! - Blexin<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blexin.com\/it\/blog\/pair-programming-parliamone\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Pair Programming, parliamone! - Blexin\" \/>\n<meta property=\"og:description\" content=\"Un&#039; esperienza con questa controversa metodologia di sviluppo in coppia\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blexin.com\/it\/blog\/pair-programming-parliamone\/\" \/>\n<meta property=\"og:site_name\" content=\"Blexin\" \/>\n<meta property=\"article:published_time\" content=\"2020-09-01T22:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-05-20T18:00:02+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i1.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/01-1.png?fit=1024%2C608&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"608\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Francesco de Vicariis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Francesco de Vicariis\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/pair-programming-parliamone\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/pair-programming-parliamone\\\/\"},\"author\":{\"name\":\"Francesco de Vicariis\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/#\\\/schema\\\/person\\\/6f8514ed8b0d3be31369ca5436c4781f\"},\"headline\":\"Pair Programming, parliamone!\",\"datePublished\":\"2020-09-01T22:00:00+00:00\",\"dateModified\":\"2021-05-20T18:00:02+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/pair-programming-parliamone\\\/\"},\"wordCount\":1558,\"image\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/pair-programming-parliamone\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/01-1.png?fit=1024%2C608&ssl=1\",\"keywords\":[\"DevOps\"],\"articleSection\":[\"Blog\"],\"inLanguage\":\"it-IT\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/pair-programming-parliamone\\\/\",\"url\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/pair-programming-parliamone\\\/\",\"name\":\"Pair Programming, parliamone! - Blexin\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/pair-programming-parliamone\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/pair-programming-parliamone\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/01-1.png?fit=1024%2C608&ssl=1\",\"datePublished\":\"2020-09-01T22:00:00+00:00\",\"dateModified\":\"2021-05-20T18:00:02+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/#\\\/schema\\\/person\\\/6f8514ed8b0d3be31369ca5436c4781f\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/pair-programming-parliamone\\\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/pair-programming-parliamone\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/pair-programming-parliamone\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/01-1.png?fit=1024%2C608&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/01-1.png?fit=1024%2C608&ssl=1\",\"width\":1024,\"height\":608},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/pair-programming-parliamone\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/blexin.com\\\/it\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Pair Programming, parliamone!\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/#website\",\"url\":\"https:\\\/\\\/blexin.com\\\/it\\\/\",\"name\":\"Blexin\",\"description\":\"Con noi \u00e8 semplice\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blexin.com\\\/it\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/#\\\/schema\\\/person\\\/6f8514ed8b0d3be31369ca5436c4781f\",\"name\":\"Francesco de Vicariis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b3a3164fd0b28d429cd427aafae38a687a41a250a2bccf4ab3b0744138afd64e?s=96&d=identicon&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b3a3164fd0b28d429cd427aafae38a687a41a250a2bccf4ab3b0744138afd64e?s=96&d=identicon&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b3a3164fd0b28d429cd427aafae38a687a41a250a2bccf4ab3b0744138afd64e?s=96&d=identicon&r=g\",\"caption\":\"Francesco de Vicariis\"},\"url\":\"https:\\\/\\\/blexin.com\\\/it\\\/author\\\/francesco-devicariisblexin-com\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Pair Programming, parliamone! - Blexin","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blexin.com\/it\/blog\/pair-programming-parliamone\/","og_locale":"it_IT","og_type":"article","og_title":"Pair Programming, parliamone! - Blexin","og_description":"Un' esperienza con questa controversa metodologia di sviluppo in coppia","og_url":"https:\/\/blexin.com\/it\/blog\/pair-programming-parliamone\/","og_site_name":"Blexin","article_published_time":"2020-09-01T22:00:00+00:00","article_modified_time":"2021-05-20T18:00:02+00:00","og_image":[{"width":1024,"height":608,"url":"https:\/\/i1.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/01-1.png?fit=1024%2C608&ssl=1","type":"image\/png"}],"author":"Francesco de Vicariis","twitter_card":"summary_large_image","twitter_misc":{"Scritto da":"Francesco de Vicariis","Tempo di lettura stimato":"8 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blexin.com\/it\/blog\/pair-programming-parliamone\/#article","isPartOf":{"@id":"https:\/\/blexin.com\/it\/blog\/pair-programming-parliamone\/"},"author":{"name":"Francesco de Vicariis","@id":"https:\/\/blexin.com\/it\/#\/schema\/person\/6f8514ed8b0d3be31369ca5436c4781f"},"headline":"Pair Programming, parliamone!","datePublished":"2020-09-01T22:00:00+00:00","dateModified":"2021-05-20T18:00:02+00:00","mainEntityOfPage":{"@id":"https:\/\/blexin.com\/it\/blog\/pair-programming-parliamone\/"},"wordCount":1558,"image":{"@id":"https:\/\/blexin.com\/it\/blog\/pair-programming-parliamone\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/01-1.png?fit=1024%2C608&ssl=1","keywords":["DevOps"],"articleSection":["Blog"],"inLanguage":"it-IT"},{"@type":"WebPage","@id":"https:\/\/blexin.com\/it\/blog\/pair-programming-parliamone\/","url":"https:\/\/blexin.com\/it\/blog\/pair-programming-parliamone\/","name":"Pair Programming, parliamone! - Blexin","isPartOf":{"@id":"https:\/\/blexin.com\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blexin.com\/it\/blog\/pair-programming-parliamone\/#primaryimage"},"image":{"@id":"https:\/\/blexin.com\/it\/blog\/pair-programming-parliamone\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/01-1.png?fit=1024%2C608&ssl=1","datePublished":"2020-09-01T22:00:00+00:00","dateModified":"2021-05-20T18:00:02+00:00","author":{"@id":"https:\/\/blexin.com\/it\/#\/schema\/person\/6f8514ed8b0d3be31369ca5436c4781f"},"breadcrumb":{"@id":"https:\/\/blexin.com\/it\/blog\/pair-programming-parliamone\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blexin.com\/it\/blog\/pair-programming-parliamone\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/blexin.com\/it\/blog\/pair-programming-parliamone\/#primaryimage","url":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/01-1.png?fit=1024%2C608&ssl=1","contentUrl":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/01-1.png?fit=1024%2C608&ssl=1","width":1024,"height":608},{"@type":"BreadcrumbList","@id":"https:\/\/blexin.com\/it\/blog\/pair-programming-parliamone\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blexin.com\/it\/"},{"@type":"ListItem","position":2,"name":"Pair Programming, parliamone!"}]},{"@type":"WebSite","@id":"https:\/\/blexin.com\/it\/#website","url":"https:\/\/blexin.com\/it\/","name":"Blexin","description":"Con noi \u00e8 semplice","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blexin.com\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Person","@id":"https:\/\/blexin.com\/it\/#\/schema\/person\/6f8514ed8b0d3be31369ca5436c4781f","name":"Francesco de Vicariis","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/secure.gravatar.com\/avatar\/b3a3164fd0b28d429cd427aafae38a687a41a250a2bccf4ab3b0744138afd64e?s=96&d=identicon&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/b3a3164fd0b28d429cd427aafae38a687a41a250a2bccf4ab3b0744138afd64e?s=96&d=identicon&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b3a3164fd0b28d429cd427aafae38a687a41a250a2bccf4ab3b0744138afd64e?s=96&d=identicon&r=g","caption":"Francesco de Vicariis"},"url":"https:\/\/blexin.com\/it\/author\/francesco-devicariisblexin-com\/"}]}},"jetpack_publicize_connections":[],"jetpack_shortlink":"https:\/\/wp.me\/pcyUBx-6Tt","jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/01-1.png?fit=1024%2C608&ssl=1","_links":{"self":[{"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/posts\/26503","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/users\/196716246"}],"replies":[{"embeddable":true,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/comments?post=26503"}],"version-history":[{"count":9,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/posts\/26503\/revisions"}],"predecessor-version":[{"id":27760,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/posts\/26503\/revisions\/27760"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/media\/26505"}],"wp:attachment":[{"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/media?parent=26503"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/categories?post=26503"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/tags?post=26503"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}