El Blog de Trespams

Blog personal sobre tecnologia, gestió de projectes i coses que se me passen pel cap

Transició

Entram al novembre i deixam enrere un mes d'octubre un tant estrany. Puc dir que ha estat un mes divertit, amb alguns projectes nous molt interessants, però encara així l'he trobat un període de transició, d'espera. Quelcom que normalment passava a l'estiu i que ara pareix havers-se mogut fins l'octubre.

MongoDB

En l'aspecte tecnològic hem fet servir molt MongoDB, amb la qual cosa puc dir que s'ha aprofitat el curs online de 10gen. MongoDB és molt divertit per fer-hi feina. Te permet atracar-te al tractament de dades des d'una altra perspectiva, pensar a nivell de document i no a nivell de relacions entre taules. El projecte en sí no és de bigdata, però sí un projecte on MongoDB i encaixa molt per la pròpia estructura de dades que es fan servir.

MongoDB és una de les bases de dades noSQL més interessants del moment. Pareix que tothom hi vol fer feina. Ho comprenc, és molt divertit. Però també és veritat que serveix pel que serveix: tenir grans volums de dades, facilitat de replicació, escalabilitat, etc. Però a un cost: no hi ha transaccions, no pots assegurar plenament que la dada que un usuari veu és la mateix que la que un altra usuari ha escrit, ... Per aconseguir velocitat i escalabilitat ha fet tota una sèrie de pressuposicions que has de tenir molt clares si no vols endur-te una sorpresa.

Vaig llegir a un fòrum de Django que algú demanava com podia fer-la servir per emmagatzemar una cistella i la informació de pagament. Per mi això és símptoma que l'hype de MongoDB ha arribat i que sols es vol fer servir per poder dir que es fa servir o poder dir que es fan coses de big data. Crec que hem de tenir el cap clar i tenir molt clar perquè fer servir cada cosa. MongoDB és una passada, però no la faria servir per executar una transacció. I big data no vol dir utilitzar una tecnologia concreta, sinó volum d'informació i la manipulació d'aquest volum. Tenir 1TB o més da dades si no fem res amb elles no és big data són moltes dades i prou.

Docker

Docker és una d'aquestes tecnologies emergents que segurament és la que també marca que l'octubre hagi estat de transició i espera.

Pot significar un canvi important en la manera que tenim de fer feina i de desplegar les aplicacions, atracant-nos al concepte de The twelve-factor app des d'una perspectiva molt elegant i engrescadora.

Docker ens permet crear contenidors que poden funcionar pràcticament damunt qualsevol plataforma de desplegament, fent un ús de recursos molt limitat i documentant i registrant el canvis que s'hi fan.

Això ja es podia fer, més o manco, amb màquines virtuals, Docker utilitza l'aproximació de chroot i va un poc més allà permetent-ne la creació i gestió àgil. Els companys de sistemes estan força il·lusionats i jo també, ja que ho veig com a una tecnologia disruptiva, que pot canviar la manera de fer feina de la gent que fem projectes mitjans o grans.

Hem començat a fer-hi els primers prototips per veure què ens hi trobam. Per al desplegament d'aplicacions el que he vist m'ha agradat molt, però encara queden punts de millora, fonamentalment en el que fa al tractament de les dades persistents, però tot pinta molt bé.

Per la part de programació, per tal que es pugui utilitzar Docker com a manera de deixar una aplicació llesta per a posar a producció, encara no ho tenc clar del tot. S'han d'establir procediments i automatismes per a que provar l'aplicació damunt Docker no dugui més temps que executar-la en local. És veritat que Docker a més ens permet emular serveis i màquines independents a un cost molt baix, però ara per ara encara s'han d'avaluar molt bé. No puc dir que hagi arribat encara a una "manera bona" de fer les coses.

Potser aquestes pors no serien tantes si enlloc de tenir una connectivitat de pa sucat amb oli disposàssim de bones connexions de fibra. Docker fa un ús de l'ampla de banda important per descarregar-se imatges, instal·lar i crear contenidors. Amb les connexions que tenim per aquestes contrades això pot ser un problema de col·lapse quan tots els desenvolupadors estiguin fent el mateix.

Em fa molta ràbia que la connectivitat d'alta velocitat ens faci ser poc competitius. De la mateixa manera tot això que fem d'investigar noves possibilitats i processos en qualsevol altra banda seria considerat inversió en i+d. Aquí se se t'acut posar-ho el més segur que et caigui una inspecció que te farà perdre temps i diners. Això d'investigar tots sabem que aquí no es fa i que segur que si ho poses ets un defraudador i per tant a més d'haver de justificar-ho mil i una vegades amb paperassa i enquestes, a més et farem perdre el temps personalment per a que presentis més paperassa encara. Ràbia i impotència, però com diu l'acudit, potser sigui la pròstata.

Xerrades

Una altra de les pautes d'aquest darrer mes han estat les xerrades amb gent força interessant. Alguns clients, altres simplement amics i coneguts. Però trob que ha estat molt enriquidor.

Una de les darreres va ser amb una persona que em cau especialment bé. Ens coneixem des de fa molt poc, però he de dir que m'agrada el concepte que té d'entendre els negocis i com està estructurant l'empresa, al manco el poc que sé fins ara.

Fent un cafè l'altra dia discutíem de com organitzar una empresa tecnològica i del paper que té cada perfil dins la mateixa. Aquí tenim visions diferents, però l'interessant és que en pots xerrar i treure'n quelcom positiu.

A ell per exemple li agrada fer els dos papers: de client i de cap de projecte dins el seu grup. Jo li discutia, pens que no és una bona manera de gestionar. Per mi hi ha d'haver una línia clara entre la gestió del projecte que pugui dur l'equip i la relació en la part del client. El cap de projecte se n'ha d'encarregar de facilitar la tasca de l'equip, llevar-los maldecaps per a que pugin fer la seva feina. Des de la part de client la responsabilitat del product champion és la de facilitar que el projecte avanci dins l'empresa, llevant entrebancs que el cap de projecte no pot.

Si mescles els dos rols i a més sovint actues com a client es pot arribar a crear una sensació de micromanagement on la gent tècnica no sap cap a on tirar, ja qui du la gestió del dia a dia també és que ha comanat la feina i per tant qui té tota la potestat per canviar-la. Jo ja m'hi he trobat en aquestes situacions i acabes anant d'un projecte a un altra, canviant requeriments, fent canvis de context continus. És una situació que a mig plaç acaba pagant factura, ja sia en forma de rotació de personal o falta de productivitat.

També dins les xerrades he tingut ocasió de tractar amb gent molt emprenedora. Preparar projectes que esper que puguin sortir dins el 2014. Sovint aquest tipus de gent ve demanant-ho tot, i sols quan veu l'abast del que està demanant (i el cost) toca més de peus a terra, encara que això significa algunes vegades no poder iniciar el projecte o dedicar-hi més temps per estudiar el que és important i el que és accessori.

Aquest mes però m'he trobat amb dues situacions semblants: haver preparat un pressupost i que el client m'hagi dit que la proposta és molt bona, però que una altra empresa fa el mateix amb un 25% del cost. Això em preocupa, ja que significa que o bé no he entès el projecte o bé que no som competitius.

Una vegada repassat l'abast del projecte i que efectivament era el que el client demanava segueixo sense veure cap explicació. Bé, en veig una, però si és certa significarà que el client ho tindrà molt fotut. Imaginau-vos que l'empresa té dificultats econòmiques greus. El que fa és agafar un projecte a un cost ridícul, perdent doblers a potades, però de tal manera que el que doni de paga i senyal servirà per cobrir les despeses dels propers mesos. Mentre confia en trobar nous clients que l'ajudin a seguir la roda. Una mena d'estafa piramidal on qui ho està pagant és el client que no rebrà el producte, ja que per aquesta regla de tres el projecte que se fa en cada moment és el projecte del client que acaba de pagar i l'altra ja es dona per perdut.

Esper equivocar-me i que sigui jo qui he fet malament els comptes, perquè si no l'esclafit el sentirem d'una hora lluny i em sabrà greu, perquè tot i no haver fet el projecte amb nosaltres aquestes persones em cauen molt bé.

També m'he trobat el cas d'una persona que no feia el projecte amb nosaltres no pel cost, sinó pel temps que cal per a tenir el producte llest. Un pressupost que a mi em surt per a 2-3 persones i entre 4-5 mesos li diuen que pot estar llest amb 2 mesos i 1 persona o com a molt dues. Un projecte pressuposta per 15 mesos home ja és un projecte que està força bé, no has de tenir molt en compte el que es pot paralel·litzar i el que no, com muntaràs l'estructura, com faràs el manteniment posterior, el desplegament i com es durà la gestió del risc. Per mi voler reduir-ho tant és un cas de llibre de wishful thinking, però haurem d'esperar 2 mesos per saber qui tenia raó, ens hem hi posat messions :D

Novembre

El novembre encara l'estam encetant, però ja tenim una fita important al calendari: la pyConES a finals de mes. Des de Mallorca sortim un bon grupet de gent, al que s'han afegit amics de Girona i Barcelona. Em fa moltes ganes i esper que sia un èxit.

Hi no oblidem també una altra fita: la sortida de Django 1.6, que ja està en release candidate. La simplificació de les transaccions i un pool de connexions integrat per mi són les novetats més importants d'aquesta versió, encara que com sempre n'hi ha moltes i variades que es pot veure a l'anunci de la versió.

A diferència de Rails, Django cuida molt la compatibilitat amb les versions anteriors, amb cicles llargs de manteniments de versions i amb polítiques de canvis que intenten rompre el mínim possible. Per mi és la gran diferència entre els dos projectes. A Rails cada actualització és un maldecap, amb Django el més segur és que no has de tocar res i si has de tocar alguna cosa està tot superdocumentat. Hype o seny, cada una ha de triar el que més s'adapti al seu model de feina.

blog comments powered by Disqus