{"id":8555,"date":"2018-12-12T07:30:35","date_gmt":"2018-12-12T06:30:35","guid":{"rendered":"http:\/\/www.unilab.eu\/?p=8555"},"modified":"2021-04-14T11:21:25","modified_gmt":"2021-04-14T09:21:25","slug":"agile","status":"publish","type":"post","link":"https:\/\/www.unilab.eu\/it\/articoli\/coffee-break-it\/agile\/","title":{"rendered":"Sviluppo: come funziona il metodo agile"},"content":{"rendered":"<p>Con l&#8217;espressione <strong>metodo agile<\/strong> &#8211; in inglese agile software development &#8211; si inquadra un insieme di metodologie di sviluppo dei software. Questo approccio ha cominciato a farsi strada all\u2019inizio degli anni 2000, prendendo come riferimento i principi del cosiddetto &#8220;Manifesto per lo sviluppo agile del software&#8221;, che porta la firma di informatici di fama mondiale come Kent Beck, Robert C. Martin e Martin Fowler (si tratta degli autori di punta).<\/p>\n<p>Contrapposto al <strong>modello a cascata<\/strong>, il metodo agile si contraddistingue per il fatto di mettere in primo piano le esigenze del cliente, senza per\u00f2 trascurare quelle del professionista che gestisce il progetto. Tutto ci\u00f2 si basa su un metodo di natura squisitamente empirica e non predittiva.<\/p>\n<p>I vantaggi concreti riguardano innanzitutto un livello migliore di comunicazione e di chiarezza, che garantisce da un lato la <strong>soddisfazione del cliente<\/strong> e, per quanto riguarda lo sviluppatore, una maggior libert\u00e0 nella gestione dei carichi di lavoro.<\/p>\n<p>Inoltre, i professionisti si impegnano per ridurre i rischi di fallimento concentrando lo sviluppo dei software in finestre di tempo limitate dette <strong>iterazioni<\/strong>. Queste ultime, durano generalmente qualche settimana.<\/p>\n<p>Ogni iterazione viene considerata come progetto a s\u00e9. Fondamentale \u00e8 che contenga tutto quello che \u00e8 necessario per contribuire a un incremento, anche se minimo, della <strong>funzionalit\u00e0 del software<\/strong>. Secondo i principi del metodo agile, l&#8217;unione dei risultati delle varie iterazioni deve restituire un output il pi\u00f9 vicino possibile alle richieste del cliente.<\/p>\n<p>La conseguenza diretta della metodologia \u00e8 prima di tutto la percentuale pi\u00f9 bassa di <strong>richieste di modifiche<\/strong>. Raggiungere il suddetto obiettivo \u00e8 possibile grazie a tre fattori fondamentali: collaborazione, apertura al cambiamento e funzionalit\u00e0. In virt\u00f9 di questi aspetti, il metodo agile \u00e8 sempre pi\u00f9 utilizzato e ha conquistato il favore di numerose aziende IT e non solo.<\/p>\n<p><strong>\u00a0<\/strong><strong>Strumenti di lavoro<\/strong><\/p>\n<p>La popolarit\u00e0 acquisita dal metodo agile in questi anni ha permesso agli sviluppatori di mettere a punto alcuni importanti strumenti di lavoro. Tra questi \u00e8 possibile chiamare in causa i numerosi software finalizzati alla creazione di <strong>framework Agili<\/strong>, grazie ai quali si ha modo di concretizzare una comunicazione diretta e continua con i clienti.<\/p>\n<p>Concentrandosi su un ambito prettamente gestionale, si pu\u00f2 individuare come strumento di lavoro principale la <strong>lavagna Kanban<\/strong>, molto semplice da utilizzare e decisiva sia per tenere sotto controllo tutte le fasi della progettazione, sia per ottimizzare i carichi di lavoro quando \u00e8 necessario. Grazie a questi strumenti di lavoro, il metodo pu\u00f2 essere applicato a qualsiasi progetto, a prescindere dalla complessit\u00e0 dello stesso.<\/p>\n<p><strong>\u00a0<\/strong><strong>Cosa sapere sulle pratiche<\/strong><\/p>\n<p>Le<strong> pratiche<\/strong> applicabili all&#8217;interno del metodo agile sono numerose. La scelta dipende dalle necessit\u00e0 dell&#8217;azienda e dallo stile professionale del project manager. Un esempio utile per capire come ci si pu\u00f2 muovere \u00e8 quello dell&#8217;Extreme Programming, situazione in cui si fa fronte alla mancanza di progettazione ricorrendo a uno stretto coinvolgimento del cliente. In ogni caso, le pratiche sono abbastanza simili tra loro e possono essere classificate in categorie che stiamo per elencare:<\/p>\n<ul>\n<li>l Automazione;<\/li>\n<li>l Coinvolgimento del cliente (in questo caso, ci si pu\u00f2 basare su diversi gradi);<\/li>\n<li>l Comunicazione stretta;<\/li>\n<li>l Consegne frequenti;<\/li>\n<li>l Cultura del team;<\/li>\n<li>l Facilitated Workshop;<\/li>\n<li>l Formazione di squadra e propriet\u00e0 del codice;<\/li>\n<li>l Iterative development;<\/li>\n<li>l Messa in propriet\u00e0;<\/li>\n<li>l Miglioramento della conoscenza;<\/li>\n<li>l Modellizzazione;<\/li>\n<li>l Pair Programming;<\/li>\n<li>l Prioritization;<\/li>\n<li>l Progettazione e documentazione.<\/li>\n<\/ul>\n<p>L&#8217;elenco delle pratiche non finisce qui. Si pu\u00f2 infatti parlare anche di refactoring (pratica che prevede la <strong>ristrutturazione di parti di codice<\/strong> senza cambiarne per\u00f2 aspetto esterno e comportamento) e di retroingegneria (un approccio che consente di ottenere automaticamente tutta la documentazione a partire dal codice gi\u00e0 prodotto). Le altre pratiche del metodo agile sono la semplicit\u00e0, il test, il Test Driven Development, il Timeboxing e il controllo di versione.<\/p>\n<!--themify_builder_content-->\n<div id=\"themify_builder_content-8555\" data-postid=\"8555\" class=\"themify_builder_content themify_builder_content-8555 themify_builder tf_clear\">\n    <\/div>\n<!--\/themify_builder_content-->\n","protected":false},"excerpt":{"rendered":"<p>Con l&#8217;espressione metodo agile &#8211; in inglese agile software development &#8211; si inquadra un insieme di metodologie di sviluppo dei software. <\/p>\n","protected":false},"author":10,"featured_media":8557,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"","_seopress_titles_title":"%%title%% %%page%% %%sep%% %%sitename%%","_seopress_titles_desc":"Con l'espressione metodo agile - in inglese agile software development - si inquadra un insieme di metodologie di sviluppo dei software.","_seopress_robots_index":"","footnotes":""},"categories":[46],"tags":[],"class_list":["post-8555","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-coffee-break-it","has-post-title","has-post-date","has-post-category","has-post-tag","has-post-comment","has-post-author",""],"builder_content":"","_links":{"self":[{"href":"https:\/\/www.unilab.eu\/it\/wp-json\/wp\/v2\/posts\/8555","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.unilab.eu\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.unilab.eu\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.unilab.eu\/it\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/www.unilab.eu\/it\/wp-json\/wp\/v2\/comments?post=8555"}],"version-history":[{"count":0,"href":"https:\/\/www.unilab.eu\/it\/wp-json\/wp\/v2\/posts\/8555\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.unilab.eu\/it\/wp-json\/wp\/v2\/media\/8557"}],"wp:attachment":[{"href":"https:\/\/www.unilab.eu\/it\/wp-json\/wp\/v2\/media?parent=8555"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.unilab.eu\/it\/wp-json\/wp\/v2\/categories?post=8555"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.unilab.eu\/it\/wp-json\/wp\/v2\/tags?post=8555"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}