Monthly Archives: marzo 2010

Motivación, Estudios y Profesionalidad

Ayer, además de dar la conferencia que publiqué (en el post anterior), asistí a una conferencia denominada Y tras la Facultad ¿Ya soy Profesional?, impartida por Oshcar Vidal (no, no me he equivocado al escribirlo, la h es un valor añadido para crear branding).

En principio, supongo que por prejuicios (positivos) me hice espectativa de que la ponencia fuese como ir a un concierto, asistir a un evento ameno, entretenido y que se comentarían aspectos a tener en cuenta cuando se terminan estudios tales como son los facultativos o universitarios.

Mi opinión sobre la charla

Mi balance sobre la charla en sí fue el mismo que comparto con más gente que asistió (no todos), de que la charla fue algo rancia, pero sin acritud. Es decir, después de haber estado mucho tiempo estudiando y leyendo, viviendo, formas de hacer software, convivir con personas (porque muchos trabajos es casi como si vivieras con la gente), que tienen gran sabiduría y de las que se aprende un montón, llegan otras que nos dicen que tienen la panacea, al fórmula que pueden aplicar y hacer que todo vaya a mejor. No me lo creo.

En sí, los valores que intentaba inculcar: el tener un valor diferencial, crear marca propia, una imagen, y destacar sobre el resto; la pretensión de buscar siempre la perfección, sobresalir, puede crear que el trabajo en grupo, en equipo, se haga muy complicado. Personalmente, a un individuo que solo busca su beneficio personal (no estoy diciendo que Oshcar sea de este tipo de personas) es importante destacar, que se le vea y competir con los demás, incluso dentro de su empresa.

Aunque la sana competencia es importante para mejorar profesionalmente, sinceramente, valoro más que la gente sepa trabajar en equipo, que sea colaborativa y que mire por el equipo. Que haya un individuo que sea independentista, un astro de su materia, puede ser ventajoso, o incluso todo lo contrario, ya que el factor de medida del equipo y la carga se pueden volcar automáticamente sobre él y hacer que el trabajo salga, solo si el astro se encuentra en forma.

Las mismas valiosas personas que de forma individual son grandes trabajadores, si se potencian y enfocan al equipo, pueden hacer grandes y potentes equipos y, personalmente, prefiero que rindan al 75% la mayoría de personas de mi equipo, a que lo haga una sola de ellas al 100% y el resto al 20%.

¿Soy profesional?

A la pregunta, y tras la facultad, ¿soy profesional?… pues como es lógico, no, no lo eres, porque la profesionalidad es un grado que se consigue a base de experiencia, y la experiencia no es teoría, sino práctica. El profesional es una persona que trabaja en un cargo, durante un tiempo determinado y demuestra que sabe desempeñarlo con diligencia. Por tanto, la única forma de ser profesionales, es serlo, valga la redundancia.

El tema de fondo, quizás más importante, ¿la facultad prepara profesionales?… lógicamente, no, la universidad debe de formar personas, la base de sus doctrinas, que les permitan cumplir la base curricular para acceder a los puestos de trabajo que quieran desempeñar las personas. ¿cómo pueden conseguir estas personas su experiencia entonces?… trabajando.

En este enfoque, tienes que buscar a qué te quieres dedicar y potenciar tu educación en ese sentido. Eso lo primero. No hace falta hacer másters en el extrangero, basta con que quieras aprender y lo hagas con libros, con colegas, a través de una práctica de empresa… lo que sea. Algo que llegado un momento pueda probar tus conocimientos avanzados en una determinada materia.

Recuerda, sobretodo, que en el mundo que vivimos, vale más que hayas realizado algo tangible (escrito un libro, un artículo, dada una conferencia, un taller, un curso…) que tener un título de 80 horas en una doctrina específica. Nuestros contratadores buscan experiencia, que les resuelvas el problema que tienen y, si tienes los conocimientos, les da igual el cómo los hayas conseguido.

Conferencia: Metodologías Ágiles en la Práctica

ayer dicté la conferencia con el nombre del título de este post en la Universidad de Córdoba ante unos 40 alumnos y algunos profesores de la misma universidad.

Las metodologías ágiles no es un tema muy de moda en los ambientes académicos y universitarios, puesto que el desarrollo de software no es algo que se haga de forma práctica en esos entornos (se realizan más actividades de tipo docente e investigación), por lo que el tema les sonó a todos nuevo y fresco.

Fuera de aburrir al personal, la charla, aunque larga (hora y media), abarcó muchos aspectos de lo que se refiere al desarrollo del software e incluí una visión práctica de cómo lo tengo montado en la empresa en la que trabajo.

Quizás una futura presentación la haga realizando un scrum de verdad seleccionando a algunos asistentes y proponiendo una actividad a realizar que, aunque no tenga que ver con la programación, se pueda llegar a emplear un tablero sin probleas, así como asumir los roles específicos de dueño de producto, scrum master y el resto de integrantes del equipo.

Dejo la presentación aquí:

NOTA: la presentación en sí, aunque tiene algunas diapositivas explicativas y un montón de imágenes, no aporta todo el texto que se dictó, por lo que, es muy posible que resulte incompleta, extraña y carente de sentido en algunas partes.

Scrum Casero

Vale, vale, lo sé, es un poco freaky, pero la verdad es que ayuda bastante en varios aspectos:

  • Por un lado, ayuda a interiorizar el sistema, usándolo fuera del contexto habitual, dándole un matiz más desenfadado a las tareas del hogar,
  • por otro lado, las tareas del hogar se hacen más dinámicas y divertidas… ¡los niños hacen lo que sea por mover ticket!

Tablero de Scrum de andar por casa

Para realizarlo tan solo hace falta enumerar las tareas de la casa a realizar, si sois como yo en casa, que dejamos la mayoría de las tareas para el fin de semana (lavadora, barrer, fregar, …) vuestro tablero será grande, si por el contrario sois metódicos durante la semana, incluso podéis mantener el tablero para hacer iteraciones semanales, con demostración el sábado y retrospectiva el domingo :-)

El gráfico de burndown, si se hace todo en un día, se puede montar por horas, en lugar de por días, y marcar los puntos que se van consiguendo a cada hora. Para saber, sobretodo, si al final del día se tendrán todas las tareas hechas o no. Si se hace durante la semana, se puede saber a media semana si habrá que ser más constantes, o se podrá tener un poco más de relax antes de terminar la semana.

Se mire por donde se mire, es una buena técnica, y más completa que solo hacer GTD, ZTD o pomodoros ;-)

Programando en Ruby

Llevo tiempo escribiendo sobre este lenguaje de programación, como una joya redescubierta, ahora me gustaría centrarme en un libro que leí hace tiempo, pero que me resultó muy útil para comprender y adentrarme mejor en este lenguaje.

Programming Ruby
Dave Thomas, Chad Fowler, Andy Hunt; Pragmatic Bookshelf 2008

Este libro, escrito por uno de los firmantes del manifiesto ágil (Dave Thomas) y otro de ellos como co-autor (Andy Hunt), es un libro que tiene en su interior, no solo el aprendizaje del lenguaje en sí, sino de una metodología de programación, una suma de buenas prácticas de programación que se orientan a sacar el mejor partido del lenguaje potenciando sus fortalezas y aprovechándolas con patrones de desarrollo ágiles que mejoran y potencian su uso.

Recomiendo el libro a todos aquellos que quieran adentrarse en la programación en ruby de la mano de personas que desarrollan día a día con él desde hace mucho tiempo, y no se han quedado estancadas (prueba de ello es que este libro es segunda edición y en 2008 salió la tercera edición, el cual no he podido leer aún, pero promete mayor y mejor contenido).

Joe Armstrong y Erlang

Llevo bastante tiempo hablando de Erlang, y nunca había comentado la mejor fuente que había encontrado para descubrir el lenguaje y adentrarse en la programación concurrente de la mano de uno de sus creadores: Joe Armstrong. La fuente, referida como tal, es el libro que escribió Joe Armstrong por la editorial Pragmatic Programmers:

Programming Erlang
Joe Armstrong; Pragmatic Bookshelf 2007

El libro tiene una sección inicial que nos adentra en el problema que se encontró el autor, el porqué es necesario un lenguaje como Erlang y, sobre todo, un acercamiento al mismo desde la perspectiva de alguien que sabe poco o nada de programación. Es una lectura rápida y amena, facilitada por la claridad del código acompañada.

La única pega, quizás, es que el libro se queda corto a nivel de profundidad, es decir, el tema de OTP lo trata de pasada solo viendo un poco los gen_servers, así como la forma de empaquetado y puesta en producción. El entorno, la concurrencia, la distribución, todo queda en un estadio incial que puede abrumar e incluso dar la sensación de ser muy amplio al principio, pero cuando entramos en harina, se ve que nos falta más información. No obstante, tenemos una buena base y se completa todo con la información que el propio Armstrong ha dejado en la web del lenguaje.

Una lectura muy aconsejable para quien se quiera adentrar en la programación en Erlang y su entorno.

Scrum y XP desde las trincheras

Un año y medio después de haber comenzado con las tecnologías y metdologías ágiles, no tengo más que recomendar el libro que me ayudó a comenzar y que ha sido una guía durante todo este tiempo.

Scrum And XP From The Trenches
Henrik Kniberg; Lulu.com 2007

Este libro (y su traducción al castellano), han supuesto una guía práctica de cómo comenzar en el desarrollo ágil tomando a Scrum como referencia y empleando, en lo que se refiere a técnicas de programación, algunos ejemplos de la metodología de Xtreme Programming.

El libro brinda la visión personal de Henri, una persona que ha estado empleando estas metodologías como consultor con muchos grupos de trabajo a lo largo de muchos años de trabajo y, gracias a ello, y a su excelente labor pedagógica, ha conseguido escribir un buen libro, claro, conciso y bastante corto para todo el material que contiene. Son libros que se leen de forma rápida y te preguntas, cuando llegas a su última hoja: ¿ya se acabó?

Extreme Programming explained

Este es uno de esos libros pioneros que hacen que nos planteemos muchas de las cosas que hacemos y, sobretodo, el cómo lo hacemos.

Extreme Programming Explained
Kent Beck; Addison-Wesley Professional 1999

La metodología de la programación extrema fue acuñada por Kent Beck, como un conjunto de buenas prácticas y una forma de realizar los desarrollos, siempre basándose en dar el mayor valor al cliente, tal y cómo se supone que debe de ser siempre.

No obstante, el propio Beck sabe que esta metodología, al igual que las demás, tiene sus ventajas e inconvenientes, ya que si se intenta seguir de forma inflexible, puede resultar en que los proyectos terminen siendo, en algunos casos infructuosos. En este sentido, Beck, nos llama hacia la agilidad como una forma de sacar nuestro sentido común y emplear nuestro saber hacer, y no los procedimientos tipo que aplicar.

Buen libro, de principio a fin, enseña no solo las bases y teorías, sino que plantea, desde el comentario de cómo funcionarían equipos dentro de la metodología, escenarios de cómo se puede aplicar.

El futuro de MySQL

Desde que MySQL fuese vendida a Sun Microsystems, ha habido bastante gente que ha visto con otros ojos el proyecto, mostrándose algo escépticos a que MySQL pudiera seguir siendo lo que venía siendo, una base de datos libre sin mayores pretensiones. Pero siendo Sun Microsystems una empresa que ha realizado mucho código para la comunidad, pero también ha guardado mucho otro de forma recelosa, teníamos nuestras dudas.

El problema real vino cuando Sun Microsystems fue adquirida por Oracle. Esta adquisición puso a MySQL en la duda de si seguiría siendo lo que es, o pasaría a ser otro producto más recortado en su versión comunitaria y ofrecido por un precio medio/alto a empresas que se lo puedan permitir. Como si de una versión light de Oracle DB se tratase.

Entre todo este tumulto, en parte levantado por Monty, uno de los principales desarrolladores de MySQL, que se fue de la empresa cuando comenzó todo el lío, surgen varias versiones de MySQL, forks, que prometen seguir la línea original y seguir apostando por el crecimiento de este sistema dentro de la comunidad y el software libre.

Una de las apuestas es MariaDB, promovida por el propio Monty, es un fork del último código estable de MySQL, agregando todos los patchs que no se incluyeron en MySQL y dando soporte a problemas que parece que los desarrolladores principales de MySQL han olvidado.

En otro punto se sitúa el proyecto Drizzle, que intenta seguir los ideales iniciales de MySQL en un punto en los que muchos de los desarrolladores que pertenecían a esta comunidad, consideran que se torció el desarrollo principal.

Con esto podemos decir que el espíritu de MySQL no ha muerto, ni morirá, puesto que seguirá vivo en dos ramas separadas de su código original en los momentos clave en los que cada comunidad vió que era el momento de un cambio.

Como nota curiosa, el ecosistema de protección de los sistemas gestores de base de datos abiertas (Open Database Alliance), se encarga de la promoción entorno a los sistemas gestores de las base de datos. Una propuesta interesante que promete un poco de seguridad dentro de este entorno.