March 2009 Blog Posts

Soft skill (essere)

    Vuole dire un certo numero di abilità personali, emotive, individuali e di gruppo cioè che sono distinte e si aggiungono a quelle tecniche e di ragionamento meccanicho razionale La definizione su wikipedia è chiara e interessante tanto nella versione inglese Soft Skills che in quella italiana Soft Skill     E' attraverso queste capacità che una persona nella azienda di cui fa parte che è una organizzazione fatta di persone contribuisce e collabora con gli altri Riporto degli esempi pratici di come queste abilità possono tradursi in pratica per un facilitatore di un meeting o un leader che promuove...

Brian Eno on Creativity (We ceded the ground before we ever started)

The smallest seed planted at the right time can lead to something great In fact most great things seem to come from nowhere and evolve from practically nothing Unfortunately many of us live our lives thinking that there are folks of such staggering genius walking around, with symphonies and novels fully formed in their heads, that we come to the conclusion that we are not people of great ability, and this affects how we live and how we see things We ceded the ground before we ever started Tags :  Team Work | Agile | Complessità | Creatività | Innovazione |

Creatività: dove noi tecnici possiamo migliorare

  Douglas Bowman - Visual Designer - lascia Google e si  racconta:    When a company is filled with engineers, it turns to engineering to solve problems. Reduce each decision to a simple logic problem. Remove all subjectivity and just look at the data Yes, it’s true that a team at Google couldn’t decide between two blues, so they’re testing 41 shades between each blue to see which one performs better. Without conviction, doubt creeps in. Instincts fail. “Is this the right move?”    Brian Eno si racconta:   You can either take the attitude that it has a...

I programmatori migliori usano meno IF/SWITCH (codice di esempio)

     Ecco un esempio con le 2 implementazioni a confronto: Esempio di codice con e senza IF/SWITCH      Ecco altri esempi qui: Codice Anti-If di esempio Tags :  Agile | Pratiche | Disciplina | Professione | Semplicità | Progettazione Software |

Esempio di codice con e senza IF/SWITCH

L'input per questo codice é un comando composto da una direzione (Nord, Sud, Est, Ovest) e da un numero di passi. Il codice muove il robot nella direzione indicata un passo alla volta. A ogni passo marca la cella attraversata come "pulita" facendo attenzione a quelle giá pulite in precedenza cosi alla fine ha il conto totale delle celle pulite senza doppioni. La 1^ implementazione é di 8 righe, ha un unico for. Per eseguire ogni linea di codice almeno una volta basta 1 test. Ecco la spiegazione: - Alla riga 1 la direzione vine trasfomata in vettore, ad esempio Nord é...

I programmatori migliori usano meno IF/SWITCH

     Questa settimana ho visionato una quarantina di soluzioni di un test di programmazione. Le implementazioni meno buone  avevano anche un numero elevato di if/switch (una 40na), quelle migliori anche nessun if/switch. Penso che non è un caso      Resto sorpreso che tra gli skill avanzati di coding che sono assodati e riconosciuti da anni la capacità di evitare gli if/switch inutili e duplicati è ancora ignota a una gran parte di programmatori, e anche da alcuni programmatori di Microsof (vedi qui , mal comune  mezzo gaudio :D). Tecniche per eliminare IF/SWITCH: vedi qui Altri skill avanzati di coding: vedi qui Il passo...

The Internet Of Things: l'italianissimo Arduino fa già parte della storia

Questa è la presentazione Shhh, they're listening, a subjective history of the Internet of Things Shhh, they're listening, a subjective history of the Internet of Things View more presentations from Alexandra Deschamps-sonsino. (tags: iot design) Chi è Arduino ? Guarda qui Cos'è The internet of Things ? Guarda qui Fonte: Alexandra's subjective history of the Internet-of-Things Tags :  Creatività | Innovazione | Progettazione Software |

The bad apple, bad decisions

Segnalo 2 post (il primo segnalato dal ex collega Gian Marco) che un po si completano a vicenda The Bad Apple: Group Poison un cattivo elemento che finisce per danneggiare tutto il team Alcuni tratti che puo avere una  bad apple: The Depressive Pessimist will complain that the task that they're doing isn't enjoyable, and make statements doubting the group's ability to succeed. The Jerk will say that other people's...

TDD--The Art of Fearless Programming

Questo articolo é diventato disponibile gratuitamente su IEEE con dati sperimentali dell'efficacioa del TDD:  TDD--The Art of Fearless Programming Segnatalo da Marco qui Segnato da Piergiuliano Bossi anche Studies on Effectiveness of TDD? Tags :  Team Work | Agile | Pratiche |

Processi che ti aiutano (EMERGENCY? = USE PHONE) & allegre fantasie

      Questo post Simple Guidelines for Workday Quality Over Quantity [Email] mi ha fatto ricordare un vecchio episodio        Una compagna di team mi fece notare che restando focalizzato sul codice che stavo scrivendo rischiavo di ignorare mail molto urgenti (visto il contesto in cui stavamo lavorando la preoccupazione era legittima)        La mia idea (che avevo mancato di sottoporre e condividere col team) era che per le cose veramente urgenti le persone normalmente usano il telefono: te lo immagini chiamare i pompieri o l'autoambulanza con una e-mail ?               Un processo che investe in questa naturale abilità delle persone è...

C# Nullable Types: 2 errori nel disegno

Il punto centrale del pattern nullable object o special case che dir si voglia è quello di evitare gli IF per gestire il Null. E invece ... Nella conversione da int? a string:  non c'è modo di specificare che stringa usare in caso di null senza usare un IF nemmeno con l'operatore ??.  Per es. in una label vorrei poter visualizzare il numero oppure N.A. quando c'è il null e mi tocca mettere un if.     L'abilita principale di un programmatore è sapersela cavare col codice. E invece... Al posto di contare sulla capacità dei programmatori di capire e usare correttamente la logica...

Brian Eno: amplificare la creatività nel team (e con gli U2)

Qualcosa va storto e non si sa cosa fare - la reazione spontanea  è quella di affidarsi alle abitudini consolidate Nei team affiatati il punto di forza della "telepatia" si bilancia con l'eccesso di diplomazia: nessuno vuole mettere  a rischi l'equilibrio che si è creato Brian suggerisce 2 giochi per rompere le regole e aprirsi a nuove cose e a nuovi modi di fare Imporsi dei limiti per incrementare la creatività - per esempio con gli U2 gli ha fatto scambiare gli strumenti cosi che uno suonasse quello dell'altro - obbligarli a suonare con solo una parte della scala Fare...

Design Under Constraint: How Limits Boost Creativity

The same principle applies to design. Given fewer resources, you have to make better decisions The idea of operating within constraints—of making more with less—is especially relevant these days. From Wall Street to Detroit to Washington, the lack of limits has proven to be a false freedom More recently, the very iPhone on which you listen to Davis' landmark album is a one-buttoned example of restraint in pursuit of an ideal, while the sublimely simple Google homepage is forever limited to 28 words Fonte: W.I.R.E.D. Tags :  Team Work | Agile | Creatività | Innovazione | Semplicità | Progettazione Software |

Self-organizing teams and Resilience: Esther Derby

Mi annoto questi 2 post  Project is a human system working towards a desired goal. However, the project is running within an environment that is changing continuously. The project needs ways to deal with these changes and still keep performing its [...] : Structure For Resilience Video Intervista sui team auto-organizzanti e sulle fasi di evoluzione di questi team: - Managing their own work and monitoring their own progress ...

Informatica e Design 3° (Generative Systems)

Game designer Will Wright (SimCity, The Sims) and musician Brian Eno discuss the generative systems used in their respective creative works. Ancora info su questi argomenti ? ~  schemi complessi che emergono dall'implementazione di regole assai semplici come una foresta che nasce da pochi semi (John Conway)  in questo post     ~  simulazioni sociali in questo post ~  NetLogo un sw per eseguire e implementare principalmente simulazioni sociali ma anche sistemi genereativi in questo post Tags :  Team Work | Agile | Complessità | Team | Creatività | Innovazione | Semplicità | Progettazione Software |

Informatica e Design 2° (Brian Eno)

L'area di intersezione tra informatica e design è in continua espansione. In termini di prodotti, tecnologie e applicazioni e anche designer e artisti digitali che sconfinano nella programmazione e programmatori che si dedicano a prodotti informatici di design e artistici La potenzialità che intravedo riguarda la possibilità che programmatori possano scoprie da designer e artisti digitali come lavorare e come affrontare in team problemi in modo creativo e anche contribuire in termini di metodologie e pratiche di programmazione Naturalmente i team agili sono i candidati ideali avendo nel loro nucleo gli aspetti di creatività esplorazione dinamiche di team Brian Eno è un precursore...

Un esempio di semplicità col pattern MVC

((( continuo la serie di post pratici sulla semplicità. La sfida di Gino qui ora è trovare qualcosa ancora da togliere, da sottrarre per arrivare all'essenziale da cui cominciare, al minimo indispensabile a cui non si può rinunciare  ))) Gino conosce il pattern Model-View-Controller, le sue varianti, le sotto-varianti e gli adattamenti ai diversi framework grafici.    Si dice che sa applicare MVC bendato con le mani legate dietro la schiena come fosse Chuck Norris   ((( minchia! ))) Gino ha un giorno intero di tempo e il suo collega è interessato a capire come si applica il MVC e...

Paradossi per riflettere sui sistemi complessi

How can we give direction without giving directives? How can we lead by serving? How can we maintain authority without having control? How can...

Un buon Senior, un buon Leader e l'arte di chiedere

Grazie a Gian Marco per aver segnalato questo articolo Sulla leadership da The Bad Apple: Group Poison    There was just one guy, who was a particularly good leader. And what he would do is ask questions, he would engage all the team members, and diffuse conflicts A group leader [can intervene and potentially] change the dynamics and performance of a group by going around and asking questions, soliciting everyone's opinions, and making sure everyone is heard Sulla expertise da Are You An Expert? Being an expert isn't telling other people what you know. It's understanding what questions to ask, and...

Se l'FBI ti arresta perché giochi Reality Game, non venire a piangere

Immagina di usare l'abilità la strategia l'intuizione che hai sviluppato per navigare in internet. Nella tua prossima vacanza ! Metropolitana, Bus e Taxi come fossero link -  I tuoi piedi come fossero il site-map, il breadcrumb e il menu di un sito -  Le tue tasche e lo zaino come fosse la Clipboard del cut'n'paste -  La mappa e la guida turistica come fosse Google -  Insegne, segnaletica, vie e numeri civici come i titoli delle pagine web -  Resteresti sorpreso dell'efficacia, e di fare già parte di questo mondo al contrario. Digitale prima reale poi Un po...

Ancora su Selling Scrum

      Ecco un documento che prova a descrivere il punto di vista di un Project Manager sulla adozione dei metodi agili in un suo progetto: Se fossi un project manager...       Inoltre, oltre a incoraggiare i team che possono avere benefici ad adottare i metodi Agili, ora che sono mainstream è utile anche assicurarsi che l'azienda ha capito quali sono i cambiamenti che i metodi Agili promuovono e lasciargli decidere se li desidera Con una adozione di successo dei metodi agili le persone del team imparano ad assumersi responsabilita, tutte le opinioni vengono ascoltate, le decisioni...

Simulazione di fluidi con Blender

Dopo i sw di social networking, ecco un altro sw che da vita alle cose Deve essere estremamente emozionante realizzare sw che ti permettono cose come queste Fonte: Fluid simulations Tags : Complessità | Creatività | Innovazione |Tools | Progettazione Software |

Un esempio di semplicità col TDD

((( continuo la serie di post pratici sulla semplicità. La sfida di Gino qui ora è trovare qualcosa ancora da togliere, da sottrarre per arrivare all'essenziale da cui cominciare, al minimo indispensabile a cui non si può rinunciare  ))) Gino 'e molto ferrato su unit testing, TDD, mocking e tecniche di refactoring per la rottura delle dipendenze.   Si dice sappia fare gli esami del sangue moccando la siringa e il paziente e che sappia separare i semi dall'anguria con un solo short-cut di Resharper   ((( minchia! ))) Ha a disposizione l'intero giorno in pair programming col collega per introdurre lo...

In Sintesi: Design di applicazioni Multi-Threading

Ecco in sintesi una serie di indicazioni utili e per me illuminanti e sorprendenti sul multi-threading: le applicazioni multi-threading sono di un ordine di grandezza più complesse delle altre appicazioni quindi è sensibilmente sconveniente portare in causa il multi-threading quando può essere evitato il ruolo e la principale utilità dello unit-testing e del TDD per le applicazioni multi-threading è quello di portare a disaccoppiare la gestione deil multi-threading dalla logica di business ...

The game is not over until it's over

Come ricordavo qui non è finita fino a quando non è davvero finita : ) E si vede in questa spettacolare azione di Rugby che capovolge il risultato alla fine dei tempi supplementari: guarda il video dal post di Andrea Lo sport sano come palestra del lavoro di gruppo Tags :  Team Work | Agile | Team | 

Product Owner: Pig or Chicken?

Sarà che nel team ho 2 Product Owner, sarà che sono donne !!!   (che Svezia questa Svezia :) e mi ha colpito anche scoprire che qui per gli uomini è normale stare a casa un periodo per la nascita un figlio)   -   Sarà invece che sembra il momento del Product Owner, ecco un altro post per guardare lo sviluppo agile da altri occhi oltre a quelli del developer : Product Owner: Pig or Chicken? Lo trovo utile anche al developer, per guardare di più anche il mondo che c'è intorno Tags :  Team Work | Agile | Leadership | Team | Product Owner | 

Confessions of a serial Product Owner

Una collega ha segnalato nel wiki aziendale un pdf che da una prospettiva inconsueta e interessante sui metodi Agili: Confessions of a serial Product Owner Assolutamente centrato per chi è abituato a coprire il ruolo di Project Manager di un team di sviluppatori. L'autrice, svedese naturalmente, è Anna Forss Il pdf si può scaricare da qui Sempre per Project Manager e Responsabili del team di sviluppo richiamo un altro post interessante: Product Owner: abbraccia l'incertezza Tags :  Team Work | Agile | Pratiche | Leadership | Team | Product Owner |

Un esempio di semplicità con Resharper

((( continuo la serie di post pratici sulla semplicità. La sfida di Gino qui ora è trovare qualcosa ancora da togliere, da sottrarre per arrivare all'essenziale da cui cominciare, al minimo indispensabile a cui non si può rinunciare  ))) Gino conosce tutti gli short-cut di Resharper, praticamente li ha inventati lui  ((( minchia! ))) Il collega che ha introdotto al refactoring ci ha preso gusto e ora Gino vuole avviarlo ... all'uso di Resharper! Per farla semplice da dove comincia? Gino fa il giro dei PC del team e si assicura che tutti abbiano la stessa versione di Resharper e abbiano selezionalo...

L'eccitazione della scoperta, la necessità del no sense e dell'immateriale

Una frase da What Bruce Sterling Actually Said About Web 2.0 at Webstock 09 Creative people don't want to "do it right." They want to share the excitement you had when you yourself didn't know how to do it right. Creative people are unconsciously attracted by the parts that make no sense. And Web 2.0 was full of those. Il cerchio si chiude con la frase di un post segnalato da Bruce Sterling in Boym on Sottsass However absurd this decorative element is, it is absolutely essential for the object’s existence. The functional is connected to the nonfunctional...

Guarda l'insieme: conclusioni

Secondo me il punto chiave del settimo e ultimo principo del  Lean Software Development è che per completare con successo progetti complessi, per far crescere un team una organizzazione serve capire le dinamiche con cui i vari componenti in gioco interagiscono, fare attenzione a non confondere il sintomo con la causa, pesare l'effetto di una azione sull'obiettivo ultimo Come ci si sente a spegnere incendi, ampliare i processi e irrigidire l'applicazione delle norme, analizzare scomporre misurare e ottimizzare ?       per esempio una piacevole sensazione di controllo, poi sorpresa quando problemi che sembravano risolti si ripresentano magari in forma diversa e...

Un esempio di semplicità sul Refactoring

Gino sa tutto sul Refactoring: sa fare refactoring bendato e con una mano legata dietro la schiena ((( minchia! ))) Si è seduto alla tastiera col suo collega e ha 2 ore di tempo per introdurlo al refactoring.  Per farla semplice da dove comincia? Gino comincia dal codice che il collega ha appena scritto. Fa check-in per avere una baseline sicura a cui fare rollback e usa un tool automatico per evitare errori insidiosi. Coimincia a fare questi 6 refactoring insieme al collega: * Estrae codice dai metodi troppo lunghi (>> 30...

Hai un'idea geniale? R E G A L A L A !

Questo articolo su  W.i.r.e.d. IT  racconta l'inizio di qualcosa che può diventare una nuova  (((rivoluzione))) ~ (((evoluzione))) Hai un’idea geniale? Fai come Mr Arduino, regalala. E diventa ricco Sei affascinato dai possibili scenari futuri che si aprono?  Allora ti piacerranno anche i 2 post "premonitori" Riconoscere una buona idea?   e    Isole nella rete Tags :  Team Work | Aziende | Creatività | Innovazione |