agosto 2010 Blog Posts

Prima di voler cambiare gli altri...

Il coach Agile e lo Scrum Master nell'azienda hanno il compito di promuovere e guidare il cambiamento organizzativo e culturale e condividono questo compito con ogni membro di un team Agile che é un agente del cambiamento. Quello che nel tempo ho imparato in questo ruolo, é che prima di chiedere agli altri di cambiare é importante essere capaci di cambiare se stessi. E' il classico lead-by-example ed é anche un reality-check personale per verificare se si conosce realmente quello che si desidera insegnare agli altri! Fatto questo, ho imparato che non basta ancora. Prima di chiedere agli altri...

Un salutare bagno di umiltá

Ho collegato 2 post che ho letto recentemente e... Il primo riporta il risultato di una ricerca secondo cui una coppia in pair "batte" 2 individui se la coppia discute liberamente dei loro disaccordi in particolare di quanto sono confidenti della loro decisione. Mentre la coppia "perde" quando una persona é incompetente su un argomento senza esserne consapevole o senza riconoscerlo. Il secondo riporta il risultato di una indagine secondo cui ogni anno un inglese in media spreca 2000 sterline di carburante perché sbaglia strada e non chiede informazioni. E il 41% dei maschi dopo aver sbagliato strada e dopo ...

Simplify packaging to speed up software developments

Once the team wrote the source code of an application, why should split that app into many modules (assembly, jar, dll, exe, binaries in general) ? Sometime there are no choices: i.e. when different part of the applications are developed with different technologies that require different compilers or even different operative systems. Some other time when a group of classes are used by 2 or more applications, instead of duplicating the classes they must go in a module and be reused. Here is when the REP come in...

Prova sul campo di NDepend v3 (2/2)

Ho proseguito la prova sul campo la nuova versione di NDepend v3  con le metriche del codice, con CQL e il suo editor. Con la SuperSolution, cioé la soluzione che include centinaia di migliaia di righe di codice e tutti i progetti della azienda per cui lavoro. Metriche:  Pratica e concreta la possibilitá di avere facilmente a disposizione lo stato della coverage dei test e la complessitá ciclomatica del ccodice: due indicatori importanti dello stato generale di salute della code-base. Molto interessante...

Versioning (6, end of this series)

So far we have discussed what team can do to extremely simplify versioning for the modules (assembly, jar, dll, exe, binaries in general). What about executables and web-applications, desktop applications, services and web-services? Verioning and tracking of breaking changhes are useful for changes that affect the production environment, let's make some examples: When an application requires an upgrade to the db schema to work properly, the application and the db must be versioned properly ! When there is an upgrade to a server application that...

[OT] Tra la tecnica e l'umanistica

Agosto é agli sgoccioli e che estate sarebbe senza un post estivo? Si perché quando la vita ci sorride cominciamo a guardare ai piccoli problemi di tutti i giorni, che problemi *non sono*, ma tant'é Per esempio come fare con quelle distanze che sono troppo brevi per prendere la bici e lunghe abbastanza da diventare una camminata noiosa ? Questa domanda mi ha dato l'occasione per osservare le differenze tra noi tecnici e chi ha una formazione umanistica. Ogni piccolo problema per noi tecnico é l'occasione di cercare una soluzione tecnica, di usare una tecnologia, a volte a costo di soluzioni risibili e improbabili...

Battleship AI coding competition

In settembre/ottobre ho intenzione di organizzare una coding-competition a chi realizza la migliore Battleship AI. La competizione sará sulla falsa riga di questa competizione "What is the best Battleship AI?" Chi é interessato a partecipare ? Chi ha voglia di dare una mano a organizzarla/contribuire ? Translate into ENGLISH >>>

Tell Don't Ask, unit tests and mutable state

If you follow the "Tell, Don't Ask" style, objects have very little visible state to assert about. ... When writing a program, I care only about what that program does, not the internal state that the program uses to control what it does. The only visible behaviour that a program has is its interactions with external entities ... Mutable state makes a program harder to understand and maintain ... "Doing encapsulation right is a commitment not just to abstraction of state, but to eliminate state oriented metaphors from programming." — Alan Kay Read the full post: http://nat.truemesh.com/archives/000342.html Tags :  Team Work |...

Blue Green Deployment

If you find it a futuristic goal, it is not because it is rocket science, it is because basic principles and good professionals practices that should be applied for wise business reasons are missing: http://martinfowler.com/bliki/BlueGreenDeployment.html We are in 2010 and these things are are around from at least 10 years (Agile software development is about 20 years old).  There is always time to download the latest beta version of some kind of tool, there should always be time also to learn new modern skills too :) Tags :  Team Work | Agile | Pratiche | Creatività | Innovazione | Progettazione Software | ...

make-it-easy

Il modo migliore di imparare a scrivere i test con i mock object é quello di iniziare a scriversi i mock a mano.  Chi infatti inizia a usare i tool di mocking spesso gli usa a sproposito. Questo é uno dei tanti esempi di come fare la cosa giusta concentrandosi prima sullo skill e solo dopo sul tool. Oggi ho una nuova opportunitá di fare la cosa giusta: il codice dei test deve essere breve, semplice e leggibile cioé descrivere chiaramente cosa si sta testando e qual'é il comportamento atteso. Una delle cose necessarie a raggiungere questo risultato é...

Avoiding Nulls with "Tell, Don't Ask" Style

... and so avoiding also the duplication of IFs: read the full post from Nat Pryce Tags :  Team Work | Agile | Pratiche | Progettazione Software | Traduci al ITALIANO >>>

Are you an amateur or a professional?

Are you an amateur or a professional? Look for example at  bicycle riders: amateurs care mostly about the bike, the frame, the gears, the forks and so on; professionals focus on training to improve their skills and their performances during the race. When a software development project face a challenge or a problem, do you find yourself looking at the tools or at the skills of the people ? Just answer and tell the truth. So you will know if you are an amateur of software development or a professional. Update: this topic has many facets and many trade-off, still no exceptions here, when...

P ≠ NP

Una dimostrazione del noto problema P ≠ NP é stata proposta ed é nella fase di peer-review tra ricercatori del settore. Qui il post originale: http://gregbaker.ca/blog/2010/08/07/p-n-np/ Una nota per i programmatori da LightSwitch™: no, non é un problema di comparazione tra 2 stringhe, é informatica  :D Edit: allo stato attuale sono emersi due errori importanti nella dimostrazione che la invaliderebbero. Tags :  Creatività | Innovazione | Progettazione Software | Translate into ENGLISH >>>

Nuovo libro: Scrum e XP dalle trincee

Scrum and XP from the Trenches di Henrik Kniberg ora é disponibile anche in italiano.       E' il racconto di un team e della sua adozione di Scrum e XP.       Racconta i cosa, i come e i perché, i tentativi, i fallimenti e i successi raggiunti. E condivide le lezioni imparate.       Un repertorio interessante di idee e spunti utili ad applicare Scrum e XP nel proprio unico e specifico contesto.       L'ho riletto ancora una volta e ho trovato ancora diversi spunti interessanti. Il libro é disponibile su InfoQ: http://www.infoq.com/minibooks/scrum-xp-from-the-trenches Il downolad del pdf non stampabile é gratuito e...

“Start spreading the news”: the future of IronRuby

Il post completo: http://blog.jimmy.schementi.com/2010/08/start-spreading-news-future-of-jimmy.html Tags :  Creatività | Innovazione | Progettazione Software | Translate into ENGLISH >>>

Interesting algorithms

From Craig Reynolds, steering behaviors for autonomous characters : Simple behaviors for individuals and pairs: Seek and Flee Pursue and Evade Wander Arrival Obstacle Avoidance Containment ...