Archive for the ‘Knowledge’ Category

A full week is over, full weeks ahead…

Tuesday, November 13th, 2007

I’ve never been so busy as I am during these ending months!

Apart from the daily job (I’ll blog about it the next few days), last weekend I took part at the local Linux Installation Party.

Thanks to Cascina Rocca Franca (a very nice public place in Turin, made to help people meet and hold courses about almost everything) we set up our notebooks, desktops, empty CD/DVD piles, cables and so on to give help to some tens of newbies and questionings.
You know, the more I do things like this (presentations, LIPs, linux/java/etc day) the more I like them. I can’t explain my feelings when some unknown person says me “thank you”. If you can get the opportunity to do something similar, do that! Your ego will greatly enjoy it!

Anyway, Sunday was time for “Fa la cosa giusta” (”Do the right thing”, in english). Again, a great time. I’ve spent about 3 hours walking around, speaking with representatives from various associations and companies.
It was all around the ethical and environmental side of life: thinking twice when buying something, ignoring the cool adv girls. Ethical, social and environment friendly turism, finance, banking, washing, eating, dressing… and energy, of course.
Indeed, an energy provider was the most interesting part of the fair.
La220 is an italian energy provider with various fares: one of them (the “green” one) claims to come completely from renewable resources, solar in particular. Such claim is certified by Legambiente, the most important environmentalist association in Italy.
I think in two months at most they will become my energy provider.

And for the next weeks? Uh, a crowd of students and Javapolis, at Antwerp, together with Filippo, Guido, Luca and Bruno.

ITA: il Linux day milanese ti cerca!

Thursday, October 11th, 2007

Vi copio/incollo la richiesta di aiuto di Francesco Cariati del MiLUG relativo all’organizzazione dell’edizione milanese del Linux Day. Se potete dare una mano, metteteci qualche ora delle vostre! Nel frattempo io prenderò parte all’edizione torinese come speaker

Ciao,
abbiamo assolutamente bisogno di risorse umane per il Linux Day 2007 a Milano (ad esempio vi copia-incollo in calce una delle richieste), chiunque pensa di avere anche solo 1-2 ore da dedicare al LinuxDay il 26 ottobre (serata preparazione evento) o il 27 (evento vero e proprio), per favore si iscriva alla ML del LinuxDay (vedi link alla riga successiva) e si offra come volontario, indicando la sua disponibilita’ orario e le preferenze sul lavoro che vorrebbe svolgere

http://www.milug.org/cgi-bin/mailman/listinfo/ml-linuxday

Grazie
Ciao

Segue una delle richieste di aiuto:

Ciao,
come coordinatore della install fest e del network, mi servirebbero delle persone per le seguenti aree:

- aiuto al networking per i visitatori (manca un cavo, il cavo e’ rotto, aiuto non mi va dhclient,…)
-”cuoco” addetto alla “cucina” (ossia una persona che masterizza al momento i vari cd delle distro, assicurando sempre una certa cache di cd gia’ pronti e raccoglie i contributi spese per i cd)
- aiuto per la install fest in qualita’ di tecnico installatore di distribuzioni (quasi sempre ubuntu)

Servirebbe inoltre un aiuto tecnico e fisico il 26 ottobre sera per preparare il LD del giorno dopo, sistemando network, tavoli e altro

Ciao

Amir, ti sto pensando sai? :)

Javaday banner

Saturday, October 6th, 2007

Can you see it on the right? (lower right actually)

All you need to do is to import the following script:

javadaylink.js

I’ve edited the sidebar.php page of my wordpress theme in order to get it as I wanted

Thanks to Fabio!

Javaday 2007: Turin setup is almost over

Sunday, September 30th, 2007

I don’t think I should talk about that now, but since it’s a common marketing practice to introduce things while they are “almost” done (the mythical beta!) here you can download the draft of the brochure and here you can get to the website. Do not bookmark it as in the following days the official web addres will pop up: http://www.javadaytorino.com

DB: it’s a matter of balance

Saturday, September 29th, 2007

It was since the beginning of my career as a software developer that I’ve seen too many devs building their so called OO apps on top of some database.

I mean those apps were nothing without a DB and things like event notifications were done (”are” done, actually) through the db: some polling task looking at a table for new things to do.

Every of these projects has a common pattern:

  1. they are started thinking at the database, and the objects structure and hierarchy is a consequence of the relational structure of the tables
  2. db fans have built a perfectly normalized db, but it is slow: too many “joins”, indexes that cannot be created because the DBAs fear the loss of speed (remember: fear is a consequence of ignorance. If you fear something, you don’t know something). DBAs de-normalize the db, keeping it in sync through stored procedures and triggers.
  3. the customer asks for some new feature that would have been just as simple as a decorator, BUT since your object hierarchy is still reflecting the DB structure, you realize very soon that you would need to modify a couple of different classes instead than adding one. And because you fear (fear! again) to modify your code, you ask the DBA to adapt the DB structure to your needs: and so views, stored procedures and functions start to pop up like pustules.
  4. step 3 is repeated ad nauseam for a whole year or so. The team is exhausted by the continous effort put on maintaining the app (that’s what I call “kick programming”, that’s stacking quick, dirty and violent solutions to small problems). Some of the older team members leave as they like to be programmers, not maintainers. Junior developers replace them, and things go worse, as a junior may not have enough experience and being new to the team means he/she doesn’t know the app well enough to keep on maintaining it even at the low quality level of the old programmers.
  5. I still don’t know, I’ve never seen that, but I know there is still some fifth point. Maybe the project is kept on by people who “just code”, continously patching the whole thing. Maybe the project dies. Maybe something else…

All this mess JUST because someone has given the DB more importance than it deserves.

Remember: a database is a place where you put things when you leave the office, because you’ll need them the day after. Period.

It’s a base to put data on: no logic, no influence on the project.

Have you ever thought at your desk drawer as a player in your project management or design process? I don’t think so.

ITA: Slogan Acqua S.Rubinetto

Tuesday, September 18th, 2007

Partorito mentre bevevo:

Acqua S. Rubinetto: l’acqua che elimina le bottiglie d’acqua

Carina eh? Dai… a me piace

ITA: JUG Torino Meeting di Settembre

Wednesday, September 5th, 2007

Quando sono tornato a Torino, mi sono ripromesso di non perdere i contatti con il JUG di Milano (dove è nata la mia passione javista e per le cose fatte bene).

Purtroppo i tempi non sempre permettono di fare tutto ciò che si vuole: fu così che mi persi uno speech molto interessante su Google Web Toolkit (interessante perchè, avendone tenuto uno su Echo2 ed essendo l’approccio di quest’ultimo opposto a quello di GWT, non volevo perdere l’occasione per qualche domandina provocatoria!)

Ma se Maometto non va alla montagna, sarà ben la montagna a raggiungere Maometto!

E allora, il 21 Settembre, presso la sede della CSP in Corso Svizzera, ci sarà il meeting del JUG Torino con in scaletta, insieme ad Hudson (Bruno Bossola), GWT (tenuto dallo stesso Gian Carlo Pace che allora tenne quello a Milano).

Maggiori dettagli sul wiki del jug.

E’ un venerdì, quindi possiamo fare tardi :)

Back from ESSAP 2007

Sunday, July 1st, 2007

Guys, the ESSAP was amazing, simply amazing!

Maybe not everybody knows it, so let me go into the details, with a brief introduction.

What is it?
ESSAP means European Summer School on Agile Programming. It’s a 5 days course, full time, full load, sponsored by the Insumbria University, that aims to introduce the student to every aspect/method of agile software development. Defining “agile” is still not easy for me (by the way, I’ve just completed the course) but I think that I could use a couple of words to give you an hint: communication (lots and sincere), organization (time, ideas, activities), testing (at large), creativity.

Why did you go there?
When I’ve read the announcing email from the xp-it mailing list, I didn’t know what would be of my time and deadlines for the end of June, so I marked it read and forgot it. Fortunately, near the deadline for application submission, two seats were still available, so I seized the opportunity: the best invested money (a few) and time so far!

Ok, but why did you go there?
Because, both at the Milano and Torino Java User Groups, agile techniques are used on a daily basis by some active members: this produces lots of words and discussions that I’ve just listened to and that communicated an enthusiasm I’ve seen for the first time at webbit 2003 (thanks Bruno!) (Amir: do you remember it?). I’ve needed to know more but time pressure, the lots of books needed to have an hint and my few customers took me away of it. ESSAP seemed to (and did) solve such issues.

First impact: students
Agile techniques (at least in Italy) live in a niche. Probably that’s because changing is undesirable by the majority but not for someone: indeed, someone likes to change and keep on changing everything, IF that means improving. It is necessary to have an open mind: open to changing, to news, to people. At ESSAP I’ve been fueled up! Twenty techs wanted some more change, some improvement. Students? Not just students! Managers, old (no offense) and young programmers, businessmen, consultants, everything. Everybody wanted to change.

Second impact: location
Judge for yourself. Not bad, uh?

Unity of measurment: the pomodoro
The pomodoro would require a book on its own, but since somebody has already written it, just know that we set it to 25 minutes work, 5 minutes pause. Each 3 pomodori, 1 pomodoro pause.

Day zero: Sunday in pizzeria
About half students (who live apart, me, for example) came to the hotel on Sunday. We then went to a pizzeria (how many pizzerie do these fratelli la bufala own?) and begin chatting (in English, of course). Lucky me to sit right between David and Rick. After half an hour of pleasantry, we talked about books, social life, software and expectations.

Day one: Intro & Executable Documents
Monday begins with Matteo Vaccari introducing XP and Agile, followed by 6 pomodori from David Hussman e Rick Mugridge about Executable Documents. At launch break, Matteo brought salad, salami, pizza and bread. Altogether having launch in the beautiful park sorrounding Villa Toeplitz. We began chatting and comparing our business domains: in particular I met people using C# and even the old Visual Basic (it’s amazing how many customers still need traditional desktop apps: I really think RIA will raise and spread).

Day two: XP Game & Mind Maps at large
The best day, imho: right after learning how to split customer requests into user stories, we practice it with the XP Game. Really good! Perfectly scheduled!.
The day kept on with Federico Gobbo and wikimaps.

Day three: TDD and JooB project
On Wednesday, Carlo Bottiglieri gave us, with 3 pomodori, an introduction to Test Driven Development, and with other 3 pomodori we saw how to apply TDD starting from user stories.
The afternoon was dedicated to the JooB project: Matteo and the guys from Varese XPUG wrote down a basic story (a web site for search and submission of job offers). We then split in three teams, one of our team played the customer, we created a couple of user stories, assigned priorities and difficulty level, shared them with the customer and got three iterations. So, right after the XP game, we use user stories on a real software project.

Day four: Creativity and DDD (and some Rails)
My personal “best talk” prize goes to Fabrizio Milo, that caught our attention with creativity examples and exercises, not just on software. Really good!
The afternoon was Antonio Terreno’s turn. Antonio spoke about Domain Driver Design and Behaviour Driven Development, disclosing what Carlo meant by naming its test classes and methods with the word “behaviour”.
At launch break, Matteo went deeper in the Rails explanation: his introduction (done on day three) suffered some technical issues and was not effective. With 2 extra pomodori, I’ve got the needed base knowledge to (almost) complete my JooB project iteration.

Day five (last day): Retrospectives
A retrospective is what you do at the end of something (could be the project, an iteration, a week, it depends on what the team chose) and it’s aimed to understanding what went well and didn’t, in order to take actions aimed to improve the next things (project, week, iteration…). The talk was hold by Luca Grulla, scrum master. At its end, we practiced retrospectives by analyzing our week at the ESSAP.
We then had a nice nature trail (astonishing view).

Xw: eXtreme week
ESSAP was my best investment so far, with reference both to time and money (for the record, it required 80 euros, and, no, I didn’t forget a zero). Quantity and quality of the things I learnt, the diversity of the people I met, the beautiful location and weather, the green park: I’ve never had a chance to see all these things together and, someway, so intense. It was a real eXtreme week.

Even the restaurants we went to were very good.

Now it’s time for ME to practice agile on a daily basis. I know there are some techniques I can’t apply (pairing when you are an alone developer, working from home, is not easy). By the way, it was suggested no to start with every single technique, but rather to try them one by one, adopting the dogmatism these methodologies require to the team and its habits.

Nonetheless, there are things I want now, because I can see the benefits in the short term.
The pomodoro, for instance, that I’ll set as the ESSAP one (25+5). But the most important technique is the user story: working alone with small companies, it’s quite easy for some useless wishes to overcome important tasks. I’ll begin writing them down on my own, discovering their business values with some timely questions but never mentioning the word “story”. If I’ll get the desired results, I’ll bring the technique to coworkers.

If all goes well, next year I’ll make my coworkers apply to the ESSAP.

Thanks
Many thanks to Matteo, Federico, to the staff (Andrea, Jacopo, Max, Mimmo, Piero), to the speakers and to every “classmate” for the wonderful week!

ITA: di ritorno dall’ESSAP 2007

Sunday, July 1st, 2007

Ragazzi, l’ESSAP è stato fantastico, semplicemente fantastico!

Ma magari non tutti sapete cosa sia, e allora vediamolo dall’inizio alla fine, con anche un po’ d’introduzione.

Cos’è?
ESSAP significa European Summer School on Agile Programming. E’ un corso di 5 giorni, full time, full load, sponsorizzato dall’Università dell’Insumbria, che introduce a tutti gli elementi necessari allo sviluppo agile. Definire “Agile” non è ancora semplice per me (d’altra parte il corso è appena finito) ma credo che, in poche parole, si possa definire come: comunicazione (tanta e sincera), organizzazione (di tempo, idee e attività), testing (ad ampio raggio), creatività.

E perchè ci sei andato?
Quando la prima email di annuncio dell’ESSAP passò nella lista xp-it, non sapevo quali sarebbero stati i miei programmi per la fine di giugno: così la ignorai. Fortuna volle che allo scadere del tempo massimo per le iscrizioni ci fossero ancora un paio di posti disponibili e colsi la palla al balzo: i soldi (pochissimi) e il tempo meglio investiti degli ultimi anni!

Sì, ma perché ci sei andato?
Perché nell’ambito dei JUG di Milano e Torino, le tecniche agili sono la quotidianità per molti: questo genera un sacco di parole che fino a pochi giorni fa mi sono limitato ad origliare, rimanendo impressionato dall’entusiasmo che mi comunicavano e che vidi per la prima volta al webbit 2003 (grazie Bruno!) (Amir: ti ricordi?). Dovevo saperne di più ma il tempo è tiranno, i libri sono tanti e i clienti pochi. L’ESSAP risolveva questi problemi.

Primo impatto: gli studenti
Le tecniche agili (almeno in Italia) sono ancora abbastanza di nicchia. Io me lo spiego pensando che cambiare è scomodo per molti, ma non per tutti: anzi a qualcuno cambiare piace, cerca di farlo in continuazione, purché ciò significhi migliorare. E’ quindi necessario avere la testa aperta: al cambiamento, alle novità, alla gente. All’ESSAP di gente così ho fatto il pieno! Una ventina di persone erano lì per imparare. Studenti? Non solo! Manager, vecchi (senza offesa) e nuovi programmatori, imprenditori, consulenti. C’era di tutto: tutti lì con un solo obiettivo.

Secondo impatto: la sede
Vi lascio giudicare da soli. Non male per essere “una roba da tecnici”, eh?

L’unità di misura: il pomodoro
Il pomodoro richiederebbe un libro a parte, ma visto che qualcuno l’ha già scritto, sappiate solo che l’abbiamo impostato in 25 minuti di lavoro e 5 minuti di pausa. Ogni 3 pomodori, 1 pomodoro di pausa.

Giorno zero: domenica in pizzeria
Circa metà degli studenti (quelli che venivano da lontano, me compreso) sono arrivati all’hotel (convenzionato con l’università) un giorno prima. Siamo quindi andati tutti insieme in pizzeria (ma quante pizzerie hanno questi fratelli la bufala?) e abbiamo cominciato a chiaccherare (in inglese naturalmente). Gran cosa essere capitato proprio in mezzo a David e Rick. Dopo una mezz’oretta di convenevoli e pizza, ci siamo messi a parlare di libri, di sociale, di software, di aspettative.

Primo giorno: Intro & Executable Documents
La giornata è cominciata con l’introduzione a XP di Matteo Vaccari ed è proseguita con 6 pomodori di David Hussman e Rick Mugridge sugli Executable Documents. A pranzo Matteo ha portato insalata, affettati, pizza e panini. Tutti insieme nel parco a mangiare. E abbiamo cominciato a conoscerci e confrontare i vari domini lavorativi: in particolare ho conosciuto diverse persone che programmano con c# e con il buon vecchio visual basic (caspita: c’è chi ha ancora ha bisogno di applicazioni desktop classiche: mi convinco sempre di più che le RIA abbiano un sacco di spazio per diffondersi).

Secondo giorno: XP Game & Mind Maps at large
Probabilmente il giorno migliore in assoluto: dopo aver passato il lunedì imparando a dividere le richieste del cliente in user stories, abbiamo messo in pratica il tutto con l’XP Game. E’ stato davvero ottimo prendere la teoria appena imparata e metterla in pratica con un gioco di gruppo. Fantastico! Uno scheduling perfetto.
La giornata è proseguita con Federico Gobbo e le wikimaps.

Terzo giorno: TDD and JooB project
Mercoledì è arrivato Carlo Bottiglieri che ha fornito, nei primi 3 pomodori, un’introduzione al Test Driven Development, mentre nei successivi 3 abbiamo visto come applicare il TDD partendo dalle user stories.
Il pomeriggio invece ci siamo buttati sul progetto JooB: Matteo e i ragazzi del Varese XPUG hanno organizzato una storia di base (un sito per la ricerca e l’inserimento di offerte di lavoro). Quindi ci siamo divisi in 3 team, uno del team ha fatto il cliente, abbiamo tirato fuori un po’ di user stories, abbiamo dato loro delle priorità e un livello di difficoltà, le abbiamo condivise con il cliente e abbiamo organizzato 3 iterazioni. Dopo l’XP game, abbiamo messo in pratica le user stories su un caso realistico, su un lavoro di software.

Quarto giorno: Creatività e DDD (e un po’ di rails)
Il mio personale premio per il miglior talk va a Fabrizio Milo, che ci ha tenuti occupati con esempi ed esercizi di creatività, nel software ma non solo. Davvero ottimo!
Nel pomeriggio invece sono comparsi Antonio Terreno e Luca Grulla. Antonio ha quindi parlato di Domain Driver Design e di Behaviour Driven Development, rivelandomi l’aspetto teorico dietro al quale stavano gli esempi del giorno prima di Carlo che in effetti usava il termine “behaviour” per dare un nome alle sue classi di test.
A pranzo invece Matteo ha parlato un po’ più nel tecnico di Rails: l’introduzione del giorno prima in effetti non era andata benissimo, a causa di alcuni problemi tecnici. Con i due pomodori extra (perché fuori programma) di giovedì invece, ho avuto gli elementi di base necessari per cominciare a sviluppare il progetto JooB.

Quinto e ultimo giorno: Retrospettive
La retrospettiva è un’attività che il team svolge alla fine di qualcosa (del progetto, di un’iterazione, dipende dal team) che serve a capire cosa è andato bene e cosa è andato male, al fine di prendere delle decisioni mirate a migliorare i passi successivi (il prossimo progetto, la prossima iterazione, eccetera). Di retrospettive ha parlato Luca Grulla, scrum master. Alla fine del suo talk abbiamo al solito applicato la teoria alla pratica e abbiamo fatto una retrospettiva della settimana di ESSAP giunta alla conclusione.
Il tutto è quindi terminato con una passeggiata su per le montagne.

Xw: eXtreme week
L’ESSAP è stato il miglior investimento che ho fatto negli ultimi tempi, sia in termini di tempo sia di denaro (per la cronaca sono 80 euro e, no, non ho dimenticato uno zero). La quantità di cose imparate e fatte, la qualità e la diversità della gente incontrata, le splendide giornate e il verde spettacolare: mai avevo visto tutte queste cose insieme e così, come dire, intense. In questo senso è stata davvero una settimana eXtrema.

Tra l’altro, ho anche mangiato benissimo (e tantissimo).

Ora si tratta di mettere in pratica. Già so di non poter fare tutto. Il pair programming per esempio viene difficile, lavorando da solo da casa. Inoltre, come da suggerimenti, è importante NON fare tutto e subito: trattandosi di metodologie, si tratta di introdurre un certo dogmatismo nel ciclo di sviluppo, anche se smussato e adeguato al mio ambiente di lavoro.

Certe cose però voglio farle proprio subito, perché ne intravedo i benefici a brevissimo termine.
Il pomodoro, innanzitutto, che comincerò ad impostare come all’ESSAP (25+5). Ma soprattutto le user stories: lavorando da soli e con le piccole aziende è facile che nascano dei “pruriti” che fan sembrare vitali cose di dubbio valore. Comincerò scrivendomele e valutandole da solo, scoprendo il business value con qualche opportuna domanda ma senza parlare di “storie”. Se ne ricaverò dei buoni risultati, porterò il tutto nell’azienda del cliente.

Se va come credo, il prossimo anno all’ESSAP ci mando i colleghi.

Grazie
Grazie a Matteo, a Federico, allo staff (Andrea, Jacopo, Max, Mimmo, Piero), agli speaker e a tutti i miei “compagni di scuola” per la meravigliosa settimana!

Going to ESSAP

Sunday, June 24th, 2007

I’m leaving home for ESSAP 2007, the European Summer School on Agile Programming.

Agile programming seems to be a good method to empower and speed up my carrier as a freelance, making me develop better software and have happier customers.

The schedule is really interesting, isn’t it?