April 2009 Blog Posts

Linq2Sql, carenze imbarazzanti

Annoto delle carenze ... imbarazzanti  ( cosi le definirebbe l'ex collega Riccardo :D ) non c'è modo di specificare Hint al Database per ottimizzare/indirizzare il piano di esecuzione di una query la proprietà AutoSync che determina se dopo in INSERT venga eseguito o meno un SELECT per avere in ritorno i valori di campi autoincrement non si può indicare a livello di singola query ma solo di DataContext non c'è modo di eseguire Bulk Insert ossia insert massivi in una unica operazione massiva (come quando si fa  INSERT a_table (colA, ...,...

Axum, Microsoft’s Approach to Parallelism

Axum applica il pattern Session/Application [1] per definire e gestire l'accesso concorrente a ricorse condivise Lo fa implementando il concetto di domain  (un domain definisce un gruppo di risorse condivise e usate in modo concorrente e domini diversi sono gruppi di risorse tra loro isolati) e quello di agents che eseguono parallelamente operazioni su dati e risorse condivise Quindi implementa il Modello a Competizione [1] Agents diversi possono scambiarsi messages cioè second il Modello a Sincronizazione [1] detto anche produttore-consumatore detto anche Message Passing. Non ho notizie riguardo alla implementazione da parte di Axum (presumibilmente non sono supportate/implementate) di -...

Teamwork Is An Individual Skill

Una presentazione interessante sulle abilità che migliorano il lavoro di team: http://www.infoq.com/presentations/teamwork-an-individual-skill Bene si accosta ai post che raccolgo qui:  Complessità Negoziazione Team building  Tags :  Team Work | Agile | Team building |

Comportamenti che funzionano: la pratica 3/3

Riferimenti I comportamenti sociali sono prima di tutto pratica da provare, sperimentare, mettere in atto di persona. Per chi è interessato anche alle basi scientifiche e alla teoria ecco qualche parola chiave : Teoria dei giochi, giochi a somma zero, giochi a somma negativa, giochi a somma positiva, equilibrio di Nash, simulazioni sociali, distorsioni cognitive in condizioni di conflitto e dei meccanismi di scelta razionale, tit for tat, Robert Axelrod, la maledizione del vincitore, intelligenza collettiva, evoluzione della cooperazione, scienza della complessità e cooperazione Tags :  Team Work | Agile | Complessità | Leadership | Team | Conflitto | Negoziazione | Creatività | Innovazione | Team building |

Non siamo tutti uguali

     L'esperienza pratica, la letteratura, l'evoluzione e le similazioni sociali concordano che un comportamento di collaborazione integrativa e responsabilità condivisa produce più vantaggi di un comportamento autoritario e competitivo Manfred Macx in Accellerando di Charless Stross direbbe <<non credo nella nella scarsità, nei giochi a somma zero o nella concorrenza: il mondo è troppo vasto e l'informazione troppo densa per ammettere scimmieschi giochi generici>> Eppure non siamo tutti uguali e esistono tecnici,  programmatori, professionisti validi e capaci che si comportano in modo autoritario e competitivo cosi come ne esistono che si trovano bene ad essere guidati da leader direttivi e autoritari. Il punto...

[OT] Vivere (lavorare) in Italia o all'estero ?

Qui i risultati del sondaggio: guarda i risultati realizzato da : http://simulationintelligence.com/decidiamo/ Devo ammettere che da qui (dalla Svezia dove ora vivo e lavoro) difetti e pregi  diventano piú chiari. E forse criticare diventa anche piú facile. Tuttavia certe anomalie macroscopiche saltano subito all'occhio e trovano riscontro nella opinione di altri.

Is Parallel Programming Hard?

Un articolo pubblicato su InfoQ che ribadisce i risultati emersi dall'articolo risultato dal brainstorming su XP-IT circa le applicazioni multi-threading e il TDD Un motivo in più per segnalarlo a chi sviluppa app multi-threading: Design di applicazioni multi-threading Tags :  Team Work | Agile | Pratiche | Creatività | Innovazione | Progettazione Software |

Semplicità: valutare l'andamento di un team Agile

Nel post Scrum: un processo di sviluppo Empirico sono linkati modi di valutare un team Agile Il post Keep the Peel and Throw Out the Banana di Francesco Cirillo va alla semplicità della questione : Guarda il codice, quando è pieno di IF/SWITCH, casi speciali, diversi tipi di logica accoppiata, bug frequenti, è un campanello d'allarme che dello sviluppo Agile il team ha tenuto la buccia e gettato la banana Guardandomi indietro e riflettendo trovo che nella pratica questo criterio è efficace Tags :  Team Work | Agile | Pratiche | Leadership | Software | Semplicità |

Comportamenti che funzionano: la pratica 2/3

Impararne di nuovi e vantaggiosi Milioni di anni di evoluzione ci portano in dote un patrimonio l'attitudine a  comportamenti sociali spontanei e istintivi (so che sei voltato a guardare un collega o il capo e un'ondata di dubbi sull'evoluzione ti assale: ma un singolo caso non basta a metterla in dubbio capito !!! :D) E' sufficente evitare di ostacolarli e comprometterli e invece credere nelle persone, superare l'ansia di controllo, dare spazio e tempo, sospendere il giudizio, fare leva sulla responsabilità la passione e la liberta, incoraggiare l'iniziativa. Riconoscere i successi del team e premiarlo nel suo insieme. Evitato di compromettere...

Comportamenti che funzionano: la pratica 1/3

Sui comportamenti sociali utili e efficaci Una squadra di calcio impara nuovi schemi di gioco che la portano meglio al gol In una discoteca a Budapest c'è l'usanza di concedere 10 minuti di ballo e chiacchiere a ogni corteggiatore/trice che si fa avanti - è divertente semplice e evidente che i nuovi arrivati imparano subito. Anche nel film A Beautiful Mind sul matematico Nash c'è una scena simile sul corteggiamento In Svezia in diverse scuole agli alunni vengono assegnati compiti in gruppo da cui acquisiscono l'abitudine a collaborare efficacemente che poi impiegano con successo  al lavoro Tags :  Team Work | Agile |...

Un po di Italia anche a Stoccolma

Andreas Gursky è un fotografo tedesco vivente e ben quotato. Tra le altre cose è conosciuto per le sue gigantografie iper-realistiche realizzate con tecniche di fotografia e ritocchi digitali Nel 2007 ha realizzato la serie intitolata "F1 Pit Stop" di 4 gigantografie "epiche" dedicate alla F1 Le foto sono ottenute componendo foto da differenti GP intorno al mondo Se avete la possibilità di entrare nel tempio della F1 a Maranello, nel ristorante aziendale potrete ammirare la gigantografia di Andreas Gursky dedicata alla Ferrari - Qui un assaggio La gigantografia è in mostra al Museo di Arte Moderna di Stoccolma...

Credere nelle persone

E' il comportamento più difficile da cambiare per un Coach di un team Agile, un Leader  e un Facilitatore : Rinunciare a esercitare il controllo e alle aspettative di risultati prestabiliti Scoprire nuovi modi di indirizzare e aiutare responsabilmente il team che sostituiscono le vecchie abitudini Superare l'ansia di controllo Agire facendo il meno possibile Come ? Un esempio pratico per esercitarsi : scopri come Exqusite Clock evolve liberamente col contributo collettivo e responsabile e come ogni contributo è indirizzato a essere utile e efficace : Tags :  Team Work | Agile | Complessità | Leadership | Team | Creatività | Innovazione | Semplicità |

Leadership e autorità

       Attraverso la leadership o l'autorità non si può cambiare un gruppo di persone scontente e non competenti in un gruppo di persone esperte e motivate           Dando spazio a responsabilità passione libertà e mettendo le persone in condizione di collaborare e rinunciando a esercitare il controllo si può ottenere il meglio da un gruppo         E ottenere risultati che sorprendono tanto quanto si è capaci di credere nelle persone (leggi questa ricerca) L'unico controllo che resta è estremamente ridotto e limitato, è sottile e ha lo scopo di aiutare il gruppo a raggiungere gli obbiettivi che si...

Lean Agile e i 7 principi

    Ricapitolando ecco i post sui principi del Lean Software Development: Eliminare gli sprechi : Il pricipio , Esempi , Considerazione finale Amplificare l'apprendimento : Il principio , Esempi , Considerazione finale Ritardare la decisione all'ultimo momento responsabile : Il principio , Esempi , Considerazione finale Rilasciare il più spesso possibile : Il principio , Altre info , Esempi e conclusioni ...

Sistemi autorganizzanti, intelligenza collettiva, cooperazione: la pratica

Nel tempo gli esseri umani si sono trasformati da nomadi a stanziali Nel tempo il modo di gestire le dispute si è evoluto dalla lotta al ricorso ad autorità sino a leggi eque e uguali (quasi) per tutti    Anche il modo di gestire i conflitti si è evoluto nel tempo dalle guerre alle transazioni sino a forme evolute di cooperazione integrativa Trasformazioni che hanno coinvolto piccoli gruppi, comunita, nazioni in ogni parte del mondo, in modo autonomo e senza l'aiuto di una regia esterna centrale - Anche nel funzionamento dei sistemi fisici e chimici l'autorganizzazione ha un ruolo...

Empowerment del team, in pratica

Cercare di essere tutto per qualsiasi membro del team in ogni momento - non è sostenibile alla lunga Intervenire quando il lavoro arriva a un momento di stallo per  superare l'ostacolo, quando scoppia un conflitto intervenire per trovare una mediazione - è una soluzione temporanea e rende il team dipendente Parlare poco e fare il meno possibile - creare uno spazio sicuro in cui lavorare e tenere (onorare) lo spazio per il team - essere disponibili, aperti, credibili, senza particolari aspettative - fare costantemente leva sulla libertà e responsabilità del team A fronte di una domanda che richiede...

Linq code refactoring: good programmer and bad one

IMHO the difference between a good programmer and a bad one is that a good programmer always strives to do things the straight way while a bad programmer feels smart when he discover and use dirty tricks  -  While refactoring long methods with Linq/Linq2Sql code and so trying to extract some Linq/Linq2Sql code into a new method it do emerge the need to return anonymous types from the extracted method. The C# compiler can complains for this You can Google and find a trick to return anonymous types. While in the first moment it looks interesting by a...

Five Ways that Team Members Build Trust with Each Other

Chi è genitore conosce bene e in pratica cosa significa costrure la fiducia e avere una percezione corretta: quando il figlio inizia a camminare, quando impara ad attraversare la strada, ad andare in motorino e a frequentare nuovi amici. E tutti noi siamo stati figli :) Ognuno impara a misurare e valutare la fiducia sulle proprie abilità, per esempio di affrontare una curva in auto a una certa velocità, una discesa sterrata in moutain-bike o una pendenza sulle piste di sci. Attraverso una sequenza di tentativi, miglioramenti e successi, e la memoria storica di questi Fiducia nel riuscire a svolgere un compito,...

I believe that software development is for the most part a social activity

Mi segno un post interessante: Communication, communication, communication e un libro da valutare : qual'è la sua validità scientifica oggi ?      ci sono libri/articoli che collegano questi giochi a "simulazioni sociali" o semplici set di regole generative ? cioè : mi può essere utile ? Tags :  Team Work | Agile | Complessità | Leadership | Team | Comunicazione | Conflitto | Negoziazione | Team building |