{"id":4491,"date":"2019-03-22T11:55:51","date_gmt":"2019-03-22T10:55:51","guid":{"rendered":"https:\/\/ardea.srl\/it\/?p=4491"},"modified":"2019-03-22T11:55:52","modified_gmt":"2019-03-22T10:55:52","slug":"sviluppo-agile-i-metodi","status":"publish","type":"post","link":"https:\/\/ardea.srl\/it\/sviluppo-agile-i-metodi\/","title":{"rendered":"Sviluppo Agile: i metodi"},"content":{"rendered":"\n<p>Nell\u2019ingegneria del software la metodologia Agile si riferisce a metodi per lo <a rel=\"noreferrer noopener\" aria-label=\"sviluppo del software (si apre in una nuova scheda)\" href=\"https:\/\/ardea.srl\/it\/software\/\" target=\"_blank\">sviluppo del software<\/a> che sono stati diffusi a partire dagli anni 2000 e fondata sui principi derivanti dal <a rel=\"noreferrer noopener\" aria-label=\"\u201cManifesto per lo sviluppo agile del software\u201d (si apre in una nuova scheda)\" href=\"https:\/\/agilemanifesto.org\/iso\/it\/manifesto.html\" target=\"_blank\">\u201c<\/a><em><a rel=\"noreferrer noopener\" aria-label=\"\u201cManifesto per lo sviluppo agile del software\u201d (si apre in una nuova scheda)\" href=\"https:\/\/agilemanifesto.org\/iso\/it\/manifesto.html\" target=\"_blank\">Manifesto per lo sviluppo agile del software<\/a><\/em><a rel=\"noreferrer noopener\" aria-label=\"\u201cManifesto per lo sviluppo agile del software\u201d (si apre in una nuova scheda)\" href=\"https:\/\/agilemanifesto.org\/iso\/it\/manifesto.html\" target=\"_blank\">\u201d<\/a> pubblicato nel 2001, tra gli altri, da <em>Kent Beck, Robert C. martin <\/em>e <em>Martin Fowler.<\/em><\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Lo sviluppo software con la metodologia Agile non \u00e8 nient\u2019altro che <strong>l\u2019applicazione di una filosofia<\/strong> che esula dal tipo di linguaggio di programmazione del software, dalla piattaforma utilizzata e dalla natura e destinazione dello specifico software.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Le regole dello Sviluppo Agile<\/h3>\n\n\n\n<p>Le\nregole alla base della metodologia Agile secondo il Manifesto per lo sviluppo\nagile del software sono 4:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Dare maggior importanza agli individui<\/strong> e alle loro interazioni piuttosto che ai processi e gli strumenti di sviluppo<\/li><li>Ok la documentazione esaustiva per il software, ma prima di tutto questo <strong>deve funzionare correttamente!<\/strong><\/li><li>Il <strong>rapporto con il cliente<\/strong> deve essere <strong>fondato sulla collaborazione <\/strong>costante<\/li><li>Seguire un piano \u00e8 necessario, ma <strong>adattarsi ai cambiamenti<\/strong> in corso d\u2019opera lo \u00e8 di pi\u00f9<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Quali metodologie<\/h3>\n\n\n\n<p>Da questa filosofia di sviluppo sono nate diverse metodologie e tra queste due sono state adottate pi\u00f9 delle altre: Extreme Programming (XP) e Scrum.<\/p>\n\n\n\n<p>Le due metodologie <a href=\"https:\/\/www.mountaingoatsoftware.com\/blog\/differences-between-scrum-and-extreme-programming\">non si escludono reciprocamente<\/a> perch\u00e9 si focalizzano su aspetti in parte complementari e in molti contesti ha senso adottarle entrambe.<\/p>\n\n\n\n<p>Entrambi adottano un <a href=\"https:\/\/www.visual-paradigm.com\/scrum\/extreme-programming-vs-scrum\/\">processo iterativo e incrementale<\/a>. Scrum prescrive delle iterazioni di 30 giorni (Sprint), mentre XP lascia libert\u00e0 di scelta suggerendo per\u00f2 di adottare iterazioni di una o due settimane al massimo. Ciascuna iterazione produce una versione funzionante dell&#8217;applicazione che offre qualche funzionalit\u00e0 in pi\u00f9 della precedente.<\/p>\n\n\n\n<p>In generale, Scrum si concentra molto sulla gestione del progetto (pianificazione, attivit\u00e0 da svolgere e stato di avanzamento) ma non fornisce indicazioni su come organizzare la scrittura del codice.<\/p>\n\n\n\n<p>Anche XP fornisce delle pratiche per la gestione del progetto e la pianificazione ma in aggiunta prescrive anche delle tecniche di scrittura del codice, come Pair Programming e Test Driven Development.<br><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Sprint e Vantaggi<\/h3>\n\n\n\n<p>Come abbiamo detto le iterazioni di Scrum vengono denominate <strong>Sprint.<\/strong><\/p>\n\n\n\n<p>Uno Sprint comincia con una riunione in cui si pianifica l&#8217;iterazione (Sprint Planning). In questa riunione si definiscono gli obiettivi dello Sprint, selezionando tra i requisiti funzionali gi\u00e0 definiti (backlog) o eventualmente definendone di nuovi, se nel frattempo sono cambiati alcuni requisiti.<\/p>\n\n\n\n<p>Ogni giorno comincia con una breve riunione (Daily Meeting) in cui si definiscono gli obiettivi della giornata per ciascun membro del team.<\/p>\n\n\n\n<p>Alla fine dell&#8217;iterazione, si esegue un&#8217;analisi dello Sprint (Retrospective). Lo scopo \u00e8 evidenziare cosa ha funzionato ma soprattutto individuare eventuali problemi e farne immediatamente tesoro per risolverli subito ed evitare di reiterare gli errori commessi.<\/p>\n\n\n\n<p>Alla fine dello Sprint il cliente ha il compito di valutare le funzionalit\u00e0 sviluppate e la loro conformit\u00e0 con i requisiti. Eventuali comportamenti non conformi ai requisiti o cambiamenti nei requisiti concordati saranno oggetto di uno degli Sprint successivi.<\/p>\n\n\n\n<p>Questo approccio, oltre a ridurre i costi per la gestione della produzione del software e dell\u2019intero progetto, evita il fallimento dello stesso in quanto ogni Sprint passa sotto il vaglio del cliente.<\/p>\n\n\n\n<p>Per l\u2019azienda che utilizza un approccio di <strong>Sviluppo Agile i benefici sono molti:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Maggior grado di produttivit\u00e0<\/li><li>Pi\u00f9 flessibilit\u00e0 e adeguamento ai cambiamenti<\/li><li>Maggiore trasparenza nel rapporto con il cliente<\/li><li>Software e prodotti di maggiore qualit\u00e0<\/li><li>Riduzione dei rischio di non centrare gli obiettivi<\/li><li>Maggiore coinvolgimento nel progetto dell\u2019azienda e del cliente e maggiore soddisfazione<\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Nell\u2019ingegneria del software la metodologia Agile si riferisce a metodi per lo sviluppo del software che sono stati diffusi a partire dagli anni 2000 e fondata sui principi derivanti dal \u201cManifesto per lo sviluppo agile del software\u201d pubblicato nel 2001, tra gli altri, da Kent Beck, Robert C. martin e Martin Fowler.<\/p>\n","protected":false},"author":173,"featured_media":4500,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[155,172,170,171,168,169],"class_list":["post-4491","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-java","tag-metodo-agile","tag-progettazione-software","tag-software","tag-sviluppo","tag-sviluppo-software"],"_links":{"self":[{"href":"https:\/\/ardea.srl\/it\/wp-json\/wp\/v2\/posts\/4491","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ardea.srl\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ardea.srl\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ardea.srl\/it\/wp-json\/wp\/v2\/users\/173"}],"replies":[{"embeddable":true,"href":"https:\/\/ardea.srl\/it\/wp-json\/wp\/v2\/comments?post=4491"}],"version-history":[{"count":8,"href":"https:\/\/ardea.srl\/it\/wp-json\/wp\/v2\/posts\/4491\/revisions"}],"predecessor-version":[{"id":4601,"href":"https:\/\/ardea.srl\/it\/wp-json\/wp\/v2\/posts\/4491\/revisions\/4601"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ardea.srl\/it\/wp-json\/wp\/v2\/media\/4500"}],"wp:attachment":[{"href":"https:\/\/ardea.srl\/it\/wp-json\/wp\/v2\/media?parent=4491"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ardea.srl\/it\/wp-json\/wp\/v2\/categories?post=4491"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ardea.srl\/it\/wp-json\/wp\/v2\/tags?post=4491"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}