Thursday, October 13, 2011

Entrevista a Bob Martin: Software Craftmanship i Polyglot Programmers

L'altre dia vaig escoltar una entrevista a Bob Martin a la Software Engineering Radio (podeu descarregar-la o escoltar-la on-line). Ja havia parlat en aquest espai sobre Uncle Bob i la seva artesania del programari (software craftmanship).

Uncle Bob diu que es dedica a programar perquè és el que li agrada, i que no comparteix la idea de molta gent de que la feina de programador és una etapa transitòria fins a convertir-te en manager.


En primer lloc aquest senyor afirma que per tal de ser programador no cal una titulació universitària. L'alternativa que proposa el Sr. Robert C. Martin és una cosa semblant als aprenents dels antics gremis. Comences amb algun mestre i vas aprenent ajudant-lo a fer feina real, no escoltant lliçons. Quan ja saps molt d'un mestre vas a un altre mestre fins que et converteixes en mestre.

A l'entrevista, el locutor li pregunta que quin llenguatge de programació recomanaria i Bob respon que no pots conformar-te amb només un llenguatge de programació. Després de parlar de molts llenguatges (Java, C#, Ruby, Python, Clojure, ..) l'entrevistador pregunta si cal ser un expert en tots i Uncle Bob respon que no cal ser un expert però sí que cal saber de què van, ser capaç d'escriure alguna cosa. D'aquesta manera potser no seràs un expert en Clojure, però coneixeràs els conceptes de Functional Programming i potser podràs aplicar idees quan facis servir el teu llenguatge habitual. Això porta a la idea del Polyglot Programmer que ja en parlarem un altre dia.

Però la part més interessant és quan l'entrevistador li diu, "molt bé, quan se suposa que hem d'aprendre tot això?" i Uncle Bob li diu: millorar les habilitats d'un mateix no es pot fer en temps de feina, això s'ha de fer durant el temps personal. I fins i tot dóna el seu càlcul: cal dedicar a estudiar unes 20 hores setmanals del teu temps. PAM!

Clar, des d'un punt de vista econòmic el que està dient xoca. Costa de vendre la professió a algú que estigui començant. I els que treballen (treballem) per un altre ho veuran com un sacrifici que cal que sigui recompensat. Però pensant com un treballador preocupat en tenir feina demà, és un consell valuós.

I això porta a un altre punt. Si ames el que fas, si realment t'agrada, no ho veuràs com un sacrifici. En aquest sentit he vist en més d'una ocasió una oferta de feina on busquen un programador "friki". L'empresari el que realment vol és algú apassionat pel que fa.

I això em porta a dos històries. Una, de record trist avui, és el discurs del Steve Jobs a Stanford on insisteix en que has d'estimar el que fas perquè és la única manera de estar realment satisfet. I l'altre és el discurs de'n Pep Guardiola al Parlament on parla del mateix: sentir passió pel que un fa.

Pels que convertim aquest sacrifici en un divertiment aquestes 20 hores de les que parla Uncle Bob se'ns queden curtes.

Sunday, October 9, 2011

Estic llegint: A Dance With Dragons


De George R. R. Martin. Juliol de 2011. Publicat per Bantam. 1040 pàgines 


La cinquena part de la sèrie Cançó de Gel i Foc és la primera que s'ha publicat després d'emetre la sèrie de televisió del primer llibre (Game of Thrones), i ha estat molt més esperat que els anteriors. Evidentment no ha donat temps a que surti la traducció de Gigamesh i l'hem hagut de llegir en anglès.


 Serà difícil fer un comentari sense spoilers però és el meu costum.


És la primera novel·la que llegeixo amb l'iPad i ha estat fantàstic la lectura en anglès amb un diccionari a cop de clic. Puc dir que augmentat molt el meu vocabulari, to i que l'anglès d'edat mitjana no em serà molt útil (escuder, llança, catapulta, fossar, ...)


En aquesta novel·la l'autor descriu la historia que va relatar a Festín de cuervos, però des de la perspectiva d'uns altres personatges: vist des dels personatges del nord de Ponent (Westeros). Aquesta anomalia (descriure el mateix temps) la manté fins a la meitat del llibre on torna a còrrer el temps.


Presenta ciutats noves i personatges nous, tot i que manté als personatges supervivents. Hi ha un grapat a la ciutat de Meereen que tenen noms tan similars que em va costar de seguir.


Tot i haver-me agradat molt, aquesta és de les cinc la que trobo més fluixa. Alguns personatges no m'acaben d'agradar i altres que sí que ho feien s'han transformat i no em resulten tan atractius. Això, i la sensació de que avança el temps per portar-nos a alguna banda, però no passa res. Com si fos un llibre de transició.


Ara potser haurem d'esperar cinc anys més per veure The Winds of Winter i altre cinc per A Dream of Spring (segons la wikipedia), i confiant que George, de 63, es cuidi bé la salut.



També comentats en aquest blog: 
Juego de Tronos (acabat
Choque de Reyes (acabat
Tormenta de espadas /1 (i /2
Festín de cuervos

Sunday, October 2, 2011

Coding Dojo: fent Katas

Un Coding Dojo és una trobada on un grup de desenvolupadors es posen a treballar en un problema per tal d'aprendre i compartir experiències. Es tracta d'un esdeveniment on tothom va a aprendre (i tothom accepta que estem tota la vida aprenent)  i es practiquen les tècniques de Test Driven Developent (si no hi han proves el codi no existeix) i de Pair Programming.

La idea és que per aprendre cal repetir, repetir i repetir... com els practicants d'arts marcials. I d'aquí que hagin manllevat tota la terminologia de les arts marcials japoneses.

Hi ha diferents modalitats de Dojo: Kata preparat i Randori. Al Kata preparat els assistents tracten de resoldre un problema conegut, treballant en parelles, mentre que al Randori només hi ha un parella que codifica, la resta segueix el que van fent en un projector i la parella va canviant per torns.

Havia llegit molt però fins divendres no vaig tenir una oportunitat de participar en un coding dojo organitzat per Agile Barcelona, amb l'hospitalitat de Runroom i el patrocini de Úbeda Gin&Tapas.

Es tractava d'un Kata preparat (no de Randori) i van omplir la sala 20 persones per tal de resoldre el problema de les Torres de Hanoi. Quan vam veure que la web on acostumaven a recollir la descripció de les kates (http://codingkata.org/katas/) estava caiguda, vam improvisar i vam agafar la kata proposada a 12 meses 12 katas que era KataArgs basada en el capítol 14 de Clean Code.

Quan ens vam presentar cadascú deia els llenguatges de programació en els que treballa per tal de veure amb qui podries posar-te a resoldre el problema: Java, PHP, .Net, JavaScript, ... No sé quins llenguatges realment es van fer servir, però les converses posteriors treien a la llum que el més conegut era el Java, tot i les seves febleses.

L'experiència va ser increïble, tot i que la Kata potser era una mica complexa. Els pomodoros, la organització de l'espai de treball, el Ballmer peak... caldrà repetir.

I això de tornar a estar fent Katas és un estímul extra.