Archive for the 'Profesión' Category

18 AugAgile significa Agile Software Development

Recién acabada la conferencia Agile 2010, organizada por la Agile Alliance, varios “pesos pesados” del agilismo a nivel internacional (UncleBob, Corey Haines, Cory Foy… incluso organizadores como J.B.Rainsberger) han señalado que la mayor conferencia sobre desarrollo ágil de software que se organiza en el planeta parece haber olvidado que hay algo muy relevante en esto del desarrollo de software: la programación. Como bien señala Martin Fowler en su blog, los “soft skills” son muy importantes para hacer bien nuestro trabajo, pero igualmente indica que “la programación juega un papel central en el desarrollo de software e intentos para marginarla correlacionan bien con caminos muertos” (como véis, Fowler es de origen inglés y eso se nota cuando escribe). :-)

Hace ya 10 años de la primera conferencia centrada en el agilismo (la XP2000), por lo que ya debe haber opiniones más que maduras al respecto. Es evidente que, como toda “marca” en un mercado, “Agile” está en pleno crecimiento a nivel masivo y eso implica que los “early adopters” ya están buscando un producto mejor. Así, ya tenemos en el paraguas de lo “agile” en relación al software, ideas venidas de otros sectores y las viejas ideas revisitadas como mejoras de las antiguas. También hay que tener en cuenta que hay países (como el nuestro) donde tanto el desarrollo de software como el agilismo van a diferentes velocidades a las marcadas en los países anglosajones y nórdicos (que son los que parecen marcar la tendencia principal). Y estas diferentes velocidades hacen que haya una mezcla de consumidores “ilustrados” y consumidores “ignorantes” (con todos los respetos para ambos “colectivos”). Ante esta heterogeneidad, el libre mercado hace de las suyas y convierte a consumidores “ignorantes” en productores “presuntamente ilustrados” y, sobre todo, potencia los productos de más fácil consumo. Como la tele. :(

Mi opinión es que es inútil intentar evitar que haya consultores, gestores, directores, certificadores, entrenadores, formadores… que vivan, con más o menos ética, con más o menos fortuna, de cada nuevo “buzz” y que nos aborden cada poco con su marketing. Entiendo que algunos prefieran seguir bajo el paraguas de lo “agile” porque les garantice clientes. También entiendo que algunos prefieran distinguirse de lo “agile” porque está empezando a desvirtuarse del conjunto de valores y principios que originaron el movimiento. ¿En el término medio está la virtud? Puede que sí, pero yo no soy muy dado a mezclar colores porque la experiencia me dice que cuando mezclas sin saber sólo te sale un color indeterminado que yo suelo denominar “caca” (quizás por exceso de rojo sangre y verde ecológico) ;-)

No quiero decir con esto que prefiera llevar todos los contenidos de programación a una conferencia aparte. Como decía alguien en twitter, hay que mantener en sincronía el mundo de gestión ágil con el de ingeniería ágil, o de lo contrario no habrá cambio cultural posible en las organizaciones. (Es mi opinión, claro)

Yo quiero ser un buen programador y quiero rodearme (intelectualmente) de buenos programadores. Creo que para llegar a ser un buen programador hay que practicar mucho (y bien) con otros. Para eso creo que tenemos que buscar dos cosas: foros donde poder adquirir estas habilidades prácticas, para poder dejar de comportarnos como onanistas de la programación, y un cambio de actitud en los programadores, para darnos cuenta de que se aprende mucho más y mejor en compañía (aunque ese “onanismo” pueda resultar placentero). Creo que en, en mi experiencia, la mayoría de las disfunciones de los equipos son debidas a miedos individuales, normalmente debidos a la falta de autoconfianza. A partir de ahí probablemente podamos empezar a tener confianza en nosotros mismos y pasar al siguiente escalón: ampliar nuestra visión “sólo técnica” y, de verdad, ser capaces de entender a las capas de gestión y comerciales de las empresas para las que trabajamos (los que trabajéis para una empresa por cuenta ajena, claro). En esa etapa ya seremos capaces de entender por qué hay gente que necesita una estimación fiable de cuánto va a costar desarrollar una funcionalidad. Pero también en esa etapa seremos capaces de defender con seguridad nuestras estimaciones (aunque no sean todo lo fiables que se necesiten) porque habremos perdido esa falta de autoconfianza que nos bloquea y nos pone a la defensiva.

Por todo esto defiendo la necesidad de potenciar eventos como la Conferencia SC2010 a la que asisitiremos unos cuantos desde España, o la XP Universe (que están arrancando Corey Haines y Cory Foy). Quiero aprender de estas Conferencias de Artesanos del Software para ser capaces de traer algo similar a nuestro país. Quiero que los programadores nos acostumbremos a participar en nuestras comunidades locales y a organizar eventos ligeros donde transmitir nuestras habilidades e ignorancias. Quiero que todos seamos aprendices y, con humildad y orgullo, busquemos el convertirnos en maestros. Quiero eso para poder pasar a la siguiente fase.

Con la ayuda de Xavi Gost y otros a los que ya he enredado en el pasado, estoy enredando en el presente y enredaré en el futuro, hemos creado hace casi un año agilismo.es con la intención de poner estos valores en un lugar relevante. Nos gusta nuestra profesión y queremos mejorar en ella. Pronto veréis que le vamos a dar una vuelta de tuerca a lo que hemos estado haciendo hasta ahora. Pero eso quedará para otro artículo. :)

07 AugArtesanos del software en directo

Me he liado la manta a la cabeza y he liado a unos cuantos más por twitter (incluidas sus respectivas parejas) para que nos vayamos el jueves 7 de octubre de 2010 a una conferencia muy especial: Software Craftsmanship 2010. Se anuncia como “Sin charlas. Sin cursos. Sólo programar”. Se celebra en Bletchley Park, un lugar relevante en la Historia de la Informática y que eventos como éste ayudarán a restaurar. Además, es una oportunidad para estar cerca de gente a la que, de otra manera, sólo podemos seguir por twitter. Personalmente, espero ver allí por lo menos a @coreyhaines y a @ecomba (Enrique fue uno de los que arrancó Agile-Spain en el principio de los tiempos).

A mi, particularmente, me interesa mucho el ver qué cosas diferentes se pueden hacer para enseñar a practicar la programación, que es donde intento posicionarme profesionalmente. Si Xavi Gost se atreviera a venir, incluso sería capaz de proponer la codekata de “un pomodoro en un pomodoro” que hicimos en Madrid y Santiago hace ya varios meses. El “cobarde y juerguista” de @kinisoftware ha preferido irse de concierto con sus amigas. Él sabrá lo que hace. Lo echaré de menos sin duda, a él y a otros muchos, pero bueno, intentaré aprender todo lo que pueda para luego poderlo contar. Es lo que hacían los viajeros cuando no había internet (en la antigüedad), que servían para llevar los avances culturales e industriales de unas provincias a otras.

Bueno, pues eso, si os queréis unir a @GermanDZ, @plagelao, @jjballano y a un servidor, registraos rápido porque quedan muy pocas plazas ya. No sé si al final iremos con camisetas rojas, para que se nos distinga por algo más que porque no hablamos bien en inglés, pero seguro que nos lo pasamos muy bien, al menos tanto como los médicos cuando van a sus conferencias, porque ninguno de nosotros pensará que es un “raro” por emplear el tiempo libre en mejorar profesionalmente. De hecho, a mi me hubiera gustado poderlo enlazar con el curso de 3 días de Greg Young sobre CQRS, pero mi presupuesto, como el de mis compañeros de viaje, sale de mi bolsillo y no da para más. Eso sí, se aceptan donaciones. En cualquier caso, ahí os dejo esa otra alternativa, que, como cae en festivo en España y de lunes a miércoles, quizás algún jefe esté dispuesto a dejaros marchar. Os aseguro que ese curso merece la pena todo el dinero que cuesta más los gastos correspondientes.

04 AugSalvar al soldado ágil

Hoy he podido comprobar como hasta el más convencido de los agilistas cede a las presiones de la gerencia porque es a lo que estamos acostumbrados y no se nos ocurre defender nuestra profesionalidad con argumentos sino con excusas. Como el agraviado es un buen amigo, daré su nombre. ;-) (Vaya uno a tener amigos para esto)

@semurat dijo hoy por twitter lo siguiente:

semuratAug 03, 10:47am via HootSuite

@semurat odio a los listos q teniendo una aplic completa y COMPLEJA de 2 años te pidan que hagas un modulo igual, pero “sencillo” en 15 días

Después de varias “puyitas” (por mi parte) creo que @ialcazar lo clavó al decirle que:

ialcazarAug 03, 12:30pm via HootSuite

@semurat Si el tiempo y el precio son cerrados, cláramente el alcance será variable, es decir no entregaras todas las funcionalidades

ialcazarAug 03, 12:31pm via HootSuite

@semurat o bien, como tienes que entregar todas las funcionalidades (alcance y precio cerrado) el tiempo será variable, es decir, retrasos

ialcazarAug 03, 12:34pm via HootSuite

@semurat o bien entregas a tiempo, lo q quería el cliente (en principio) pero lleno de fallos ya que “no dió tiempo a hacerlo mejor”. Ánimo!

En definitiva, Jorge podría haber explicado esto mismo a sus jefes. ¿De qué habría servido? A largo plazo estaría sentando las bases de la credibilidad de Jorge como profesional. A corto plazo estaría dando la oportunidad (convendría explicitarla, por si acaso) de que la gerencia priorizara los objetivos, dando la oportunidad a Jorge de entregar lo que más valor ofrezca a sus jefes, lo que podría llevar a una mayor credibilidad como profesional. En ambos casos, no hay nada que perder y sí mucho que ganar. :)

Si a alguien le interesa la opinión autorizada de UncleBob al respecto de estas situaciones, justamente refiere una muy, muy parecida en su charla “Clean Code I”. La podéis descargar desde el BitTorrent de la NDC2010 (Conferencia que se celebró recientemente en Noruega).

Por favor, si alguna vez véis a algún compañero en esta situación, recordadle que tiene más opciones que “aceptar lo inevitable”. Ayudad a salvar al soldado ágil.

08 JulConsejos para un programador pragmático (2 de 70)

Nuevo intento de revitalizar este blog y mantener un poco de ritmo de publicación. Ahora mismo estoy por una parte ocupado en mi, de momento, infructuosa búsqueda de empleo, y por otra estoy sacando ratitos (pocos de calidad, la verdad) para hacer un pequeño proyecto personal con el que ponerme al día en los asuntos prácticos del cloud computing, las bases de datos no relacionales y lenguajes dinámicos. La Conferencia Agile-Spain 2010 tampoco ha resultado para mi como yo esperaba. Y llevo semanas dándole vueltas a cómo transformar agilismo.es es una comunidad de artesanos del software. Demasiadas cosas en la cabeza. Ya lo sé. Mucho ruido y pocas nueces. Ya lo sé. Quizás porque no he conseguido instalarme en costumbres sanas como “un ritmo sostenible”, lo cuál indudablemente ayuda mucho a obtener resultados (mejores o peores, pero todo es mejorable, ¿verdad?) y a tener tiempo para pensar y, consiguientemente, mejorar. De alguna manera, de eso va el consejo número 2.

CONSEJO #2

¡Piensa! En tu trabajo.

[Think! About Your Work]

Este consejo en el contexto del libro quizás no parezca más que un gancho para que el lector se sienta un poco “obligado” a seguir leyendo. Pero en la explicación que dan los autores está la idem. Pensar en tu trabajo, en lo que representa para ti, en lo que estás dispuesto a hacer para mejorar en él, es en sí misma una actividad difícil y que, para hacerla bien, nos exige mucha transparencia con nosotros mismos. Eso no todos estamos dispuestos a hacerlo. Al menos no siempre. Los autores nos piden que, además de hacer este esfuerzo, nos comprometamos a hacerlo de manera constante. Visto así, mejor me voy a ver a la tele (que con un poco de suerte el dichoso pulpo dice que la selección española gana el Mundial de fútbol). :( ¡Meeec! ¡Error! Bueno, al menos si quieres ser bueno en tu trabajo, tenemos malas noticias para ti. La fama cuesta, y aquí vais a empezar a pagar, con sudor.

12 JunPoesía en la CAS2010

Estaba ayer preparando mi participación en el panel de la Conferencia Agile-Spain 2010 en el que hemos hablado sobre “El presente y el futuro del agilismo en España” y me encontré con este poema de Walt Whitman. Me pareció tan inspirador que no pude por menos que arrancar con él.

NO TE DETENGAS

No dejes que termine el día sin haber crecido un poco, sin haber sido feliz, sin haber aumentado tus sueños. No te dejes vencer por el desaliento. No permitas que nadie te quite el derecho a expresarte, que es casi un deber. No abandones las ansias de hacer de tu vida algo extraordinario. No dejes de creer que las palabras y las poesías sí pueden cambiar el mundo. Pase lo que pase, nuestra esencia está intacta. Somos seres llenos de pasión. La vida es desierto y oasis. Nos derriba, nos lastima, nos enseña, nos convierte en protagonistas de nuestra propia historia. Aunque el viento sople en contra, la poderosa obra continúa: Tú puedes aportar una estrofa. No dejes nunca de soñar, porque en sueños es libre el hombre.

Walt Whitman

NOTA: No, no fue porque la foto de Whitman me recordara a Xavi Gost por lo que elegí un poema suyo. :)

09 JunEl agilismo como motor de cambio del modelo productivo en España (y III)

Termino la serie de entregas que comencé hace un par de semanas. Respecto del original que envié como contribución a la Conferencia Agile-Spain 2010 (en la que espero veros a muchos) he introducido referencias y datos que ayuden a salir del terreno de la opinión y queden más cerca del de la deducción lógica, aunque desgraciadamente creo que ni la cantidad de estudios ni la fiabilidad de los mismos va a mejorar mucho nuestra percepción.

Cómo puede el agilismo impulsar un cambio en el modelo productivo

El cambio de mentalidad que exige el agilismo es, en sí mismo, un agente de cambio del modelo productivo. Es un cambio cultural en las personas y, sobre todo, en las organizaciones.

Los métodos y prácticas ágiles persiguen la eficacia evitando el retrabajo, realizando entregas frecuentes y manteniendo estrictos controles de calidad interna. De esta manera, además, se reducen los costes de producción evitando trabajar en partes del sistema que luego no van a ser usadas o que deben ser corregidas porque no cumplen con las expectativas del cliente o incluso porque son defectuosas. Y todo esto, dentro de una contexto que permite ser más competitivo porque se entrega valor a los clientes mucho antes, lo que permite obtener más pronto un retorno de la inversión al recibir antes las primeras versiones del sistema funcionando.

El agilismo se basa en aportar valor al cliente, buscando relaciones de confianza mutua, donde todas las partes se benefician. Incluso las relaciones con los empleados es diferente. Se confía en su autodisciplina y su autoexigencia, cediendo el control de muchas decisiones que tradicionalmente están centralizadas en pocas personas, que además no están al cabo de los detalles, por lo que suelen equivocarse o no ser lo más eficaces posibles.

Se busca acabar con los grandes esfuerzos dedicados a entregar a tiempo los productos. Para ello se establecen estrategias que fomentan trabajar al principio en aquellas tareas que aportan mayor valor al cliente, entregándolas completamente acabadas en cuanto es posible y revisando las prioridades frecuentemente. Y esto siempre a un ritmo sostenible. Para los proyectos que siguen metodologías tradicionales, aceptar un cambio provoca un desgaste en las relaciones con los clientes y empleados y unos costes directos y de oportunidad importantes. Con las metodologías ágiles no sólo se aceptan bien sino que incluso son bienvenidos porque así se evita trabajar en partes del sistema que luego no son utilizados1 o que deben ser corregidos más adelante. En este escenario, todas las partes ganan: los equipos de desarrollo pueden conciliar su vida personal y profesional y los clientes obtienen un mejor producto y más pronto. Esto es: estamos siendo más productivos.

¿Qué se necesita para hacer posible este cambio?

En general, cualquier cambio podríamos decir que necesita de un agente de cambio2 (individual o colectivo) que actúe como germen del mismo. Los seguidores que podrá conseguir en primera instancia serán los más propensos a adoptar cualquier cambio o a asumir los riesgos que el cambio conlleva (los “early adopters”). Pero una vez ganados estos primeros adeptos, para conseguir dar un paso más es necesario obtener apoyos dentro de la organización que queremos cambiar, y para conseguir estos apoyos siempre es bueno contar con:

  • casos de éxito para que den confianza
  • una comunidad que sirva de apoyo
  • estrategias de capacitación para conseguir que el cambio se haga efectivo

De todo esto, ¿qué tenemos ya?

Como decíamos más arriba, en España hay pocos casos de éxito conocidos porque, entre otras cosas, estamos en un sector que da poca difusión a lo que hace. Es evidente que eventos como los que organiza la asociación Agile-Spain, respaldada por una comunidad en crecimiento, y sinergias que se están buscando con otras instituciones son fundamentales para lograr que los casos de éxito que se están consiguiendo en España se puedan dar a conocer y generar la confianza necesaria de los que no gustan de ser pioneros y asumir riesgos, lo cuál es muy lícito en tiempos de crisis.

Poco a poco, y al calor de esta comunidad, comienzan a surgir empresas de capacitación y de consultoría que tratan de ayudar a las empresas y a los profesionales a adaptarse a este nuevo paradigma. Es un camino largo, pero al menos ya hemos comenzado a dar los primeros pasos. Una prueba de ello es que también comienzan a surgir las primeras bibliografías en castellano sobre estos temas. Esto es muy relevante porque, a los problemas ya citados de la economía española, la falta de dominio del inglés, a la que no es ajena del todo el sector de las TI, hace que los contenidos en castellano sean muy necesarios.

¿Qué falta?

Ya vemos que hay una pequeña llama, pero si queremos un fuego es necesario un acelerante, algo que permita que la llama se avive y vaya más allá. Es decir, necesitamos el apoyo de todos los que crean que este cambio es posible. Desde los pequeños empresarios que arriesgan su futuro hasta las instituciones con posibilidad para influir. Por ejemplo, sería muy positivo que las administraciones públicas comenzaran a exigir a sus proveedores relaciones de confianza y colaboración con entregas frecuentes y que abrieran el abanico de posibles colaboradores a pequeñas empresas que YA saben y pueden hacer esto. Iniciativas como Abredatos, por ejemplo, demostraron recientemente parte de lo que pueden hacer equipos de alto rendimiento, con buenas prácticas y con muy pocos recursos, para ofrecer servicios a los ciudadanos.

También se puede influir para que las metodologías y prácticas ágiles lleguen a los alumnos de las Universidades y centros de Formación Profesional de nuestro país. Porque necesitamos ser competitivos cuanto antes. No podemos esperar a que, poco a poco, este conocimiento vaya calando a base del impulso de una pequeña comunidad. Es necesario el impulso de entidades más influyentes.

Pero tampoco es necesario un “Pacto de Estado” para todo esto. Podemos empezar cada uno desde nuestra posición. Sin necesidad de plantear un cambio profundo de todo el sector, sino muchos pequeños cambios, cada uno en nuestro pequeño mundo en el que podemos influir. En este sentido, tener una red de apoyos (una comunidad) creo que es fundamental. Éste es nuestro verdadero reto. Somos un colectivo de más de 200.000 personas (según el estudio “Las Tecnologías de la Información en España 2008″ elaborado por AETIC) que trabaja en un sector clave para la economía española. Somos un colectivo descreido y desorganizado, pero es evidente que algo está cambiando. Y ese cambio lo estamos haciendo nosotros mismos. No es un cambio impulsado desde sindicatos, colegios profesionales, ministerios ni nada por el estilo. Lo estamos haciendo NOSOTROS.

Conclusiones

El sector del desarrollo de software en España necesita un impulso renovador que contribuya a mejorar la competitividad y la satisfacción tanto de los receptores de los proyectos como de los equipos que trabajan en ellos. Y aquí es donde las metodologías ágiles que promovemos pueden ayudar, dado que se basan en la creación de valor para el cliente, fomentan la innovación y aumentan la productividad mediante la mejora continua. Pero además, estas metodologías no se olvidan del verdadero corazón de nuestra industria: los desarrolladores de software, el capital humano que lo hace posible. Para hacer posible este cambio es necesario incorporar a la difusión del agilismo en España no sólo a profesionales, empresas e incluso a las administraciones públicas sino también a las universidades, puesto que sin formación ni investigación es muy difícil vertebrar un cambio como el que proponemos en este artículo. Si conseguimos este cambio de paradigma, la calidad de los desarrollos y la satisfacción del cliente con los servicios de TI ofrecidos por España se verán fortalecidos y, como consecuencia, la propia Sociedad de la Información en nuestro país. Esto también representa una sinergia con muchos esfuerzos institucionales y privados orientados a favorecer la innovación y la exploración de oportunidades en la Internet del futuro. Ése es el cambio del modelo productivo: un cambio cultural tanto en las empresas como, sobre todo, en las personas que las mueven en todos sus escalones.

Muchas gracias por llegar hasta aquí. Ahora espero vuestras reacciones…

Y recordad que mañana y pasado estaré en la Conferencia Agile-Spain 2010. No dudéis en tuitearme, escribirme o abordarme allí directamente. Siempre es un gusto “desvirtualizar a gente”.

Los artículos anteriores son:

Notas:

  1. Un informe bien conocido afirma, entre otras cosas, que los proyectos exitosos descartan el 42% de las funcionalidades que se definen inicialmente
  2. Si alguien está interesado en patrones y buenas prácticas para introducir cambios, aconsejo encarecidamente la lectura de “Fearless Change”

01 JunEl agilismo como motor de cambio del modelo productivo en España (II)

Continúo con la segunda parte del artículo que comencé la semana pasada y que tantos y tan buenos comentarios sugirió. Espero que os guste.

Actualización: La tercera (y última) parte ya está disponible.

Qué es el agilismo

El desarrollo de software ágil (más conocido fuera de España por el vocablo inglés “Agile”) se origina en los años 90 con las llamadas metodologías livianas, en contraposición a las metodologías pesadas, basadas principalmente en procesos burocráticos y prescriptivos, es decir, que suponían que era posible conocer desde el principio todos los detalles del sistema a construir y que, por tanto, estos no iban a cambiar durante el desarrollo. Las metodologías ágiles están basadas en un cambio de paradigma en el desarrollo de software que acepta los cambios durante el desarrollo como una realidad ineludible en la mayoría de los proyectos. Se busca la entrega continua y temprana de valor al cliente, y la excelencia técnica de los desarrolladores e integrantes del equipo, lo cuál incluye al propio cliente y a departamentos tradicionalmente separados del desarrollo como Marketing o QA (Quality Assurance). Por un lado, la gestión de los proyectos se centra en la colaboración con el cliente, el trabajo basado en la priorización de sus necesidades y el retorno de la inversión en el proyecto (ROI). Por otro lado, se buscan técnicas ingenieriles para asegurar la calidad y la estabilidad de los productos desarrollados, durante el desarrollo, no al final, haciendo responsables de este aseguramiento al propio equipo, buscando no volver a trabajar sobre una pieza de software, por ejemplo para resolver un defecto, pues esto se considera desperdicio.

Entre las metodologías ágiles más conocidas podemos citar: eXtreme Programming (XP), Scrum, Crystal Clear o Lean Software Development. El punto de inflexión en la adopción de estos métodos es la firma en 2001 del Manifiesto Ágil, donde Kent Beck (creador de XP) y otros miembros relevantes de la comunidad definen los valores y principios fundamentales de una metodología ágil a partir de las buenas prácticas que, en base a su experiencia, han visto que dan mejores resultados. Actualmente se está dando una convergencia entre estas metodologías surgidas de la observación y las surgidas de la adaptación del sistema de producción Toyota (Lean Software Development), y por ello no es extraño leer términos como “Lean-Agile” o adaptaciones de conceptos como el Just-In-Time o Kanban.

¿Qué ventajas nos aporta el agilismo?

El cambio de paradigma que representan las metodologías ágiles persigue tanto un soporte para la innovación en el desarrollo de productos como una mejora de la eficiencia en base a una mejora de los procesos, un cambio de cultura enfocado a la calidad en los resultados y la satisfacción de todos los implicados: desde el usuario final del producto hasta el propio desarrollador. En un estudio de 2008 realizado en EEUU se destaca que la adopción de métodos ágiles había representado una mejora para el 60% de las empresas mientras que para el 22% había sido una gran mejora, es decir, la abrumadora mayoría mejoran.

Otro nuevo cambio de paradigma, el de la Internet del Futuro, es una revolución que está cambiando los modelos de muchas industrias. Los nuevos líderes de Internet, como Google, Facebook, etc. tienen un fuerte componente tecnológico y se distinguen por ser muy ágiles en el desarrollo de las iniciativas. Porque, en Internet, el posicionarse es algo crítico para el futuro del desarrollo de los proyectos empresariales, como han supuesto ejemplos tan conocidos como YouTube. España no sólo necesita un fuerte sector de TI, sino también un cambio de cultura a la hora de gestionar los proyectos. Necesitamos adoptar modelos de gestión que nos permitan adaptarnos a este entorno de incertidumbre. Modelos dirigidos por valor y donde el estado de “beta” (producto no acabado con el que se busca el “feedback” temprano de los usuarios) sea compatible con un trabajo profesional, donde haya un punto de encuentro entre la ingeniería y la necesidad de adaptarse de manera continua a un entorno en constante evolución. Esto permitirá a España posicionarse como una potencia en el desarrollo de software, pero lo más importante, como uno de los países con equipos de TI capaces de aportar el valor añadido necesario para abordar los retos del futuro.

Pero conseguir estas ventajas tiene un coste. No es simplemente cambiar unos procesos por otros, sino un cambio de cultura profundo en individuos y organizaciones. Esto toma tiempo, como cualquier aprendizaje. Por eso debemos tomar acciones YA; porque, como hemos explicado antes, está demostrado que el cambio de paradigma es una ventaja competitiva importante y debemos buscar este impulso para crear innovación en nuestro sector de las TI en España.

El agilismo fuera de España

Hoy día, las metodologías ágiles se han impuesto como una realidad incontestable en los países punteros en el desarrollo de software (EEUU y su área de influencia, países del norte de Europa y potencias emergentes como India o China). Ejemplo de esto son empresas tan conocidas como Google, Yahoo! o Nokia. El agilismo es una realidad incontestable y en muchos casos un requisito para empresas y trabajadores españoles que quieren competir fuera de España.

Es evidente que nunca podremos competir con India o China en precio: tenemos que tratar de ser innovadores y entregar productos de calidad. Éste debe ser nuestro objetivo.

Hay muchísima literatura bien contrastada con realidad de empresas con éxito implantando métodos ágiles por todo el mundo y multitud de consultoras ayudando en la difícil tarea de implantar estos cambios, pero además también hay comunidades internacionales alrededor de estos temas. El agilismo a nivel internacional está representado por la Agile Alliance, con más de 5000 miembros repartidos por todo el mundo y organizadora de conferencias internacionales de gran prestigio. También cabe mencionar a la Scrum Alliance, que expide las certificaciones profesionales en torno a Scrum más reconocidas a nivel internacional. Y por último, nombrar a la comunidad Ágiles, nacida en Argentina pero con vocación latinoamericana. De hecho, Ágiles va ya por la 3ª conferencia internacional que organizan en 2010 en Perú, lo cuál, de alguna manera, indica un grado de madurez más elevado que el que existe en España actualmente, que apenas vamos por la primera.

Hay otras iniciativas menos relevantes a nivel internacional, pero que poco a poco se están haciendo su hueco, como ScrumManager, fundada en España por Juan Palacio, y que persigue la certificación profesional en Scrum en un marco más abierto que el de la Scrum Alliance.

Incluso organizaciones muy alejadas del agilismo, hasta no hace mucho vistas como antagónicas, como son PMI (certificadores del Project Manager Professional) o SEI (evaluadores del estándar CMMI) ya están incorporando mucho del cuerpo de conocimiento ágil al suyo propio. De alguna manera, estas organizaciones están certificando que hay mucho en el agilismo que merece la pena ser absorbido para sus propios cuerpos de conocimiento.

¿Agilismo en España?

En España, desgraciadamente, el agilismo es muy poco conocido por los profesionales, empresas e incluso en las universidades. Hay muy pocos ejemplos de empresas relevantes en el sector y hay muy pocos estudios y proyectos de investigación al respecto, lo cuál nos está llevando a un cierto analfabetismo en el sector. En poco tiempo, nuestros profesionales y empresas no serán competitivos ni podrán siquiera colaborar con profesionales y empresas extranjeras porque no nos habremos adaptado a estas nuevas formas de trabajar. Mientras otros crean equipos capaces de responder al cliente con incrementos de valor frecuentes, en España seguimos dividiendo los equipos según sus funciones, sin una visión global del proyecto.

Como ejemplo de empresa de relevancia que ha apostado por el agilismo en España podemos nombrar a Telefónica I+D. Hay una interesante sesión en la Conferencia Agile-Spain 2010 sobre cómo han ido integrando prácticas ágiles en Telefónica I+D. Sabemos de experiencias muy aisladas dentro de la administración pública (otra interesante sesión sobre esto en la CAS2010) y de grandes corporaciones como Indra, por ejemplo, pero hoy por hoy no es algo generalizado ni mucho menos. Sin embargo, son las pequeñas startups en Internet las que están apostando decididamente por el agilismo porque son conscientes de que es un valor diferencial que les puede distinguir de su competencia al permitirles, entre otras cosas, reducir el “time to market” (el tiempo que pasa desde que conciben una nueva idea o detectan una necesidad hasta que la pueden poner a disposición de sus clientes) y aceleran el retorno de la inversión, lo cuál es vital en este tipo de emprendimientos, especialmente en el contexto financiero actual, donde el acceso a los créditos está muy difícil.

Me queda la última parte donde explico cómo puede el agilismo impulsar un cambio en el modelo productivo. Como siempre, espero vuestros comentarios.

26 MayConsejos para un programador pragmático (1 de 70)

Hola, hace tiempo que me había dado cuenta de que tenía el blog muy, muy, muy abandonado. Pero justamente ayer que lo retomé casi por casualidad, tenía el libro de “The Pragmatic Programmer” encima de la mesa y, no sé bien cómo, se me ocurrió que podría bloguear sobre él. Capítulo a capítulo me parece una tarea titánica, teniendo en cuenta que no soy capaz de liberar ni medio párrafo sin leerlo dos y hasta tres veces. Soy el típico “tiquismiquis” que tira mucho de lo que hace en aras de la perfección absoluta (que todos sabemos que no existe, salvo cuando miramos a los ojos a Scarlett Johansson… sí, a los ojos). Pero en cambio, Andy Hunt y Dave Thomas (permitidme la familiaridad, pero es que me gusta bastante este libro), tuvieron la genial idea de ir sembrando el libro de “tips”: consejos breves y muy prácticos que, por si mismos, tienen un gran valor (en mi opinión). Y como, además de cortos, son nada más y nada menos que 70, he pensado que a un ritmo de uno o dos a la semana tendría por lo menos para un año de blog. :)

CONSEJO #1

Cuida Tu Trabajo.

[Care About Your Craft]

No tiene sentido desarrollar software a menos que lo hagamos bien. Un software con defectos provocados por una falta de pulcritud en el trabajo es francamente molesto. Cuando leo código de otro y me doy cuenta de que no está bien hecho porque no ha puesto atención a los detalles, que se ha saltado ramas de la lógica evidentes, que hay ramas enteras sin probar, el típico "... catch(Exception e) { // me lo como todo y no digo nada }...", etc… siempre pienso… ejem, bueno, mejor no digo lo que pienso, pero no es nada agradable.

Creo que si a un compañero de profesión no le importa que el resultado de su trabajo sea deficiente, cuando este código termina llegando a mi, por esas malditas maniobras del destino, entonces estoy perfectamente legitimado para pensar que ha sido un mal compañero y, seguramente un egoista y un pedante, porque seguramente ni ha tenido en cuenta las repercusiones de sus malos actos ni ha pensado que su código tenía algún defecto. Desgraciadamente he sufrido esto muchas veces… y muy probablemente también haya hecho padecerlo a algún ex-compañero.

Y cuando ese mal compañero que me ha dejado ese código descuidado soy yo mismo… :(

25 MayEl agilismo como motor de cambio del modelo productivo en España (I)

Suena un poco pedante el título, especialmente si se piensa que se trata de la contribución que me acaban de rechazar en la Conferencia Agile-Spain 2010, la primera conferencia 100% agilista que se celebra en España. Lo cierto, y aunque suene a excusa barata, es que no había pulido lo suficiente el entregable. Vaya en mi descargo que había entendido que se entregaba un primera versión y que, si era aceptada, entonces debía pulirla. Bien, no hay mal que por bien no venga, y ahora tengo material para varias entregas. Espero que, si aún queda alguien por ahí leyendo este blog, me ayudéis a completarlo con vuestros comentarios. Aunque nunca lo vaya a presentar a ningún sitio, quien sabe, quizás algún político navegando por la blogosfera se tope con este artículo y le dé por poner algo en su programa electoral.

Actualización: Ya está disponible la segunda parte. Y también la tercera (y última).

El agilismo como motor de cambio del modelo productivo en España

Introducción

El sector del desarrollo de software es una pieza fundamental en la productividad de cualquier país moderno. Hacer buen software puede ser la diferencia entre ser capaz de hacer realidad un proyecto empresarial, innovador o no. Pero no sólo eso. El software es actualmente una pieza básica en las organizaciones. Sin él, simplemente, las cosas no funcionan. No sólo porque haya actividades que no se puedan realizar, o porque el coste de realizarlas manualmente sea muy elevado, sino porque no se pueden tomar decisiones convenientemente informadas. Y eso, hoy día, es fundamental para el éxito empresarial. Por tanto, estamos hablando de un sector que debería jugar un papel preponderante en el tan citado cambio del modelo productivo, que estos vientos de crisis ponen en boca de todos. Este artículo trata de explicar cómo la adopción de métodos y prácticas ágiles está haciendo que empresas en todo el mundo desarrollen software mejor, más rápido y más barato, es decir, que sean más competitivas. Pero además, también les está permitiendo ayudar a hacer realidad e incluso potenciar las ideas innovadoras que surgen en otros sectores. ¿Queremos esto para nuestro país? Quizás debieramos seguir leyendo…

Es necesario un cambio del modelo productivo

Un reciente informe que el Grupo de Reflexión presidido por Felipe González, ex-presidente del Gobierno de España, ha elaborado para el Consejo Europeo explica que la UE en su conjunto está ante un dilema: reformarse o decaer.

Este mismo informe dice:

Las industrias y servicios basados en el conocimiento y creativos se han extendido significativamente durante las dos últimas décadas, convirtiéndose en los pilares centrales del empleo y del dinamismo económico en Europa. Los tiempos en que la ventaja competitiva de la UE se medía en costes salariales hace mucho que han quedado atrás. Hoy día la inteligencia, la innovación y la creatividad han pasado a ser los criterios de referencia. Son el seguro de la prosperidad futura de Europa. Vivimos en un mundo que demanda no sólo productos y mercados de alto valor, sino también, cada vez más, capacidades de alto valor.

Por tanto, parece fácil concluir que es necesario reformar nuestro modelo productivo y enfocarlo hacia sectores capaces de ofrecer valor añadido. Uno de estos sectores, como ya hemos citado más arriba, es el sector de las TI (Tecnologías de la Información) y del desarrollo de software en particular.

Estado de la economía española

En la crisis de la economía española parece que todos los analistas coinciden en que una fatídica concurrencia de circunstancias nos están haciendo pasarlo peor que otros, a pesar de la solidez de nuestro sistema financiero. Además de la crisis financiera mundial, parece ser que las familias españolas estaban asumiendo un elevadísimo endeudamiento: vivíamos por encima de nuestras posibilidades. Esto provocó, entre otras cosas que el ahorro privado fuera escaso y que, por tanto, no hayamos podido usarlo para hacer más fácil el paso por la crisis. Por otro lado, la elevada dependencia del sector de la construcción y sus derivados, entre otras cosas provocó una desincentivación de la educación frente a los ingresos rápidos que los jóvenes podían obtener en el sector de la construcción, lo que ahora les lleva a tener dificultades serias para acceder al mercado laboral. No digamos si hablamos de sectores que requieren una alta cualificación.

Todo esto nos lleva al desolador resumen: no somos competitivos. Y si no hacemos algo YA no lo seremos durante mucho tiempo.

Cómo salir de la crisis

A corto plazo parece que sólo hay dos caminos posibles:

  • aumentar la productividad
  • bajar los costes de producción

Los primeros pasan por ser más eficaces, mientras que los segundos parece que sólo pasan por reformas laborales que permitan abaratar las horas de trabajo.

El agilismo puede ayudar en los dos aspectos. Lo veremos más adelante, pero antes veamos, para aquel lector que no lo conozca, qué es el agilismo.

Aquí es donde lo dejamos para pensar un poco y dejar hueco para la siguiente entrega, donde haré un repaso del “estado del arte” del agilismo en España y fuera de España. Aportaré datos (cosa que no hice para la Conferencia) y trataré de demostrar con ellos que el sector del desarrollo del software en España puede ejercer un factor multiplicador sobre la economía.

Seguramente dejaré para una tercera entrega la verdadera tesis de esta contribución: cómo creo yo que podemos forzar un cambio estructural en la economía española desde el sector del desarrollo del software y, en particular, desde las pequeñas y medianas empresas que desarrollan software. De momento, espero vuestros comentarios, escritos o en persona durante la Conferencia Agile-Spain, a la que asistiré porque, entre otras cosas, haré un nuevo CodingDojo con Xavi Gost y todos los que os apuntéis.

08 MarPracticar en Segovia

La semana pasada le trataba de explicar a mis compañeras de trabajo qué es lo que iba a hacer el sábado en Segovia. Les decía que iba a practicar para mejorar mis habilidades programando. Y me miraron raro.

La verdad es que no sé, pero siempre que hablo de las cosas que hago fuera del trabajo no puedo evitar sentirme un poco incómodo. Es como si sentirme orgulloso de mi profesión y de lo que estoy aportando a ella fuera algo malo (a ojos de muchos). En fin, seguramente tiene que ver con lo de que soy un “informático vocacional”. De todos modos, cuando el viernes por la noche @digitalmeteo me dijo que sería conveniente meter las cadenas en el maletero para ir a Segovia, reconozco que me sentí muy rarito. Mira que seguir preparando las cosas para ir al #coderetreatSegovia con la que iba a caer al día siguiente. ¡Ay que estar un poco “tocado” para eso! O creer mucho en lo que estás haciendo.

Pero lo mejor de todo esto es que en Segovia coincidí con gente que siente tanta o más pasión que yo por nuestra profesión. Alberto, Alfredo, Laura, Jorge, Jerónimo, Xavi, Amalia, Javier, Eduardo, William, Carlos y otro puñado más que se montaron en un coche, con el frío que hacía, y llegaron hasta Segovia para… ¡¡PROGRAMAR!! Y ni tan siquiera para desarrollar algo sino para echar unas lineas de código de un problema muy sencillo y conocido, y al cabo de una hora, borrarlas y volver a empezar. Ya lo sé, ya lo sé… ya sé lo que parece. Pero en la charla de después de comer salieron, entre otras cosas, las razones por las que merece la pena asistir a estas actividades. Algunos dijeron que no habían practicado TDD antes. Otros no habían practicado antes la programación en pareja. Xavi Gost, por ejemplo, dijo que venía dispuesto a practicar algunas ideas de diseño en esta CodeKata bien conocida, pero se sorprendió comprobando cómo los pomodoros de 25 minutos potenciaban los beneficios de practicar la programación en pareja. En fin, cada cuál pudo aprender cosas nuevas. Cosas que no es fácil (o incluso son imposibles) de practicar en el trabajo porque el día a día lo impide.

Bueno, yo además de todo esto, tuve la impagable oportunidad de que Carlos Blé me firmara su libro. Gracias, Carlos. Además, quiero decir públicamente que Carlos está siendo todo un ejemplo para mi. Admiro su tenacidad y su valentía para lanzarse al vacío del emprendimiento y, aun así, ser capaz de regalar su tiempo y su conocimiento en actividades gratuitas como ésta o los podcasts de Podgramando (que llevamos a medias). Lo dicho, todo un ejemplo.

Pero no quiero terminar sin agradecer a Javier García Garrido, que desde su empresa Castesoft y con la colaboración de algunos organismos e individuos “en la sombra”, aporta también su granito de arena para cambiar este sector en su área de influencia, en este caso en Segovia. Suyo es este video, por si queréis echar un vistazo a algunas de las cosas que charlamos durante este “retiro”.

La foto: Gracias a Jorge Jimenez (que se me ha vuelto a olvidar preguntarle por qué lo de Semurat). Jerónimo López también me ha pasado algunas fotos, pero no sé, me ha gustado más esta de Jorge. :-)

El video: Gracias a Javier García Garrido.

PS:
Gracias a Abel por su aportación “remota”, aunque está claro que todos (sobre todo él) hubiéramos preferido practicar juntos. :-)