{"id":1295,"date":"2015-07-11T15:26:13","date_gmt":"2015-07-11T13:26:13","guid":{"rendered":"http:\/\/www.inambiente.it\/?p=1295"},"modified":"2015-07-11T15:36:13","modified_gmt":"2015-07-11T13:36:13","slug":"programmazione-agile-i-miei-appunti-del-corso-tenutosi-allordine-degli-ingegneri-di-napoli-prima-parte","status":"publish","type":"post","link":"https:\/\/www.inambiente.it\/index.php\/2015\/07\/programmazione-agile-i-miei-appunti-del-corso-tenutosi-allordine-degli-ingegneri-di-napoli-prima-parte\/","title":{"rendered":"Programmazione Agile: i miei appunti del corso tenutosi all&#8217;Ordine degli Ingegneri di Napoli &#8211; Prima Parte."},"content":{"rendered":"<div id=\"ri_adv_end_content\"><script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script>\r\n\t\t\t\t<!-- Appunti Ingegneria -->\r\n\t\t\t\t<ins class=\"adsbygoogle\"\r\n\t\t\t\t\t style=\"display:block\"\r\n\t\t\t\t\t data-ad-client=\"ca-pub-5194127282884067\"\r\n\t\t\t\t\t data-ad-slot=\"8299779634\"\r\n\t\t\t\t\t data-ad-format=\"auto\"><\/ins>\r\n\t\t\t\t<script>\r\n\t\t\t\t(adsbygoogle = window.adsbygoogle || []).push({});\r\n\t\t\t\t<\/script><\/div><div id=\"attachment_1297\" style=\"width: 310px\" class=\"wp-caption alignleft\"><a href=\"http:\/\/www.inambiente.it\/wp-content\/uploads\/2015\/07\/agile.jpg\"><img aria-describedby=\"caption-attachment-1297\" loading=\"lazy\" class=\"size-medium wp-image-1297\" src=\"http:\/\/www.inambiente.it\/wp-content\/uploads\/2015\/07\/agile-300x225.jpg\" alt=\"Programmazione Agile\" width=\"300\" height=\"225\" srcset=\"https:\/\/www.inambiente.it\/wp-content\/uploads\/2015\/07\/agile-300x225.jpg 300w, https:\/\/www.inambiente.it\/wp-content\/uploads\/2015\/07\/agile.jpg 600w\" sizes=\"(max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-1297\" class=\"wp-caption-text\">Programmazione Agile<\/p><\/div>\n<p style=\"text-align: left;\">Amici di InAmbienTe, continuo questa mia divulgazione didattica condividendo con voi i miei appunti del corso di &#8220;Programmazione Agile&#8221; tenutosi il 1 e 2 Luglio 2015 presso la sede dell&#8217;Ordine degli Ingegneri di Napoli. Un interessante corso che sviluppa praticamente i punti dell&#8217;ormai famoso <a href=\"http:\/\/agilemanifesto.org\/iso\/it\/\" target=\"_blank\">Manifesto Agile<\/a>, che ha visto come protagonisti l&#8217;Ing. Porfirio Tramontana, Ricercatore di sistemi di elaborazione delle informazioni presso la Federico II e il Dott. Ing. Antimo Angelino Vice Coordinatore Commissione Informatica.<!--more--><\/p>\n<p style=\"text-align: left;\">Di seguito gli appunti:<\/p>\n<blockquote>\n<div>\n<p>Prof.\u00a0 Tramontano docente Federico II ingegneria del software<\/p>\n<div><\/div>\n<p>Sviluppo Agile: metaprocesso<\/p>\n<p><strong>La programmazione software &#8220;classicca&#8221;<\/strong><\/p>\n<\/div>\n<ul>\n<li>Molti progetti software falliscono<\/li>\n<li>Si parte dagli anni 2000<\/li>\n<li>Millennium\u00a0 Bug<\/li>\n<li>Se il processo \u00e8 ad alta qualit\u00e0 il software \u00e8 ad alta qualit\u00e0<\/li>\n<li>Ci\u00f2 ha portato ad una tale rigidit\u00e0 che si ripercuote sul software stesso quindi spessissimo fallisce.<\/li>\n<li>Lo standard mi permette di stimare bene i costi e l&#8217;affidabilit\u00e0 ma \u00e8 pericoloso<\/li>\n<li>Waterfall model<\/li>\n<li>Spesso siamo costretti a mettere una pezza\u00a0 (challenging)<\/li>\n<li>\u00c8 l&#8217;opposto dell&#8217;agile<\/li>\n<li>\u00c8 la pi\u00f9 rischiosa<\/li>\n<li>Va bene per le grandi aziende<\/li>\n<\/ul>\n<div><strong>Ciclo a cascata con validazione continua<\/strong><\/div>\n<div><\/div>\n<ul>\n<li>Verificare: il software deve dare il risultato corretto<\/li>\n<li>Validare: deve fare quello richiesto dal cliente<\/li>\n<li>Se ci sono problemi torniamo indietro di una fase<\/li>\n<\/ul>\n<div><strong>RUP<\/strong><\/div>\n<div><\/div>\n<ul>\n<li>\u00c8 un processo molto preciso<\/li>\n<li>Minimizza i rischi di un fallimento<\/li>\n<li>\u00c8 iterativo: rilasciamo spesso qualcosa da mostrare al cliente<\/li>\n<li>Iper burocratizzazione<\/li>\n<\/ul>\n<div><strong>Metodi Agili<\/strong><\/div>\n<div><\/div>\n<ul>\n<li>Non garantiscono la qualit\u00e0<\/li>\n<li>Va bene per piccoli software<\/li>\n<li>Ad esempio software innovativi per i quali non conosciamo bene le caratteristiche<\/li>\n<li>Sviluppo di app<\/li>\n<li>Manifesto Agile<\/li>\n<li>Kent Beck<\/li>\n<li>Prima gli individui poi i tool.<\/li>\n<li>Non ci serve troppa standardizzazione<\/li>\n<li>Abbiamo il problema di non avere traccia di quanto DETTO tra le controparti. Non avendo una relazione approfondita<\/li>\n<li>Riduce i rischi di validazione<\/li>\n<li>Il software viene prima della documentazione<\/li>\n<li>Il problema \u00e8 che la documentazione \u00e8 importante per la manutenzione futura.<\/li>\n<li>Prima la collaborazione con il cliente che i contratti. Il cliente deve lavorare insieme agli sviluppatori: il prezzo si stabilisce a prodotto finito.<\/li>\n<li>Deve seguire i cambiamenti e non un piano preciso<\/li>\n<li>\u00c8 inutile fare pianificazioni a lunghissimo tempo perch\u00e9 saremo sempre smentiti. Quindi Agile dice:non pianifichiamo proprio.<\/li>\n<li>Qualsiasi cosa facciamo dobbiamo valutare se l&#8217;abbiamo fatta bene<\/li>\n<li>Rapida, incrementale consegna del software<\/li>\n<li>Processo agile<\/li>\n<li>Story Card: ci scriviamo gli scenari. Deve essere piccolo. Non vogliamo affrontare troppe cose in un colpo solo. Cerchiamo di affrontare il problema un po alla volta.<\/li>\n<li>Mettiamo in salvo le piccole cose<\/li>\n<li>Ho prodotti con scarsa qualit\u00e0<\/li>\n<li>Massimo orizzonte temporale: 2 settimane-3 mesi<\/li>\n<li>Funziona molto bene in ambienti non distribuiti. Idealmente sono affiatati e lavorano nella stessa stanza.<\/li>\n<li>Gruppi piccoli e tempo limitato<\/li>\n<li>Ci sono molti che hanno cercato di sviluppare i principi Agili<\/li>\n<\/ul>\n<div><strong>Principi<\/strong>:<\/div>\n<ul>\n<li>Il cliente partecipa attivamente<\/li>\n<li>Definisce le priorit\u00e0 perch\u00e9 metto in conto di non riuscire a finire il progetto<\/li>\n<li>Consegna incrementale<\/li>\n<li>Lo devo evitare se devo fare software di altissima qualit\u00e0<\/li>\n<li>Le persone devono fare i processi<\/li>\n<li>Devo limitate al massimo le imposizioni<\/li>\n<li>Accettiamo i cambiamenti<\/li>\n<li>DOBBIAMO ESSERE SEMPLICI: il software lo devono capire tutti e deve essere semplice da modificare<\/li>\n<li>Per Agile il software DEVE FUNZIONARE, per gli schemi classici deve essere QUALITATIVAMENTE VALIDO<\/li>\n<\/ul>\n<div><strong>Agilit\u00e0 e Modellazione<\/strong><\/div>\n<div><\/div>\n<ul>\n<li>Modellazione: \u00e8 un gradino oltre la progettazione. Serve ad individuare gli attori e stiamo gi\u00e0 pensando in dettaglio al problema.<\/li>\n<li>Modello dei casi d&#8217;uso<\/li>\n<li>Modello concettuale<\/li>\n<li>Nel modello NON DEVE ESSERCI LA SOLUZIONE<\/li>\n<li>Nell&#8217;agile c&#8217;\u00e8 il rischio di non fare la modellazione perch\u00e9 non ci interessa conoscere interamente il problema<\/li>\n<li>Spesso il cliente non riesce a spiegarci bene qual \u00e8 il problema<\/li>\n<\/ul>\n<div><strong>Processo<\/strong>:<\/div>\n<div><\/div>\n<ul>\n<li>Identifichiamo le funzionalit\u00e0 che vogliamo rilasciare<\/li>\n<li>L&#8217;interazione va da 2 a 13 settimane: sviluppo e testo insieme al cliente<\/li>\n<li>Quando finisce l&#8217;interazione lo diamo al cliente finale e lo supportiamo<\/li>\n<li>Nel caso in cui c&#8217;\u00e8 bisogno di fare delle modifiche bisogna capire se interrompere il progetto o prendere una risorsa e dedicata alle modifiche<\/li>\n<li>Quando definisco un requisito devo anche definire le metodologie di verifica<\/li>\n<li>Man mano che si sviluppa si scrivono i test<\/li>\n<li>Conviene fare test automatico:<\/li>\n<\/ul>\n<ol>\n<li>Scrittura<\/li>\n<li>Esecuzione<\/li>\n<li>Risultati<\/li>\n<\/ol>\n<ul>\n<li>Per gestire al meglio i test utilizzo Junit\u00a0 (un framework con classi e metodi)<\/li>\n<li>Nel sistema agile il testing dovrebbe essere pi\u00f9 semplice<\/li>\n<li>Con Junit posso rendere automatico anche la gestione dei risultati<\/li>\n<li>Dobbiamo fare test continui non accumulare troppo da testare. NON SI SALTANO I TEST<\/li>\n<li>Sarebbe opportuno che i test li faccia chi non ha creato la funzione<\/li>\n<li>Nell&#8217;agile si propone di alternare sviluppatori e testing<\/li>\n<li>TDD: prima scriviamo il test poi facciamo il programma<\/li>\n<li>Il test di sistema lo faccio da solo<\/li>\n<li>Il test di accettazione lo faccio con il cliente<\/li>\n<li>Ogni volta che aggiungiamo un pezzo rifacciamo tutti i test. Se sono automatici non abbiamo problemi. Magari li facciamo fare di notte.<\/li>\n<li>Junit \u00e8 punto fondante della metodologia Agile<\/li>\n<\/ul>\n<div><strong>VANTAGGI<\/strong><\/div>\n<div><\/div>\n<ul>\n<li>So quando posso consegnare il pezzetto<\/li>\n<li>Con pagamenti giorno per giorno ho una migliore monetizzazione<\/li>\n<li>Si evolve working progress<\/li>\n<li>Testiamo in continuazione<\/li>\n<li>Il cliente \u00e8 soddisfatto<\/li>\n<\/ul>\n<div><strong>EXTREME PROGRAMMING (XP)<\/strong><\/div>\n<div><\/div>\n<ul>\n<li>\u00c8 la prima metodologia 1999<\/li>\n<li>Concetto di storie: il cliente mi dice cosa vuole<\/li>\n<li>Creo degli scenari (requisiti) non ambigui, verificabili, coerenti e completi le ultime due sono spesso trascurate<\/li>\n<li>Se modifico qualcosa se ne creava una nuova versione di questo qualcosa. Inoltre faccio il test di queste versioni (controllo di versione)<\/li>\n<li>Si fonda su strumenti ben precisi come Junit<\/li>\n<li>Ho rilasci molto frequenti. Massimo un mese<\/li>\n<\/ul>\n<div><strong>PRATICHE XP<\/strong><\/div>\n<div><\/div>\n<ol>\n<li>Pianificazione: la facciamo tutti insieme sotto forma di GAME. Deve durare poco.<\/li>\n<li>Small releases: piccoli rilasci quindi riesco meglio a gestire tutto<\/li>\n<li>Metaphor: tutti devono sapere tutto dei progetti. Anche i nomi delle variabili e dei metodi devono essere comprensibili a tutti. Magari con metafore.<\/li>\n<li>Simple Design: la semplicit\u00e0 porta facilit\u00e0 di gestione ma sono di bassa qualit\u00e0. (Design Pattern)<\/li>\n<li>Testing: mai evitare ed automatizzare<\/li>\n<li>Refactoring: modifiche al codice del programma per migliorare la qualit\u00e0. Questo perch\u00e9 il codice di XP \u00e8 gi\u00e0 di scarsa qualit\u00e0. Ce lo dobbiamo imporre<\/li>\n<li>Pair programming: programmazione a coppia. Si controllano a vicenda.<\/li>\n<li>Collective ownership: tutti devono sapere tutto.<\/li>\n<\/ol>\n<\/blockquote>\n<p><a href=\"http:\/\/www.inambiente.it\/wp-content\/uploads\/2015\/07\/Programmazione-Agile1.pdf\">Scarica il file degli appunti il formato PDF &#8211; Programmazione Agile 1<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Amici di InAmbienTe, continuo questa mia divulgazione didattica condividendo con voi i miei appunti del corso di &#8220;Programmazione Agile&#8221; tenutosi il 1 e 2 Luglio 2015 presso la sede dell&#8217;Ordine degli Ingegneri di Napoli. Un interessante corso che sviluppa praticamente i punti dell&#8217;ormai famoso Manifesto Agile, che ha visto come protagonisti l&#8217;Ing. Porfirio Tramontana, Ricercatore [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_links_to":"","_links_to_target":""},"categories":[1],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v15.1.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\r\n<meta name=\"description\" content=\"&quot;Programmazione Agile&quot;, corso tenutosi presso la sede dell&#039;Ordine degli Ingegneri di Napoli. l&#039;Ing. Porfirio Tramontana, Dott. Ing. Antimo Angelino\" \/>\r\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\r\n<link rel=\"canonical\" href=\"https:\/\/www.inambiente.it\/index.php\/2015\/07\/programmazione-agile-i-miei-appunti-del-corso-tenutosi-allordine-degli-ingegneri-di-napoli-prima-parte\/\" \/>\r\n<meta property=\"og:locale\" content=\"it_IT\" \/>\r\n<meta property=\"og:type\" content=\"article\" \/>\r\n<meta property=\"og:title\" content=\"Programmazione Agile: Prima Parte.\" \/>\r\n<meta property=\"og:description\" content=\"&quot;Programmazione Agile&quot;, corso tenutosi presso la sede dell&#039;Ordine degli Ingegneri di Napoli. l&#039;Ing. Porfirio Tramontana, Dott. Ing. Antimo Angelino\" \/>\r\n<meta property=\"og:url\" content=\"https:\/\/www.inambiente.it\/index.php\/2015\/07\/programmazione-agile-i-miei-appunti-del-corso-tenutosi-allordine-degli-ingegneri-di-napoli-prima-parte\/\" \/>\r\n<meta property=\"og:site_name\" content=\"InAmbienTe\" \/>\r\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/inambiente\" \/>\r\n<meta property=\"article:published_time\" content=\"2015-07-11T13:26:13+00:00\" \/>\r\n<meta property=\"article:modified_time\" content=\"2015-07-11T13:36:13+00:00\" \/>\r\n<meta property=\"og:image\" content=\"http:\/\/www.inambiente.it\/wp-content\/uploads\/2015\/07\/agile-300x225.jpg\" \/>\r\n<meta name=\"twitter:card\" content=\"summary\" \/>\r\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.inambiente.it\/#website\",\"url\":\"https:\/\/www.inambiente.it\/\",\"name\":\"InAmbienTe\",\"description\":\"Il Portale degli Studenti di Ingegneria\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/www.inambiente.it\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"it-IT\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.inambiente.it\/index.php\/2015\/07\/programmazione-agile-i-miei-appunti-del-corso-tenutosi-allordine-degli-ingegneri-di-napoli-prima-parte\/#primaryimage\",\"inLanguage\":\"it-IT\",\"url\":\"http:\/\/www.inambiente.it\/wp-content\/uploads\/2015\/07\/agile-300x225.jpg\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.inambiente.it\/index.php\/2015\/07\/programmazione-agile-i-miei-appunti-del-corso-tenutosi-allordine-degli-ingegneri-di-napoli-prima-parte\/#webpage\",\"url\":\"https:\/\/www.inambiente.it\/index.php\/2015\/07\/programmazione-agile-i-miei-appunti-del-corso-tenutosi-allordine-degli-ingegneri-di-napoli-prima-parte\/\",\"name\":\"Programmazione Agile: Prima Parte.\",\"isPartOf\":{\"@id\":\"https:\/\/www.inambiente.it\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.inambiente.it\/index.php\/2015\/07\/programmazione-agile-i-miei-appunti-del-corso-tenutosi-allordine-degli-ingegneri-di-napoli-prima-parte\/#primaryimage\"},\"datePublished\":\"2015-07-11T13:26:13+00:00\",\"dateModified\":\"2015-07-11T13:36:13+00:00\",\"author\":{\"@id\":\"https:\/\/www.inambiente.it\/#\/schema\/person\/5518ecc20e8869b76680d825685acee9\"},\"description\":\"\\\"Programmazione Agile\\\", corso tenutosi presso la sede dell'Ordine degli Ingegneri di Napoli. l'Ing. Porfirio Tramontana, Dott. Ing. Antimo Angelino\",\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.inambiente.it\/index.php\/2015\/07\/programmazione-agile-i-miei-appunti-del-corso-tenutosi-allordine-degli-ingegneri-di-napoli-prima-parte\/\"]}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.inambiente.it\/#\/schema\/person\/5518ecc20e8869b76680d825685acee9\",\"name\":\"Domenico Di Nardo\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.inambiente.it\/#personlogo\",\"inLanguage\":\"it-IT\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/aabcf4979f8cee415e34471172295b9c?s=96&d=mm&r=g\",\"caption\":\"Domenico Di Nardo\"},\"sameAs\":[\"http:\/\/www.inambiente.it\"]}]}<\/script>\r\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"https:\/\/www.inambiente.it\/index.php\/wp-json\/wp\/v2\/posts\/1295"}],"collection":[{"href":"https:\/\/www.inambiente.it\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.inambiente.it\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.inambiente.it\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.inambiente.it\/index.php\/wp-json\/wp\/v2\/comments?post=1295"}],"version-history":[{"count":4,"href":"https:\/\/www.inambiente.it\/index.php\/wp-json\/wp\/v2\/posts\/1295\/revisions"}],"predecessor-version":[{"id":1301,"href":"https:\/\/www.inambiente.it\/index.php\/wp-json\/wp\/v2\/posts\/1295\/revisions\/1301"}],"wp:attachment":[{"href":"https:\/\/www.inambiente.it\/index.php\/wp-json\/wp\/v2\/media?parent=1295"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.inambiente.it\/index.php\/wp-json\/wp\/v2\/categories?post=1295"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.inambiente.it\/index.php\/wp-json\/wp\/v2\/tags?post=1295"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}