Alliberat Subversion 1.6.16

març 5th, 2011

Ha estat alliberada la versió 1.6.16 de Subversion (SVN).

Aquesta versió del popular gestor de repositoris de programari presenta millores com:

– S’han solucionat algunes petades (crash)

– Millora el rendiment

– Resolució de bugs en general

Podeu veure la llista completa de canvis:

http://svn.apache.org/repos/asf/subversion/tags/1.6.16/CHANGES

Adreça curta Twitter: http://wp.me/pzeab-1MM

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

Més ràpid que els senyals

març 4th, 2011

Faig pública la meva novel·la Més ràpid que els senyals, en Català.

És una novel·la de Ciència Ficció i intrigues polítiques catalano cèntrica.

Espero que us agradi.

Podeu deixar els comentaris que volgueu.

Veure/descarregar la novel·la.

Adreça curta Twitter: http://wp.me/pzeab-1MJ

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

Alliberat jQuery 1.5.1

febrer 28th, 2011

El proppassat dia 26 s’alliberà la versió 1.5.1 de jQuery.

jQuery és una llibreria Javascript potentíssima i gratuïta que empren els principals websites.

Ofereix un dinamisme als llocs web que fa uns anys només era possible amb Flash.

Aquesta versió bàsicament soluciona bugs i proporciona algunes noves funcionalitats prou interessants:

  • Suport per a Internet Explorer 9 com a un dels navegadors principals i solució de tots els bugs anteriors per a aquest
  • jQuery.ajax: s’afegeix isLocal per a detectar l’entorn de desenvolupament.
  • jQuery.ajax: mimetype per a poder passar per sobre del tipus mime xhr.
  • jQuery.ajax: xhrFields. Un mapa de nom de camp/valor per a fixar en un objecte nadiu xhr. Per exemple es pot emprar amb withCredentials a true per a fer peticions cross-domain.

 

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

Crisi, competitivitat i millora de productivitat

febrer 27th, 2011

Un aspecte magnífic de la crisi, és que ha forçat a moltes empreses a modernitzar-se i a optimitzar-se.

Per exemple, ha proliferat el número d’indrets on tenen Wifi.

Dençà un temps també he vist que alguns restaurants han començat a fer menús el cap de setmana, dissabte i diumenges, que inclouen calçots i fins i tot menús de nit a un preu de 14 euros.

Els més espavilats en el millor sentit del terme, els més hàbils, que han sabut seguir donant servei de qualitat a preus populars se’n surten, i treballant més, mantenen el nivell d’ingressos precrisi.

Recordo bars on el servei era pèssim. En aquests casos el que feia era no tornar-hi. Com a mesura higiènica: no alimentar el mal servei per a que no creixi i es reprodueixi. Enlloc d’això sempre he anat a locals on el tracte és òptim, i és on els premio amb bones propines.

El que està clar és que vendre fum no té futur i que condueix a la ruïna de les empreses on es practica.

El que no sigui construir, aportar i aportar valor afegit ja no té lloc a les empreses, si és que volen ser competitives.

Una petita reflexió com a pretext per a penjar una foto del meu esmorzar. ;-)

Enllaç curt Twitter: http://wp.me/pzeab-1Mw

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

La Independència de Catalunya guanyarà un referèndum

febrer 26th, 2011

Aquest cop la Fundació Carulla i ESADE ho han dit en un estudi que fou realitzat abans de la sentència del tribunal colonial español.

Quan de temps podrà evitar el règim hereu del franquisme que Catalunya s’independitzi ara que som a Europa?.

Crec que ben poc…

http://www.cronica.cat/noticia/El_SI_a_la_independencia_guanyaria_segur_el_referendum

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

Alliberat windows 7 SP 1 i windows server r2 SP1

febrer 24th, 2011

Abans d’ahir s’alliberà el Service Pack 1 de windows 7 i de windows server 2008 R2.

L’SP1 per a windows 7 soluciona molts problemes i pot pesar fins a 2 GB!.

La versió de windows server sí que incorpora algunes novetats.

Es pot descarregar el Service Pack des del servei de windows downloads.

Via: Download Squad

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

Alliberat WordPress 3.1

febrer 24th, 2011

La darrera versió de WordPress, la 3.1, ha estat alliberada.

Aquesta versió soluciona molts errors i inclou noves funcionalitats interessants com:

– Redisseny de l’administració

– Botó per a cercar enllaços antics del propi bloc facilment

– Millores a nivell de consultes a taxonomies

Podeu veure la llista completa dels canvis a la web oficial: http://codex.wordpress.org/Version_3.1

Adreça curta Twitter: http://wp.me/pzeab-1Mj

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

Alliberat FotoSizer v1.31.0.497

febrer 22nd, 2011

La versió v1.31.0.497 d’aquest programari gratuït per a windows per a canviar la mida d’una o moltes imatges de cop, fou alliberada.

Permet indicar la mida en píxels o en percentatge, i reanomenar els arxius utilitzant variables (màscares o comodins).

No és disponible en Català però funciona molt bé.

Podeu descarregar-lo d’aquí:

http://www.fotosizer.com/Download.aspx

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

Curs de programació en PHP – segona part

febrer 19th, 2011

La primera part de l’article és aquí.

Programar és donar les instruccions a l’ordinador sobre què ha de fer i com s’ha de comportar.
Ha de tenir en compte tots els possibles escenaris i totes les possibilitat: controlar les accions de l’usuari com si prem una tecla, com coses que passen al sistema, com ara que no s’hagi acabat l’espai en disc abans d’escriure-hi un arxiu.
Això vol dir que el programador o la programadora haurà d’estar en tot i haurà de pensar en totes les possibilitats. Altrament en algun moment alguna cosa fallarà.
Els ordinadors no saben respondre a coses per a les que no els hem preparat, només per al que prèviament hem programat.

Com és un programa?

Un programa clàssic és un seguit d’instruccions seqüencials, és a dir seguides, com en un llibre, amb iteracions o bucles (per exemple quan el Bart Simpson escriu a la pissarra 100 vegades: no hackejaré la web de l’escola, un programa el que faria és: repeteix 100 vegades: escriu “no hackejaré la web de l’escola”) i condicionals (si passa això fes allò, si no fes això altre).

Un programa és molt similar a un llibre només que a aquells llibres que es van posar de moda quan jo era un bailet que es deien escull la teva pròpia aventura i en que tu podies triar: si esculls enfrontar-te als lladres i salvar a la noia passa a la plana 100, si escull avisar la policia a la 127).

La nostra feina és redactar el llibre (el programa) per a que després el lector (l’usuari) experimenti l’aventura (el programa).

Ara ja t’has instal·lat el WAMP o per separat el servidor web Apache, el PHP i el MySQL, la qüestió és que tens el servidor Web llest per a executar programes PHP.

Si no heu indicat a WAMP que s’iniciï quan arrenqui windows, llavors l’haureu d’executar manualment des del menú de programes.

Llavors us apareixerà una icona a la barra lateral dreta de windows (tray bar), al costat de l’hora. Des d’allí podreu parar, o reiniciar alguns serveis.

Reiniciar el servidor web Apache serà necessari quan canviem un paràmetre de configuració per a que Apache carregui la nova configuració i s’adoni dels canvis.

WAMP 2.1 incorpora el següent programari:

– Apache 2.2.17
– Php 5.3.3
– Mysql 5.1.53 (la versió de 64 bits)
– Mysql 5.5.8 (la versió de 32 bits)
– PhpMyadmin 3.2.0.1
– SQLBuddy 1.3.2

Ara és un bon moment per a explicar com funciona el procés de demanar una plana web a un servidor web.

Les planes web que visitem diàriament, són allotjades en servidors.

Quan nosaltres escrivim al nostre navegador una url, per exemple: http://www.php.net el navegador primer ha de descobrir quina és l’adreça ip d’aquesta plana, és a dir, saber quin servidor li entregarà aquesta plana.

Podem saber quina adreça ip hi ha darrera de www.php.net obrint una finestra ms-dos (a windows) o una finestra de terminal (a Linux i Mac Os X) i teclejant:

ping www.php.net

El número 69.147.83.197 és l’adreça ip.

L’adreça ip és un número únic, i quan un ordinador es vol comunicar amb una adreça ip, tot d’aparells (enrutadors o routers en anglès) des del router ADSL que tenim a casa, fins al que tenen al lloc on és el servidor, saben com fer arribar la informació al servidor, i de tornada cap al nostre ordinador.

Un cop el navegador sap que l’adreça de php.net és 69.147.83.197, llavors s’hi connecta, i demana la plana web que volem.

Hi ha uns servidors que fan la traducció (resolució) del nom www.php.net a adreça ip. Aquests servidors es diuen servidors DNS.

Però una cosa important que us vull comentar és que abans de fer la consulta als servidors DNS l’ordinador mira a un fitxer especial, per si de cas nosaltres volem especificar manualment que un nom d’adreça es resolgui amb una adreça ip concreta.

Això ens serà molt útil més endavant quan programem.

Aquest arxiu es diu hosts. I es troba a les següents rutes:

En el cas de Linux i unix POSIX:

/etc/hosts

En el cas de Mac Os X (10.2 i superiors):

/private/etc/hosts

En el cas de windows l’arxiu es diu:

C:\Windows\system32\drivers\etc\hosts

És important saber que hi ha un nom especial que es diu localhost.

L’adreça localhost es resol com Ip 127.0.0.1

És molt important saber que 127.0.0.1 és una adreça ip especial, que sempre apunta al nostre propi ordinador.

Així si ens connectem des del navegador a http://localhost o http://127.0.0.1 ambdues accions el que faran és demanar una plana al servidor web Apache que tenim instal·lat al nostre ordinador.

En el cas del meu arxiu /etc/hosts tinc definit localhost com 127.0.0.1 i una entrada addicional que es diu dev.codic.cat també a la 127.0.0.1. D'aquesta manera desenvolupo sobre el bloc en local i jo accedeixo amb el navegador posant dev.codic.cat que seguint el que diu l'arxiu hosts resol 127.0.0.1 i per tant va al meu ordinador.

Escriure http://localhost i http://localhost/ té el mateix resultat ja que si no diem res, la plana per defecte que es demana és /

Normalment si es demana la plana / el servidor web envia l’arxiu index.html o index.htm o index.php o default.asp en el cas de servidor IIS de microsoft.

En tot cas això es pot canviar als arxius de configuració d’Apache o IIS (servidor web de microsoft).

 

Us ensenyo a programar en Web perquè la majoria de vegades que programem en PHP ho farem per a Web, i actualment quasi totes les feines són per a Web.

Les planes web no deixen de ser arxius, com llibres, i els navegadors web les interpreten i pinten les coses que li diem que pintin.

Per exemple obriu l’editor de textes, l’eclipse, o qualsevol programa amb el que volgueu programar i copieu aquest codi:

<html>
<head>
<title>La nostra primera plana Web</title>
</head>
<body>
Hola, aquesta és la primera plana web!.<br />
Això és <b>negreta</b>.<br />
Això és <font color="#ff2222">vermell</font>.<br />
Això és un <a href="http://www.codic.cat">hipervincle a Codi Ç</a>.
</body>
</html>

Com podeu observar si executeu plana.html és a dir, si feu funcionar aquest arxiu (això es fa fent doble clic sobre l’arxiu o dient-li al navegador que obri l’arxiu)

veureu que tenim una plana web amb el títol: La nostra primera plana web i on apareix el text que hi ha dins de <body>…</body>, que després de <br /> es genera un salt a la linia següent, que el que hi ha dins de <b>…</b> surt en negreta, i que el que hi ha entre <a href=”http://www.codic.cat”>….</a> és un enllaç cap a http://www.codic.cat
<font color=”#ff2222″>…</font> el que fa és que el text que hi ha entre <font…> i </font> estigui en el color ff2222 que vol dir: intensitat de vermell FF, intensitat de verd 22 i intensitat de blau 22. Aquests són valors exadecimals, bàsicament vol dir que hi haurà a tope de vermell, i una miqueta verd i una miqueta de blau.

Els espais que hi ha que fan que les comandes comencin més cap a la dreta són per a facilitar la lectura del codi, i el fet de programar amb aquests espais es diu indentar.
Quan obrim un bloc, el codi que va dins del bloc l’indentem i així es veu de manera molt clara què forma part del bloc.
La feina d’aprendre HTML l’haureu de fer vosaltres, però és quelcom molt més fàcil que aprendre a programar en PHP.

De tota manera aquí hi ha uns quants exemples amb els que aprendreu HTML a tota velocitat.

Ara anem introduir PHP dins la plana web que hem generat.
Editem l’arxiu plana.html i el deixem així:

<html>
    <head>
        <title>La nostra segona plana Web</title>
    </head>
<body>
        Hola, aquesta és la primera plana web!.
<?php

/* Definim els colors */

$st_conjunt_de_colors = array("vermell"--> "#ff2222",
                              "blau" => "#2222ff",
                              "verd" => "#22ff22",
                              "negre" => "#000000",
                              "gris" => "#777777");

?>
        Això és <strong>negreta</strong>.<br />
<?php
/* Comença el bucle */
foreach($st_conjunt_de_colors as $s_clau-->$s_valor_del_color){
    echo "Això és <span style=\"color: #00de00;\">$s_clau</span>.<br />";
}
?>
Això és un hipervincle a Codi Ç.
</html>
</body>
</html>

Quantes coses noves en unes poques línies!!.
El que hi ha entre /* i */ és un comentari de PHP (remark en anglès).
Serveix per a fer anotacions nostres i PHP ho ignora.

La linia que comença per $st_conjunt_de_colors = array és el que anomenem un array o una matriu.
Un array és una llista que té una correspondència de clau i de valor associat a la clau.
El valor d’una clau pot ser un altre array.

Una de les grans potències que té PHP és la gran quantitat de funcions d’arrais que porta de sèrie.

El que estem definint són claus amb el nom dels colors, i els associem el valor el seu color, i després fem un bucle que recorre l’array i imprimim en format html la clau com a text visible i el valor associat com a color dins del tag d’html font.

La gràcia del PHP és que es pot barrejar amb el codi html i pot generar codi html, i així és capaç de retornar planes dinàmiques. El resultat final és el que s’envia al navegador que veuen les persones que naveguen per la nostra web.

Bé, tornant al nostre exemple, no funcionarà. No funcionarà perquè cal que anomenem l’extensió de .html a .php i que la executi el servidor web.

Això s’aconsegueix posant l’arxiu a la carpeta del nostre servidor web apache.

Si empres WAMP per a windows la ruta per defecte és C:\wamp\bin\http i per a Linux la ruta per defecta (documentRoot) per als arxius que serveix apache és: /var/www

Per a instal·lar apache en Linux feu:

sudo apt-get install apache2

Adreça curta Twitter: http://wp.me/pzeab-1Lp

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

Extensió per a Firefox: Tamper Data

febrer 17th, 2011

Aquest complement per a Firefox, en la linia de Firebug ens permet veure quines peticions web fa el nostre navegador, ja siguin GET o POST, però a més a més modificar els paràmetres que enviem.

Imprescindible per a desenvolupar en web.

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

Error de Twitter dades perdudes

febrer 17th, 2011

Malgrat encara no ho he llegit a cap dels bloc especialitzats del sector, Twitter va patir un problema tècnic ahir que ha derivat en la pèrdua d’alguns Tweets durant un interval de temps.

Ho sé perquè jo he perdut 3 Tweets de missatges personals amb una persona, un que m’enviava ella, i dos que enviava jo, i he confirmat que a ella també li han desaparegut de la bústia de missatges.

Vaig detectar que havien desaparegut ahir per la tarda, i per la nit vaig confirmar que a l’altra persona també li havien desaparegut.

Twitter no ha reportat cap incidència a la seva plana de problemes: http://status.twitter.com/

Així que he tret la conclussió que Twitter va patir un problema tècnic ahir, i tots els Tweets entre l’interval horari van desaparèixer o bé en l’escenari més afortunat per a la companyia i de menor impacte, els Tweets entre l’altre persona i jo van ser els únics afectats  (això em sembla altament improbable i m’inclino per un error genèric que hauria afectat tot el món o com a mínim milers de comptes).

Podeu donar-li un cop d’ull a la vostra bústia de missatges a Twitter i a la vista general i dir-me si també heu perdut Tweets?.

Per cert, aprofito per a comentar-vos que durant el congrés de telefonia mòbil que se celebra a Barcelona, Twitter va anunciar que traduiran el servei al Català en breu.

Adreça curta Twitter: http://wp.me/pzeab-1LW

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

Truc: augmentar les connexions http de Firefox

febrer 16th, 2011

Avui en dia amb la velocitat de les ADSL és habitual tenir navegadors amb moltes pestanyes obertes.

El Firefox, per exemple, permet guardar les finestres que tenim obertes en sortir i tornar a obrir-les quan iniciem de nou el Firefox.

El problema, és que Firefox té un limit de connexions simultànies i llavors, si en tenim força (més de 7) algunes planes carregaran malament, sobretot si utilitzen Json.

Avui en dia la majoria de planes utilitzen moltes connexions simultànies (html, imatges, javascript propis, javascript a google analytics i a facebook, i sobretot crides AJAX, etc…) per tant en iniciar Firefox de cop emprarem el màxim número que té predeterminat.

Podem canviar el màxim número de connexions HTTP de Firefox escrivint a a la barra d’adreces:

about:config

I canviarem el paràmetre network.http.max-connections augmentant-ne el valor.

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

Aplicació Android: Emulador de la consola PSP

febrer 15th, 2011

Bones notícies per als amans dels jocs i d’Android.

S’ha presentat una aplicació a la Android Store, que per $5, permet executar jocs de la Playstation 1 de Sony.

S’ha de consultar la llista ja que no tots són compatibles.

A més a més aquest programa també permet fer còpies de seguretat en ISO dels nostres jocs en CD.

Aquí podeu trobar i comprar l’aplicació.

Via: Download Squad

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

Alliberat Open Shot 1.3

febrer 14th, 2011

Avui s’ha alliberat la versió 1.3 del Programari Lliure Open Shot.

Aquest genial programa per a editar vídeos està escrit en Python i només és disponible per a Linux.

Aquí podeu veure l’anunci oficial a la seva web.

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy

Fer fracassar projectes d’IT

febrer 13th, 2011

Fer que projectes on s’hi ha invertit milions fracassin no és tan fàcil.

Caldria un destraler de la mida de jordi hereu, joan clos, zapatero o un malvat sense cor com jose maría “ansar”, o un brètol extremadament mentider i egoista com alberto ribera de ciudadanos.

Però en situacions normals no serà fàcil que fracassin els projectes d’IT, doncs els programadors que els han d’executar són professionals llargament formats amb el pas dels anys, que han invertit moltes hores de proves, temps d’estudi, investigant els detalls de la tecnologia, diners en llibres, que sacrifiquen part del seu temps personal per a mantenir-se al dia a les darreres tecnologies i així no quedar obsolets i poder oferir les millors solucions a qui els contracta. Però a més de tot això també són magnífics psicòlegs, perquè on el client demana un pal amb una roda de patí, saben veure que el que volen en realitat és una bicicleta (o un psiquiatra).

Llavors, perquè fracassen els projectes?. Perquè s’endarrereixen els terminis, perquè acaben sent molt més cars que no s’havia previst?.

En un moment anem a aquest punt però primer deixeu-me exposar la piràmide de metodologia clàssica.

En la metodologia clàssica de desenvolupament de projectes , hi ha uns quants rols definits: Programador, Analista Programador, Analista Orgànic, Analista Funcional, Cap de Projecte.

Els programadors, són els que ocupen la base de la piràmide. N’hi ha molts i són els qui fan la feina.

Després d’un temps de programar, dos anys o tres, els caps han vist si té aptituds, i si presenta una bona capacitat d’anàlisi, de síntesis de la informació, si és capaç d’organitzar la informació, i de redactar documentació, aquesta persona pot fer algunes tasques d’Analista.

Llavors tenim un Analista Programador.

Si durant uns dos anys aquesta persona es desenvolupa bé fent d’Analista Programador i té aptituds, pot començar a fer d’Analista Orgànic.

Un Analista Orgànic analitza la informació, i prepara documentació orgànica o tècnica. Amb una analisi orgànica els programadors saben com han de fer les coses tècnicament (noms de camps de la base de dades, mida, tipus de dades, claus… llenguatge de programació, etc…).

Després d’uns dos anys de fer d’Analista Orgànic, si s’ha entès bé amb els equips de programadors que depenien de les seves anàl·lisi, i la persona demostra aptituds com entendre la gent, partir els problemes en petites solucions individuals, si sap tractar amb la gent, se’l promou a Analista Funcional.

L’Analista Funcional es reuneix amb els clients (majoritàriament ho fa el Cap de Projectes o l’Analista acompanya el Cap de Projectes), els demana què volen, i a partir del que li expliquen amb paraules planeres, fa les preguntes adients i redacta una documentació explicant el que es vol fer i com es farà (sense els detalls tècnics que corresponen a l’Analista Orgànic).

L’Analista Funcional normalment acostuma a dirigir un petit equip de 3 a 5 programadors.

I finalment si se n’ha sortit bé amb les tasques d’Analista Funcional, se li detecten qualitats per a la planificació fins i tot de diversos projectes alhora, guiar equips i formar-los, negociar amb proveïdors i clients, caràcter, fermesa, empatia i dots de líder, aquesta persona passa a ser Cap de Projectes (CP / JP / PM – Project Manager).

(Nota: hi ha un altre subtipus que es diu Cap d’Equip o Team Leader, que ve a ser un Cap de Projectes descafeïnat, sense masses coneixements ni autoritat a l’organigrama, i que s’encarrega de dirigir un petit equip de Programadors o Analistes Programadors).

És a dir, per disposar d’un Cap de Projectes o d’un bon Analista Funcional calen entre 8 i 10 anys.

Aquest model era útil en els temps en que els ordinadors valien una fortuna, utilitzaven sistemes propietaris i llenguatges de programació i bases de dades que no podien aprendre’s si no estaves dins d’una empresa i portaves molt de temps estudiant-los.

Això no vol dir que aquesta piràmide de la metodologia clàssica sigui la ideal.

Hi ha programadors extraordinaris que valen un imperi, però que no serveixen, ni els agrada ni els interessa, per a fer Anàlisis Funcionals o parlar amb els clients.

No és raonable no fer servir aquest Talent, i és una ximpleria encasellar-los en funcions laborals rígides i en feines que probablement no els agraden, o fer que no puguin programar simplement perquè són tan bons que mereixen ascendir. No té sentit.

Però el que sí que té molt bo la metodologia clàssica de Desenvolupament de Projectes de Programari (Software) és que t’assegurava que un Analista Funcional o un Cap de Projecte tenien una formació suficient i les aptituds i les capacitats necessàries per a fer la seva feina.

Diguem que aquest lent procés d’escalar per la piràmide actuava de filtre i deixava fora dels llocs més delicats les persones que no en tenien la capacitat, ja fos humana, tècnica o comercial.

Sota el paraigües dels rols de la metodologia clàssica hi ha hagut la picaresca de moltes empreses de serveis (outsourcing), que com quan més amunt en la piràmide més es cotitzava, feien passar Analistes Programadors per Caps de Projecte per tal de facturar més per la hora, o programadors novells o inexperts per programadors Sènior (mínim amb 5 anys d’experiència) .

Un altre problema dels programadors que treballen en consultores fent outsourcing és que van de client en client, d’empresa en empresa, programant el que saben, però ningú els ensenyava res i ningú els corregeix els errors que cometen perquè ja són en un altre client, així que van repetint els mateixos errors empresa rera empresa. Si treballessin amb un bon Cap de Projectes aquest els formaria i els corregiria els errors de codi, disseny de bases de dades, etc…

Pel·lícula "OfficeSpace" traduïda com "Trabajo basura", absolutament imprescindible per a comprendre la vida dels programadors mal gestionats i com les empreses perden diners a cabassos

També existeix l’estafa barroera que es va posar de moda gràcies a la ignorància dels empresaris consistent en que algú que es venia com Cap de Projecte “gestor” i no tècnic, tot menystenint els tècnics proclamant que saber programar implicava no tenir cap habilitat per a dirigir equips o prendre decisions comercials. Solien dir “jo no sóc un cap de projecte tècnic, jo sóc un gestor. Els Caps de Projecte no haurien de saber programar, si en saben és que no són uns bons Caps de Projecte. Són els programadors qui han de saber programar”.

Lògicament tots els projectes on foten l’urpa aquests bon vivant fracassen, i els programadors acaben fent de Cap de Projecte i treballant 12 hores al dia i els caps de setmana gratis mentre els falsos Caps de Projecte menteixen creativament per amagar als seus caps els autèntics motius del fracàs del projecte. Aquests projectes solen acabar amb alguns programadors injustament acomiadats, amb una demanda contra l’empresa per part del client per incompliment de contracte o amb el fals Cap de Projecte abandonant l’empresa a mig projecte per a anar a enfonsar projectes una altra empresa però cobrant més.

Vendre la manca d’habilitats (skills) com si fossin una avantatja!.

Això vindria a ser com dir que un entrenador de futbol no ha d’haver estat futbolista.

L’exemple és prou gràfic. Si no ha estat futbolista no sabrà el que passa al camp, el que és rebre un cop, el que ofega entrenar 7 dies a la setmana sense un dia per estar amb la família, el desgast dels viatges en autobus de 14 hores, el que és una sobrecàrrega muscular, els nervis de jugar en un camp hostil, quina és la bona manera de fer les passades, no sabrà el que és jugar en una posició que no és la teva, amb pluja, etc…

Un exemple que vaig crear fa temps és el d’un Director d’Hospital que no sigui metge.

Doncs si no és metge i només “gestiona” pressupostos difícilment els metges podran fer-li entendre que cal un aparell de raigs X, o que cal substituir un aparell de ressonància que emet radiació letal!.

Això també ha fet molt de mal.

Com tot a la vida, hi ha mals metges, mals advocats, i mals Caps de Projecte (en realitat no mereixen dir-se així, però com no hi ha cap títol que acrediti que ets un bon Cap de Projecte fan passar bou per bèstia grossa).

És a dir, que per a tenir resultats ben professionals, calen bons professionals!. I costa molt de formar bons professionals.

I si no els sabem distingir ens la colaran i els nostres projectes aniran com el cul.

Avui en dia, amb Internet i els ordinadors generalitzats, un bon programador amb una bona idea, pot crear un projecte per si sol.

El Talent permet diferenciar-se i una sola persona pot fins i tot fer que una companyia que anava a desaparèixer avanci la competència i obtingui beneficis milionaris.

Ara imagineu Leo Messi, Xavi Hernández i Andrés Iniesta guiats per un entrenador mediocre, que no en té ni idea, però que vol fer creure tothom que en sap, i empra l’arrogància, crea terror i promou la manca de diàleg per a intentar dissimular les seves mancances.

Però tornem al model clàssic.

Si tens una persona que porta 8 anys preparant-se per a preparar documentació, per a compilar els requeriments en apartats que facin clara i entenedora la feina que han de desenvolupar els programadors i tan ben definida que no hi hagi lloc a dubtes sobre el que es fa, el que no, i com es fa, que si el client demana un canvi, no hi hagi dubte de que és un error seu i l’hagi de pagar com el que és: un canvi de requeriments; si tens aquesta persona, no repetiràs la feina dues vegades, per que fa la seva feina ben feta.

Per que el que fa fracassar els projectes no són aquells programadors que porten anys formant-se i que són els únics que fan hores extres gratuïtes o que treballen dissabtes i diumenges sense cobrar per complir un plaç que no han establert o que s’ha desvirtuat per un canvi/ampliació de requeriments que no paga el client.

El que fa fracassar el projecte és que tot aquest Talent dels programadors és en mans de persones que no tenen ni idea.

Persones que es diuen “gestores” que no saben jugar a futbol. Persones absolutament júniors o encara menys, amb molt poca experiència al món laboral, i sense les aptituds que té qualsevol Analista Funcional.

Llavors, com es vol que els projectes no fracassin?.

A la mitologia clàssica Aquiles conduïa els seus soldats a la victòria. Lluitava amb ells. Era un crack de les tècniques de lluita (programació).

I els seus homes el seguien sense dubtar-ho perquè sabien que sabia el que es feia, i no els conduïa a una derrota pel motiu de ser un ignorant sobre assumptes de guerra.

A la pel·lícula Troia mostren un Aquiles que sabia lluitar, sabia defensar-se, sabia metodologia sobre com s’havia de defensar el grup i era disciplinat.

La pràctica condueix a la mestria, i el Talent s’ha d’aconseguir amb dur esforç.

Ara imagineu-vos un montilla dirigint un exèrcit. Què passaria?.

Dir el que s’ha de fer des de reraguarda és fàcil. I aquest mal cap pot tocar el dos si les coses es posen peludes.

Però arremangar-se i fer que les coses funcionin requereix: 1. Voluntat 2. Habilitat (skills) 3. Esforç

Llavors, tenim empreses multinacionals que paguen sous de 30.000 € bruts anuals als seus programadors, si és un equip de 10 programadors 300.000 € bruts anuals, és a dir, tenen 300.000 € bruts anuals en Talent programador, però després posen aquest talent en mans de “gestors” sense experiència.

A la batalla, generals sense formació ni experiència guien les tropes d’elit al fracàs i a la seva aniquilació, que en el món d’IT es concreta en que els millors toquen el dos i van a empreses on els deixin treballar bé.

Normalment però abans han perdut moltes amistats i la seva vida social és una merda perquè es deixen la pell a la feina tractant de compensar el que d’altres espatllen amb la seva mala gestió o colant canvis de requeriments quan el projecte és a mig fer pel simple motiu que aquests gestors no fan els deures.

Avui en dia, la piràmide clàssica no és molt utilitzada, i tenim programadors multidisciplinars que quan convé fan d’Arquitectes de Sistemes, de Cap de Projectes, d’Analista Funcional (o en els cassos més humiliants de Dissenyador Web. Programar i fer servir el photoshop normalment és com ser de Green Peace i treballar a un escorxador. Requereix qualitats diferents i el que és bo en una cosa acostuma a odiar l’altra)

Però tenim un single point of failure, un punt d’error on falla tot. I és que els projectes són dirigits per persones que no tenen ni idea de què dirigeixen.

No saben res tècnic, però tampoc saben prendre requeriments. Així que els projectes són conduits al fracàs, al sobre cost, i els desenvolupadors es cremen i marxen.

Posats a escollir, sempre és millor que dirigeixi un equip o un projecte, algú sense dots tècniques però sí amb humanes que escolti i valori els tècnics, ja que si els escolta aquests el guiaran cap a la manera bona de treballar.

Els tècnics, siguin on siguin de la piràmide, estimen la seva feina, li dediquen moltes hores a perfeccionar-se i volen fer bé les coses.

Ens sentim orgullosos del que sabem fer i de com ho fem, i necessitem sentir-nos orgullosos de la nostra feina.

No hi ha una manera millor de fer plegar un equip que fer-li fer malament les coses.

Seria com forçar que un escultor genial que fa obres extraordinàries, treballi amb mals materials, males eines, amb menys temps del necessari i forçar-lo a fer xapuces. Intolerable!.

En el món dels informàtics hi ha de tot: professionals bons, normalets, amb inquietuds, per qui només és una feina… encara que majoritàriament abunden els qui estimen la professió.

Però per a saber distingir-los i guiar-los adientment cal molta competència i know how a nivell directiu.

I si es treballa per projecte, o per sprints com a la metodologia Scrum, val més que inverteixis en que els Product Owners siguin bons professionals, ben formats i amb experiència, perquè altrament estàs desaprofitant aquell Talent i cremant-lo.

I és que la majoria dels projectes d’IT fracassen, perquè els qui recullen els requeriments no els prenen bé (incomplets o erronis), perquè el client dóna un coneixement funcional erroni o incomplet, esbiaixat, i després van passant canvi sobre canvi, xapussa sobre xapussa i sempre tractant de mantenir els mateixos costos i terminis.

La majoria de cops el client no sap el que vol, molts ni tant sols saben en detall com funcionen processos crítics del seu departament, però això no els priva d’engegar projectes on s’han d’informatitzar.

I si el responsable d’una àrea, el client, no té el coneixement del que fa la seva àrea funcional, llavors ningú el té i el programador no ho podrà endevinar.

En aquests casos els informàtics només poden fracassar. De la mateixa manera que un arquitecte no pot construir una casa a mida pel client, si el client no sap quantes portes vols, si vol una o dues plantes, si hi ha d’anar ascensor per algú amb problemes de mobilitat, etc… i si a sobre el client canvi de parer constantment i es nega a pagar el sobrecost d’enderrocar les parets fetes, refer els plànols i tornar a començar la secció.

En tot cas és just que el client despistat pagui el sobrecost de les coses que van recordant (sobre la marxa) que porta la seva àrea i que s’han de reflectir al projecte. (Nota: encara que ho expressi amb humor és inadmissible que un responsable d’àrea no sàpiga què fa o què ha de fer el seu producte, servei o àrea).

Així que si voleu que els vostres projectes d’IT no fracassin, contracteu bons professionals. Digueu no a la incompetència.

Els bons programadors són importants i et salvaran el cul si tot ho altre falla i no hi ha metodologia, però un bon Cap de Projecte amb un equip de programadors Junior els acabarà formant i es preocuparà de que treballin amb metodologia.

Les persones que recullen els requeriments és clau que siguin bons professionals amb experiència. Altrament faran refer funcionalitats als programadors, desfer moltes hores de feina, i cremarà els tècnics perquè algú que fa d’analista funcional sense tenir ni idea no entén res de res. A més reportarà errors (bugs) que no ho són, si no que són canvis de requeriments encoberts de requeriments que no van passar al seu dia o van passar explícitament així, reportaran bugs que no són bugs si no funcionament estàndard del navegador o amb explicacions vagues i incompletes, sense captures de pantalla, etc…

I si el valor afegit de la seva “gestió” és reenviar emails, val més que contractis a una becària o becari i els posis al servei dels programadors per a que reenviï els emails.

Estalviaràs diners i problemes.

Diguem no a la incompetència.

Perquè els directors no han d’oblidar que el desenvolupament de programari és una feina artesana. Com els sastres.

Els programadors fan els vestits a mida per als seus clients (programes), però no hi ha res més ximple que posar a algú que no és sastre a destorbar la feina dels sastres, i que no els deixi prendre mides a ells i els doni mides parcials i incorrectes, els les canviï després que ja han dissenyat el patró i tallat la tela, els digui com han de treballar o els empenyi a estar més hores al taller quan resulta que la feina no es pot entregar a temps precisament perquè el no sastre no deixa fer bé la feina als artesans programadors.

I quan dic artesans ho dic de manera estrictament literal.

El programador ha de conèixer aspectes del maquinari, com la velocitat a la que pot escriure en disc, o desenvolupar estratègies per a superar aquest límit, calcular quantes instruccions pot executar el servidor per segon, extrapolar quants usuaris concurrents (alhora, que ara estem a Internet i la web s’accedeix globalment) suporta la web, optimitzar els colls d’ampolla per superar aquests límits, fer consultes a la base de dades que ben fetes triguen 0,01 segons però mal fetes poden bloquejar el servidor durant quatre segons (i 50 també!)… es construeix amb molt de talent i coneixent els detalls de les màquines, els sistemes operatius i els llenguatges de programació!!! I també els seus límits.

Bé, si l’empresa és milionària i no li preocupa la competència sí que es pot treballar així.

Avui en dia ens trobem amb nous paradigmes, un d’ells és que molts joves saben molt més que els seus professors en algunes àrees. Si els membres s’un equip saben molt més que qui els mana i aquest els obliga a fer les coses malament, l’empresa perdrà l’equip.

Es pot tenir un Cap de Departament no tècnic si té unes magnifiques qualitats humanes i de planificació i escolta els tècnics.

Però és devastador que qui pren els requeriments i demana explicacions sobre com estan els desenvolupaments, és a dir qui actua com Analista Funcional i com Cap de Projecte (els product owners a la metodologia scrum) no tinguin ni idea del que fan.

També és un problema que persones que no saben de programació prenguin decisions, o deixin de prendre decisions necessàries, sobre com es treballa amb els repositoris de codi (CVS, Subversion, Git…), quins servidors de desenvolupament hi ha i qui els pot gestionar, quins entorns hi ha (desenvolupament, integració, pre-producció, producció/explotació), quina metodologia es fa servir per a les pujades o per a la programació del codi…

Tot sovint els equips es trobaran treballant sobre els mateixos recursos (arxius de codi, procediments emmagatzemats de la base de dades…) bloquejant-se i trepitjant-se els uns als altres, amb branques desactualitzades… i les pujades a producció seran infernals, llargues, feixugues, plenes de problemes, fent que l’empresa perdi diners en estar parada la web (o generant errors) i cremaran els bons professionals que només tracten de fer bé la seva feina.

En moltes empreses de consultoria i de Desenvolupament a mida de Programari els que la lien són els comercials. Com ells cobren bonus en funció de la quantitat de projectes que venen, i tampoc tenen ni idea de res, venen coses impossibles, amb terminis esbojarradament curts o molt per sota del seu cost d’execució real, i un cop signat el contracte cobren i desapareixen deixant el marró al Cap de Projecte i a l’equip.

Una altra tècnica que fan servir els mediocres és fer reunions constantment, que esdevenen trampes per a monopolitzar el temps dels Caps de Projecte potents que podrien canviar les coses.

Des de la seva posició a negoci, imposen fer reunions que consumeixen hores salvatgement i impedeixen avançar en àrees importants.

I és que ja sigui per a recollir requeriments, per a redactar documentació, per a programar, per a dirigir un projecte, per a tenir cura de l’equip… cal tenir temps per a dedicar-li.

Valdria més sacrificar un programador Sènior i, després de pactar-ho, demanar-li que faci de product owner (metodologia Scrum) i reculli els requeriments.

Serà fotut per a ell si li agrada programar, però tindrà la satisfacció que els seus companys poden treballar molt a gust amb els requeriments ben especificats i que la feina surt bé i més ràpid. Farà documents funcionals clars i ben redactats i no els passarà ni una als clients, perquè sap que la badada consentida del client, vol dir hores de feina extra i frustracions per als seus companys.

Per a evitar situacions com les que he descrit jo proposo que les empreses tinguin clar tot això que he dit, contractin bons caps i analistes funcionals, i facin avaluacions de 360 graus.

A les avaluacions de 360 graus, els treballadors, individualment, parlen amb una persona de recursos humans de la seva confiança i avaluen els seus caps i altres aspectes de com funciona la companyia. Lògicament la persona de recursos humans ha d’estar molt ben preparada, perquè si no encara generarà més frustració. Es tracta d’escoltar la informació clau que ens diu la gent, ja que ens aportarà una informació valuossíssima sobre on està fallant la companyia i quins són els comandaments intermedis que fan que les coses no funcionin.

Adreça curta Twitter: http://wp.me/pzeab-1KT

Català-Catalunya English-USA Traduir a l'Anglès. Translate to English Compartir: La TafaneraIndependènciaCatosfera|FacebookTwitterFriend Feed|googleDeliciousDiggTechnoratiredditmixxyahoolivestumbleuponsimpy