February 2009 Blog Posts

Motivazione nel gruppo di lavoro: partecipazione volontaria

    Mi annoto queste forze che in un gruppo di persone  liberano l'energia  e la voglia di fare   Una volta lette mi sembrano quasi ovvie perché rispecchiano  le migliori esperienze che ricordo di gioco di squadra, sportive e lavorative         La partecipazione volontaria e la libertà d'azione: catalizzano l'interesse, coinvolgimento, passione e responsabilità Cioè un presupposto essenziale per trovare risposte, scoprire soluzioni, produrre i risultati migliori        Una domanda chiara (sull'argomento che si vuole affrontare) e aperta (nei modi, nelle alternative che si possono esplorare e nelle soluzioni a cui si può giungere) un gruppo di persone eterogeneo e fiducia nelle persone...

Semplicità

Come programmatori di computer siamo abituati a risolvere problemi complicati, analizzare le possibili combinazioni, lavorare a concetti astratti. Con tutte le nostre forze E cosi che anch'io ho perso l'abitudine alla semplicità Inizio una serie di post con esempi reali di semplicità (segui il tag Semplicità) Tags :  Team Work | Agile | Semplicità |

Spazio, forma e comunicazione

Il cerchio è la forma geometrica della comunicazione umana paritetica lascia spazio a una comunicazione genuina, aperta e libera Quadrati e rettangoli (sedie e tavoli disposti a) separano le persone. Possono tenere a distanza soggetti in forte conflitto Linee parallele (di sedie) rivolte verso un palco/una cattedra/un pulpito mettono in chiaro chi debba parlare e chi debba ascoltare, sottolineano l'autorita Fonte: OST Tags :  Team Work | Agile | Leadership | Comunicazione | Conflitto | Negoziazione | 

Guarda l'insieme: esempi

Degli esempi dal principio #7 del  Lean Software Development Guarda l'insieme    In una gara di F1 di un pilota può fare uno o più pit-stop. La strategia di gara migliore è quella che lo porta davanti agli avversari all'uscita dell'ultimo pit-stop e non quella che lo tiene davanti a ogni pit-stop     Quando i tempi di sviluppo si allungano o i bug aumentano, la complessità del codice sale o le build si rompono più spesso è utile guardale le cose nell'insieme, capire le...

Siamo poi d'accordo su cos'è cattivo codice ? : Risultati

Ecco le opinioni raccolte su cos'è cattivo codice per noi: Le 3 cose che sono state scelte di più come casi di cattivo codice (95%) sono: Nomi di variabili senza senso, incomprensibili, irrintracciabili Mancanza assoluta di naming convention e metodi con nomi fuorvianti Trovare nel codice la stessa cosa fatta in 10 modi diversi Le 3 cose che sono state considerate di meno come casi di cattivo codice (32-33%) sono:  Mancanza di documentazione sulle configurazioni e sul deploy Assenza totale di Unit...

Sulla persuasione (Selling Scrum)

     Uno che vende numeri del Lotto invece di giocarseli mi lascia perplesso tanto quanto uno che vuole venderti "Scrum" invece di prodursi buon software - nonostante il titolo questo post sulla persuasione l'ho trovato utile : Selling Scrum: How to persuade people to change! Alcune frasi But if you are in a position to give instructions or give orders, you cannot do this unless you have a lot of confidence about what you are saying. However, people's ideas are unreliable things and I would be impressed if we were right half the time. ... ... We are all human and we...

Design di applicazioni Multi-Threading

     Dalla la serie di post e riflessioni che feci sul disegno di applicazioni muti-threading è partito uso scambio interessante su XP-IT e istruttivo Il risultato è una raccolta di indicazioni link e commenti - unica - perché centrata sul  *design*  del multi-threading: Design di applicazioni Multi-Threading       La trovo molto interessante perché si posso trarre idee semplici (una volta emerse si :) ) e efficaci per ridurre la durata/superfice di lock/sincronizzazioni disaccopiare le responsabilità ...

Working Effectively with legacy code: link & riferimenti & sintesi

Raccolta di link, riferimenti, sintesi a complemento del libro Working Effectively with legacy code di M.C.Feathers e su coding (clicca sul titolo per visualizzare)

Imparare a programmare divertendosi 3°

Ormai sta diventando una mini serie Per bambini & per adulti con curiosità entusiasmo apertura coraggio e ben disposti a prendere atto della prova dei fatti  e anche con il ricordo di una passione, la programmazione dei computer, comunciata per divertimento Gioia & divertimento una volta ancora come sinonimo di   apprendimento - impegno - realizzazione - soddisfazione Che questa volta ci porta qui : http://hacketyhack.net/ Tags :  Team Work | Agile | Leadership | Team | Creatività | Innovazione |

Siamo poi d'accordo su cos'è cattivo codice ?

Come ricordava un commento a un post precedente non basta elencare i difetti del codice per risolvere i problemi Per migliorare una code-base il primo passo è  quello di essere d'accordo su cos'è cattivo codice  su quali sono i difetti da rimuovere E' cosi facile?        Partecipa al sondaggio   cliccando qui E poi guarda i risultati (clicca qui) Ultimo aggiornamento: - su 10 dei punti siamo in accordo nel considerarli come cattivo codice - su 12 punti non c'è sufficente accordo  Tags :  Team Work | Pratiche | Team | Conflitto | Negoziazione | Disciplina | Progettazione Software |

3 anni di software e di competizioni sportive, FAQ

          Sviluppare software per le competizioni sportive è stata una esperienza unica. Di tante cose che ho imparato 3 sono quelle che ricordo più spesso: - Non è finita fino a quando non è davvero finita  :  la mentalità vincente è lottare sempre fino in fondo fino all'ultima remota possibilità e farsi trovare pronti a raccoglierla, perchè arriva - Rispettare i propri avversari diretti  :   è il valore degli avversari a fare la misura della vittoria e sono loro quelli che più ti assomigliano, danno sempre il 100% e come te poi cercano quello spunto in più a volte togliendo...

Coerenza retrospettiva

        Durante la retrospective un team agile riflettere sugli impedimenti che lo hanno ostacolato nella iterazione appena finita e immagina nuovi approcci che hanno la possibilità di funzionare          &        impara dagli approcci che si sono dimostrati validi alla prova dei fatti        Quello che il team fa quando si guarda indietro e cerca di imparare è crecare la coerenza retrospettiva cioè quelle cose che non è facile scoprire in anticipo o a volte è impossibile perché il progetto si svolge in una situazione di incertezza con cambiamenti frequenti, repentini e imprevedibili     => ? Oltre...

Situazioni da team: sperimentazioni pericolose

    Qualche tempo fa avevo raccolto opinioni su quanto fosse professionale quando nel team un tuo collega per passione, per curiosità, per interesse o per semplice aggiornamento professionale decide di sperimentare in un progetto  per un cliente alcune soluzioni tecnologiche che non conosce e quindi non ha una ragionevole certezza di padroneggiarle a sufficenza Qui il post con ogni singolo feedback e la sintesi finale: Situazioni da team: azzardi tecnologici      In questo post ho trovato una posizione interessante sull'argomento e consiglio di leggerlo: Keeping up is not enough Se qualcuno vuole commentare ancora sull'argomento, naturalmente...

Guarda l'insieme

Lean Software Development descrive principi e pratiche utili a introdurre i metodi agili nella propria organizzazione. E lo fa dal punto di vista del Manager e del Responsabile tecnico di progetto Un principio del Lean Software Development è Guarda l'insieme Guarda alle interazioni e al risultato complessivo che producono, migliorandole complessivamente ottieni benefici maggiori che ottimizzare a singole parti : - gli utenti di una azienda interagiscono con il software e con i colleghi per riuscire nel proprio lavoro...

Esempio di un Open Space riuscito (Domain Driven Development)

Guardando i video della recente UGIALT.NET conference mi ha colpito l'open space a mio avviso riuscito . Annoto alcune cose che ho osservato  •  gli argomenti discussi, i tempi e i modi gli decidono dalle persone che sono li intanto che la discussione va avanti, anche in base a quello che succede e a dubbi e interessi di ognuno     invece     di essere pre-stabilita  da  qualcun altro e condotta in modo unilaterale  •  la conversazione è fatta dalle conoscenze, dalle domande, dai dubbi e dalle singole esperienze pratiche concrete e reali del quotidiano lavorativo dei partecipante e le risposte che si...

[OT] Ora che sono famosi voglio l'autografo!!!

Antonio Ganci Antonio Carpentieri Roberto Schiabel Andrea Chiarini Sono stato loro collega! Compaiono qui in questo fantastico video.  E ora che sono diventati famosi: voglio l'autografo !!! Italian ALT.NET Conference Introduction from Piyodesign on Vimeo. Gli autografi di Simone, Emanuele e Claudio gli ho già estorti ;-)

Qual'è secondo te codice pessimo?

Quando apri un sorgente e ti viene da ... imprecare :) quando c'è un certo programma da modificare e quindi ... prendi ferie quando guadri lo schermo per ore senza capici niente ... e non sei nemmeno innamorato :)  ... cosa c'è in quel "codice" che ti fa  schifo  ribrezzo ? Tags :  Team Work | Pratiche | Team | Disciplina | Progettazione Software |

Mantieni l'integrità del sistema: conclusioni

Secondo me il punto chiave del sesto principo del  Lean Software Development è che per relizzare prodotti software di successo nel tempo serve l'equilibrio tra agire localmente (quando l'utente usa una funzione, fa una richiesta, definisce le priorità e quando il programmatore scrive un test, fa un refactoring, rilacia una funzionalità, fa un test di accettazione) e pensare globalmente (quando si guarda all'intero dominio applicativo, alla evoluzione del prodotto, alla soddisfazione degli utenti, alla economicità delle soluzioni, alla efficenza degli sviluppi, a che direzione strategica prendere) Come ci si sente con un prodotto eterogeneo, parziale, bacato ?       per esempio l'utente si...

Imparare a programmare divertendosi 2°

Torno sul imparare a programmare divertendosi Who uses Processing? Processing is used by a very diverse group of people, from children first exploring computer programming to professional artists, designers, architects, engineers, and scientists. Processing has a shallow learning curve to make writing code easier for beginners, but it also allows more experienced programmers to write sophisticated software Gioia & divertimento una volta di più ancora come sinonimo di   apprendimento - impegno - realizzazione - soddisfazione Fonte: Processing 1.0 Hits the Web Tags :  Team Work | Agile | Leadership | Team | Creatività | Innovazione |

Scrum: un processo di sviluppo Empirico

Scrum e i metodi agili impiegano dei processi di sviluppo empirici (vedi su wikipedia) cioè che si adattano mentre il processo procede a seconda di quanto accade nel progetto Mentre i processi iterativi incrementali sono definiti nel senso che il processo segue per tutta la durata del progetto gli stessi passi pre-stabiliti e pre-definiti I processi empirici sono : Trasparenti : ogni cosa che ha qualche impatto sul buon esito del progetto devono essere facilmente accessibili e visibili per tutti  (es. i test che passano e quelli che no, la build che fallisce o quella che ha successo,...

Ancora su persone Versus processi

Riporto la prosecuzione del thread sul mettere l'insegnamento dei valori prima di quello dei processi : Teaching Values vs. Process  (qui completa su Linked-In)- Eccola : - I prefer to contribute to build understanding-feeling-tuning between peoples in the team more then to build a new process, in Italian we call this 'intesa' who played some team sports probably have already experienced this - I like that word "intesa". Luca, how do you go about building that on a team? - I try to learn/teach/build it by example. With actions. I strive to act in a transparent, trustworthy and effective manner every...