Sessions at Better Software 2011 with slides

Your current filters are…

Monday 27th June 2011

  • Come invecchiare in un giorno per colpa di Amazon pur essendo Lean

    by Nicola Junior Vitto

    21 aprile: una mattina di intenso lavoro come tante altre, un po' particolare perché condita dall'attesa di un servizio al TG1 del pranzo sulla nostra startup. Ad un certo punto, il panico: il servizio di monitoring inizia a segnalare che il sito è down. Perchè mai? Nessuno ha deployato nulla, non può esserci un problema software. Sarà il nostro servizio di cloud computing? Strano ma possibile...invece è tutto ok.

    Sarà un problema proprio sulla cloud di Amazon? Molto difficile, non ci sono mai stati problemi strutturali di questo genere. E invece si, era proprio quello e insieme a noi hanno subìto uno dei down più lunghi degli ultimi tempi anche Foursquare, Quora, Reddit e tanti altri servizi web.

    In una startup bisogna fare i conti con budget ridotti senza compromettere la qualità del servizio offerto agli utenti. Questo è possibile e i sistemi di cloud computing hanno permesso di offrire servizi che altrimenti sarebbero stati troppo costosi o addirittura impossibili.

    Quello che è successo il 21 aprile è solo un episodio che servirà a consolidare maggiormente la solidità di queste infrastrutture che, tra l'altro, hanno permesso di applicare alcuni princìpi della Lean Startup - termine coniato da Eric Ries e presentato nel suo ormai noto blog Lessons Learned - anche alle parti infrastrutturali dei servizi Internet.

    La Lean Startup nasce dal customer development model (teoria originata da Steve Blank nel 2006 attraverso il suo libro The Four Steps to the Epiphany) e ne trae spunto per estenderne alcuni concetti al fine di realizzare una startup Internet ovvero: spendere poco (soprattutto nella fase iniziale), fare largo uso di pratiche Agile, di software Open Source, di sistemi di cloud computing etc., sviluppando prodotti software decisamente basati sui bisogni “essenziali” degli utenti (Minimum Viable Product) e procedendo con un percorso iterativo che permetta di tornare sui propri passi ed imparare dagli errori commessi.

    At 9:00am to 10:00am, Monday 27th June

    Coverage slide deck

  • Node.js - Convincing the boss

    by Claudio Cicali

    In ambito sviluppo software web è chiaro a tutti come il linguaggio JavaScript stia diventando sempre più importante. Se è vero che non c'è niente da dimostrare riguardo alla validità e all'importanza del suo utilizzo lato frontend, la nascita di nuovi sistemi come Node.js rende questo linguaggio e le tecnologie intorno ad esse correlate, un'interessante alternativa per le sfide delle applicazioni web del prossimo futuro. Dunque bentornato SSJS!. Ma cos'è davvero Node.js? Quando può essermi davvero utile e quando invece rischio di mettere in casa un mostro poco gestibile? In questo talk faremo una carrellata ad alto livello sugli aspetti peculiari di questa tecnologia lato server, quali sono i punti di forza e quali le sue debolezze. Quali sono i casi d'uso migliori e peggiori.

    At 9:00am to 9:30am, Monday 27th June

  • Gamification Patterns

    by Federico Feroldi

    Il settore del game design si è focalizzato, negli ultimi 10 anni, sul perfezionamento dell'arte di progettare videogiochi che creano "dipendenza" nel giocatore. Recentemente, aziende più tradizionali hanno iniziato a sperimentare l'integrazione di alcune dinamiche di gioco all'interno dei propri siti web per incrementare la fedeltà dei propri utenti. Tecniche come l'utilizzo di classifiche che incoraggiano gli utenti a competere gli uni contro gli altri per guadagnare punti stanno diventando sempre più popolari sul web. Chi seguirà questa talk riceverà un'introduzione al mondo della gamificazione applicata al business attraverso una panoramica delle principali strategie illustrate da esempi presi dal mondo reale.

    At 9:30am to 10:15am, Monday 27th June

  • HTML5 Audio and Video - Lessons from the Trenches

    by Mark Boas

    Although many developers are eager to use HTML5 based media, creating comprehensive cross-browser solutions can often be a daunting, bewildering and ultimately frustrating experience. In this talk we hear first hand from the co-creator of jPlayer, the advantages of using HTML5 media - how to select appropriate codecs, formats, resolutions for your media and generally avoid any pitfalls. We'll also consider browser limitations, inconsistencies and fallbacks. Finally we'll take a look at software, services and libraries that can ease the pain on the journey to media nirvana.

    At 12:30pm to 1:00pm, Monday 27th June

    Coverage slide deck

  • Realtà aumentata e network geolocalizzati. Arricchire l’esperienza utente integrando atomi e bit

    by Luca Rosati, Andrea Resmini and francescafabbri

    Quante volte ci siamo smarriti in un ospedale cercando un ambulatorio?Quante volte ci sarebbe piaciuto visitare una città potendo scegliere un tema specifico? Per questi problemi sono state fornite nel tempo varie soluzioni, ma che succederebbe se oggetti e luoghi potessero parlare?

    Fuoriuscito dallo spazio ristretto dello schermo, il web si sta diffondendo in un insieme sempre più ampio di oggetti quotidiani: la compenetrazione tra atomi e bit (augmented reality) permette un'interazione arricchita con l'ambiente che ci circonda.

    Attraverso un caso studio relativo alla città di Bologna, mostrerò come sia possibile progettare esperienze aumentate sfruttando social network georeferenziati - nella fattispecie Foursquare.

    Per esperienze aumentate intendo:
    - ricevere o costruire percorsi su misura (ad es. guide tematiche alla città, tour enogastronomici, itinerari in base al tempo disponibile);
    - ottenere approfondimenti su luoghi, edifici, monumenti, ricevere suggerimenti su misura (es. se ti interessa x allora ti può interessare anche...; altri edifici dello stesso stile o artista o appartenenti allo stesso percorso tematico ecc.).

    In questa prospettiva, Foursquare fornisce un framework già pronto all'uso per costruire un ecosistema fisico-digitale, con indubbi vantaggi: molte persone sono già presenti nel social network non occorrono dispositivi o applicazioni ad hoc (se non il proprio telefono) bassi costi (quelli della personalizzazione di una piattaforma gratuita già esistente).

    At 12:30pm to 1:15pm, Monday 27th June

    Coverage slide deck

  • Design is (ir)relevant

    by Francesco Improta

    Se il "content" fa la parte del Re, il design è relegato ad un ruolo di mera sudditanza? Possiamo scegliere modalità differenti di accesso ai contenuti disponibili in rete ma sempre più spesso accade che la forma assume scarsa rilevanza. È per tale ragione che, attraverso l'analisi di concetti come "Goal-directed design" e metodi quali il "Responsive web design", si cercherà di restituire al design un ruolo di centralità e di dimostrare che non è (ir)relevant, come sembra suggerire provocatoriamente il titolo.

    At 1:00pm to 1:30pm, Monday 27th June

    Coverage slide deck

  • Guerrilla web project management

    by Antonio Volpon

    I tempi di sviluppo sempre più aggressivi, i budget risicati, l'evoluzione tecnologica e la mancanza di risorse rischiano di penalizzare il lavoro del web project manager, relegandolo a un ruolo marginale. Come deve cambiare il web project management per sopravvivere e migliorare? Consigli e visioni "from the trenches".

    At 1:15pm to 1:30pm, Monday 27th June

  • Storytelling for software marketing

    by Pietro Polsinelli

    In questo workshop interattivo affronteremo alcuni aspetti del marketing per startup software utilizzando strumenti di storytelling.

    Il workshop di due ore sarà diviso in tre parti:
    (a) presentazione di tecniche di storytelling con esempi di promozione di startup
    (b) scrittura di brevi testi promozionali da parte dei partecipanti (saranno distribuite schede di aiuto)
    (c) discussione delle storie prodotte (anche di quelle inviate prima del workshop)

    Non assumeremo alcuna competenza di marketing nei partecipanti; faremo però estesamente riferimento a scritti in inglese.

    Sarebbe utile avere i vostri testi prima del workshop. Quindi inviateci:
    1. una descrizione funzionale del prodotto / idea / servizio che intendete produrre
    2. un vostro tentativo di presentare non tecnicamente quanto al punto 1 in meno di 100 parole.

    I testi possono essere in italiano e/o in Inglese e devono essere inviati a:
    - startup@bettersoftware.it

    Un libro in italiano a cui faremo riferimento è "Story Selling" di Andrea Fontana (Etas Libri 2010).

    At 2:00pm to 4:00pm, Monday 27th June

  • Your browser, your database

    by Francesco Fullone

    Applicazioni complesse necessitano una base dati persistente che memorizzino e permetta di ricercare e comporre dati, fino ad oggi questo compito è stato delegato a database server presenti sulle macchine su cui girano le applicazioni stesse limitandone però l'uso offline. Con HTML5 viene introdotto il concetto di Web Databases. I Web Databases non necessitano un server esterno e rimangono all'interno del browser dell'utente che fa girare l'applicazione potendo, quest'ultima, funzionare sia online che offline.

    At 2:30pm to 3:00pm, Monday 27th June

    Coverage slide deck

  • Lean UX: design di valore evitando gli sprechi

    by Alberto Mucignat

    È possibile realizzare un prodotto digitale limitando gli sprechi e lavorando efficacemente su design e sviluppo? Un approccio lean alla user experience prevede alcune fasi successive alla definizione del prodotto, che avvengono ciclicamente:

    1. Prototipazione evolutiva
    2. Test con gli utenti/clienti
    3. Introduzione dei cambiamenti.

    Durante il talk verranno analizzate le fasi dal punto di vista del design, cercando di spiegare come si può passare dal design allo sviluppo e viceversa. In particolare, verrà analizzato l’aspetto dell’introduzione dei cambiamenti che avvengono nell’interfaccia:

    • come spiegare all’utente i cambiamenti in maniera efficace?
    • come si può evitare il feedback negativo?
    • come si può modificare l’interfaccia per indurre un cambiamento nel comportamento degli utenti?

    Qualche anno dopo i temi legati all’agile UX, l’idea di cercare l’eliminazione degli sprechi e il valore del prodotto finale si è fatta strada anche nel mondo del design e può aiutarci anche a impostare efficacemente la fase di sviluppo.

    At 3:00pm to 3:45pm, Monday 27th June

    Coverage slide deck

  • Evolutive user experience design

    by Luca Mascaro

    Le attuali metodologie di User centered design e Agile design permettono la progettazione e la realizzazione di prodotti e servizi digitali di ottima qualità garantendo un controllo sul processo di sviluppo, contemporaneamente però risultano troppo lente o troppo poco focalizzate per realizzare esperienze digitali che si adattino alle trasformazioni del mercato e dei bisogni degli utenti nel tempo.
    Questi approcci si concentrano sul rilascio di una prima versione del prodotto o del servizio, trascurando le potenzialità che quello stesso prodotto potrebbe avere se valorizzato nel tempo. Oggi i prodotti e i servizi digitali di successo sono quelli che riescono ad evolvere costantemente l'esperienza offerta nei confronti dell'utilizzatore finale. Si rende dunque necessario riadattare le metodologie tradizionali di progettazione sviluppate nel mondo del design industriale verso nuove forme di processo più costanti ed efficaci. La User experience evolutiva è un nuovo processo di progettazione per sviluppare prodotti e servizi digitali che reinterpreta le attuali metodologie e si focalizza maggiormente sull'evoluzione dell'esperienza d'uso che punta a migliorare nel tempo il prodotto a cui si applica. La proposta di questo processo consiste nel trovare un equilibrio virtuoso tra successo ed efficacia e si concentra sulla possibilità di migliorare quest'ultimo in base alle esigenze degli utenti, sull'attenta verifica dell'efficacia del prodotto o del servizio dopo il suo primo rilascio e sulla sua evoluzione nel tempo al fine di valorizzarne al massimo grado le potenzialità.

    At 3:45pm to 4:30pm, Monday 27th June

    Coverage slide deck

  • Il web intelligente

    by Davide Cerbo

    Sono passati decine di anni dai primi siti web composti solo da testo, immagini e link. Ora gli utenti pretendono di più volendo fare di meno. Desiderano che il tuo sito web capisca i loro gusti, fornisca approfondimenti, si modifichi in base alle loro esigenze. Durante questo intervento verranno forniti consigli su quali tecniche e servizi di text analysis, collective intelligence e semantic web possono rendere il nostro sito web intelligente.

    At 5:00pm to 5:45pm, Monday 27th June

    Coverage slide deck

  • Quando il software si fa amare

    by Marco Botton

    Ogni tanto scopriamo un software, un prodotto, un qualcosa che ci colpisce e ci attrae, facendoci "innamorare". Ma come si può creare un software che faccia innamorare chi lo usa? Il punto di vista di Marco Botton, Super-duper coder di Balsamiq, nonché innamorato perenne.

    At 5:00pm to 5:45pm, Monday 27th June

    Coverage slide deck

  • Selenium for WebDesigners

    by Fabio Fabbrucci

    E' più facile fare bene cose complesse, che fare bene cose semplici. Fare css viene dato per scontato: "Si, si, poi facciamo il css...".

    Ma quante volte avete avuto problemi nel manutenere il css? Quante volte è stato difficile individuare un errore, o evitare di generarne a cascata?

    Questo talk si propone di presentare come utilizzare Selenium all'interno di un team multidisciplinare, focalizzandosi sulla figura del webdesigner, ma soprattutto vedere come essere certi, attraverso strumenti di controllo, che le nostre modifiche siano contenuto a ciò che volevamo.

    Aiutiamo i nostri webdesigner a crescere.

    At 5:45pm to 6:15pm, Monday 27th June

    Coverage slide deck

Tuesday 28th June 2011

  • How (fr)agile you are. Metriche più o meno efficaci per misurare team, progetti e processi Agili

    by Gaetano Mazzanti

    Rovesciamo un luogo comune: più che ai manager, le metriche sono utili ai team. Questo è ancora più vero in un contesto Agile. Agile implica sapere cambiare rapidamente, sia i progetti che il processo, e creare valore in modo rapido e continuo. Siamo in grado di misurare tutto questo ? Siamo veramente agili o stiamo solo usando una serie di "rituali" privi di sostanza ? Servono metriche che misurino la nostra agilità e metriche che misurino la nostra efficacia. Ne servono di nuove, senza tuttavia rinunciare ad alcune metriche tradizionali comunque utili. Alcuni esempi da casi reali.

    Warning:
    - non tutto ciò che è misurabile è importante e viceversa
    - le metriche possono ingannare e possono essere ingannate

    Agile è anche trasparenza, meglio rimuovere ogni remora e paura: misuriamo e rendiamo evidente quanto facciamo. Solo così è possibile migliorare in modo continuo.

    Nota: a differenza di quello presentato all'Italian Agile Day 2010 questo intervento non è inteso come una panoramica introduttiva alla misurazione dei progetti e processi software. Vuole essere più concreto e presentare metriche specifiche usate in casi reali, sottolineandone aspetti positivi e non.

    At 9:00am to 9:45am, Tuesday 28th June

    Coverage slide deck

  • Codice Legacy, usciamo dal pantano!

    by Stefano Leli and Antonio Carpentieri

    Avete mai provato la sensazione di essere immersi in una melma di codice putrido e maleodorante e di non riuscire a venirne fuori nonostante tutti i vostri sforzi?

    In questo workshop cercheremo proprio di simulare questo scenario proponendovi un esempio di progetto mal scritto e che sarete chiamati in prima persona a rifattorizzare.

    Con l'aiuto di due coach vi faremo capire come riconoscere il codice che ha bisogno di essere migliorato, ed applicando i solid principles verrete guidati verso un buon design in grado di portarvi in acque più sicure e pulite.

    Regole del gioco
    - Massimo 24 partecipanti
    - Il linguaggio scelto per il workshop è Java.
    - Per la partecipazione si necessità di una propria macchina con installato l'IDE di sviluppo e il progetto (Eclipse) che varrà inviato qualche giorno prima dell'evento.
    - L'esercizio di refactoring sarà svolto in pair programming. Le coppie verrano formate al momento.

    At 9:45am to 11:00am, Tuesday 28th June

    Coverage slide deck

  • Pianificazione, pattern e antipattern

    by Matteo Vaccari

    Vorrei raccontare di come si applica la pianificazione Agile a progetti di medie dimensioni (per intenderci parlo di progetti stimati in 4-8 anni persona). XP ci spiega come fare pianificazione; ma siamo sicuri di avere capito bene come funziona? E siamo sicuri che la pianificazione di XP esaurisca tutto quello che serve sapere? Vorrei raccontare di alcuni comuni fraintendimenti a proposito di Release Planning, di Planning Game e soprattutto di User Story. Per quello che vedo io, spesso si dà troppa importanza ai requisiti funzionali e troppo poca ai requisiti cosiddetti "non funzionali". Questi ultimi si possono specificare con precisione e possono essere la chiave per evitare di confondere "requisiti" con "design". Un esempio di questa confusione si vede quando si pretende che sia il cliente a "progettare" l'applicazione, cosa che non gli compete e che dovrebbe essere responsabilità degli sviluppatori. Quello che vi racconto nasce dalla mia esperienza e da quello che ho imparato a mie spese...

    At 10:30am to 11:00am, Tuesday 28th June

  • Alcuni consigli per lo sviluppo e il marketing di una applicazione Android

    by Fabio Collini

    Grazie all'Android Market anche uno sviluppatore o un piccolo team può arrivare a distribuire una applicazione a due milioni di utenti (il numero non è casuale!).

    Nel talk vedremo vari aspetti legati allo sviluppo e soprattutto alla distribuzione di una applicazione mobile partendo dalla mia esperienza su Android.

    Da Agosto 2009 sviluppo sul sistema operativo Android: quella che era solo una mia passione personale è diventata piano piano un progetto a tutto tondo.

    Attualmente ho due applicazioni a disposizione nell'Android Market: Apps Organizer e Folder Organizer. La versione full di Folder Organizer è nelle prime posizioni fra le applicazioni a pagamento nel market italiano.
    Partendo da statistiche, considerazioni su successi ed errori commessi derivate dalla mia esperienza vedremo come sviluppare una applicazione per tutti i dispositivi Android (tablet compresi) e come sfruttare al meglio i vari canali di distribuzione pur non avendo un ufficio marketing.

    At 11:30am to 12:15pm, Tuesday 28th June

    Coverage slide deck

  • Overcoming Self-organization Blocks

    by Andrea Provaglio

    L’auto-organizzazione dei team è una caratteristica essenziale ed imprescindibile del mondo Agile, e che ha un suo valore anche in gruppi di sviluppo non Agile. Sappiamo che auto-organizzarsi è un fattore chiave per qualunque team di successo, e sappiamo che questo richiede fiducia, rispetto, disponibilità e responsabilità. Dunque, perché per molti team è così difficile raggiungere questo risultato? L’auto-organizzazione altera le dinamiche manager/team e all’interno dei team stessi, con possibili resistenze. La causa si trova spesso in varie abitudini mentali e comportamentali, quali: trovarsi in una cultura latente di colpevolezza; confondere guida e comando; paura di assumersi responsabilità o di perdere status; tratti collettivi. Questa sessione propone dei casi reali, vissuti dal relatore nella sua attività di coach per trasformazioni Agile, per illustrare alcune dinamiche che bloccano l’auto-organizzazione, le loro cause e quali sono i possibili rimedi. Il pubblico viene direttamente coinvolto in alcune attività che rendano più chiari e personali i temi trattati. Per chi è interessato a migliorare il modo in cui proprio team lavora, questa sessione fornisce spunti nuovi e moderni.

    At 12:15pm to 1:00pm, Tuesday 28th June

    Coverage slide deck

  • Le "Code Review", queste sconosciute

    by Alex Martelli

    Come garantire che tutto il codice prodotto da una squadra di sviluppatori e` corretto, efficiente, leggibile, ben testato, ben documentato, privo d'errori? Come assicurarsi che tutta la squadra e` familiare con ogni aspetto del codice (cosi` che l'improvvisa assenza di uno o due membri della squadra non puo` bloccare il progetto perche` sono gli unici a conoscere certe parti del codice)? L'uso corretto delle code review puo` sicuramente aiutare a perseguire tutti questi ambiziosi e validi obbiettivi. Non e` un tema controverso: in teoria, tutti amano e onorano le code review... e allora perche` tanti sviluppatori le odiano, e sono spesso usate solo "ritualmente", se non addirittura completamente evitate? Risposta: perche` piu` spesso che no non sono fatte nel modo giusto. Troppa enfasi su quali strumenti usare per portarle a termine, ignoranza delle trappole e trabocchetti che aspettano l'ignaro al varco, ignoranza delle "best practices" del settore. Le code review, per essere produttive, devono allinearsi con ogni altro aspetto del progetto: aspetti tecnici, certo (ma paradossalmente sono i meno cruciali!), ma soprattutto aspetti relativi alle persone, alla comunita`, al business model. Questo talk introduce questo cruciale strumento per lo sviluppo di software, toccandone le basi e offrendo vari esempi e consigli, sia generali, sia specifici.

    At 2:00pm to 2:45pm, Tuesday 28th June

    Coverage slide deck

  • Please, don't touch… the mobile parts!

    by Francesco Fullone and Federico Galassi

    Sviluppare siti che siano veloci è importante, ma lo è ancora di più se la fruizione degli stessi avviene tramite dispositivi mobile dove le tecniche di caching assumono un nuovo connotato.

    Questo breve talk aggiungerà lo stack "mobile" al precedente presentato a BetterSoftware nel 2010 completandone la visione ad un più alto livello:
    http://www.bettersoftware.it/con...

    At 2:00pm to 2:45pm, Tuesday 28th June

    Coverage slide deck

  • Tutto il testing possibile su Android

    by Alfredo Morresi

    Purtroppo nella programmazione per mobile di oggi si trova molto codice quick e dirty. Nella sessione verranno proposte delle tecniche per combattere questa brutta tendenza su piattaforma Android. Partiremo da come impostare un sviluppo TDD, passeremo alla scrittura di test di integrazione che, tra le altre cose, registrano l'input dell'utente e lo rieseguono in modo automatico per verificare interi workflow senza la presenza del QA. Il tutto condito da librerie di mock, script e tool per automatizzare il puo' possibile ogni passaggio.

    At 2:45pm to 3:15pm, Tuesday 28th June

  • Flash Platform su dispositivi mobili

    by lucamezzalira

    Adobe AIR 2.5 è presente su oltre 84 milioni di dispositivi mobili a livello mondiale; 50 tablet di diversi manufacturers usciranno con Flash Player 10.1 installato e compatibili con AIR; 20 milioni di smartphone usciranno prima dell'estate del 2011 con compatibilità con la Flash Platform; Flash Player ed AIR son disponibili su diversi sistemi operativi mobili come iOS, Android, WebOS e BlackBerry OS.

    Ormai la Flash Platform non è più un sogno ma una realtà, su dispositivi mobili in particolare. Durante questo talk andremo a vedere le potenzialità della tecnologia, consigli pratici per iniziare a muoversi in questo mondo e previsioni sul futuro della piattaforma.

    At 3:15pm to 4:00pm, Tuesday 28th June

    Coverage slide deck

  • Non è affatto semplice

    by Alberto Brandolini

    Gestire una transizione verso un nuovo paradigma, implica la capacità di riuscire a convincere e motivare gli artefici del cambiamento, ma anche di trovare una risposta alle immancabili resistenze. Difficile discutere, difficile capirsi anche perché "il modo di ragionare è differente". In questo argomento affrontiamo la questione degli strumenti concettuali a disposizione per modellare e gestire le transizioni tipiche di una transizione agile, e di come possano rendersi utili nel nostro lavoro di tutti i giorni.

    At 3:15pm to 4:00pm, Tuesday 28th June

  • Many to many: nessun uomo è un'isola

    by Jacopo Romei

    Per ogni problema dello sviluppo software ogni soluzione passa per una buona interazione fra persone. Per ogni ottimo software troviamo un gruppo di persone in grado di comunicare con efficacia. Intelligenza sociale, aziende fondate sulla competenza, user group e progetti open source sono il vero motore dietro la nostra crescita, anno dopo anno. Abbiamo leve potentissime per aumentare la nostra forza: gli altri.

    At 5:45pm to 6:15pm, Tuesday 28th June

    Coverage slide deck