viernes 5 de marzo de 2010

Comprometido o Involucrado

Cerdo o Gallina


Sin ser fan de las Metodologías Ágiles, o al menos de verlas como solución a todos los problemas y no viendo en Scrum una varita mágica, hay cosas que de Scrum que me encantan.

Una de ellas es el modo que tiene al describir los participantes en el proceso sw como Cerdos o Gallinas. Me parece admirable alguien que describe un método de trabajo de una manera tan original basada en un chiste.

Me quedo sobre todo con el mensaje que podemos aplicar a los proyectos en los que participamos, tenemos que darnos cuenta que en nuestro proyecto tenemos dos tipos de participantes los Comprometidos y los Involucrados.

Si hacemos esta reflexión en un proyecto y contamos que en nuestro equipo de desarrollo tenemos pocos comprometidos y muchos involucrados probablemente el proyecto fracase. Por tanto mira al rededor e identifica cerdos y gallinas, si tienes una piara las cosas van bien, si tu equipo picotea el suelo.. medita.

Moraleja: En el Software como en la vida, debemos rodearnos de personas Comprometidas..

lunes 21 de diciembre de 2009

Comentarios del Codigo

El otro día me comentaba un compañero que tenía un problemilla con un módulo de cierta aplicación que iba muy lento.. Lo que estaba claro es que el problema había que arreglarlo, pero claro contábamos con casi 2000 líneas de código sin comentar..

En ese momento el problema se había convertido en un rompecabezas de grandes dimensiones, el cual no era fácil de solucionar.. y no lo fue. Aún no se ha hecho pero ya perece claro que hay que tirar las 2000 lineas y empezar de cero, lo que parece que llevará menos tiempo que intentar descifrar el código.

Naturalmente este no es un problema nuevo y supongo que a la mayoría de lectores de este blog les ha pasado en unas cuentas ocasiones. Lo que si esta claro que uno de los caballos de batalla del mundo del Software sigue siendo la Calidad del Código.

No podemos llegar a ser una Ingeniería de prestigio con este retrabajo constante y con un nivel de Calidad medio-bajo, y la calidad del código son los cimientos, donde creo que España esta sinceramente a la cola.. No entiendo aún porque no le damos a esto la importancia que merece.

Después de mi típica protesta, que se llevará el viento, pero que me encanta decir de vez en cuando para quedarme a gusto, os dejo con lo que realmente ha motivado este post.

He encontrado estos 13 consejos sobre los comentarios del código en el genial blog de Variable Not Found:

1. Comenta a varios niveles

2. Usa párrafos comentados

3. Tabula por igual los comentarios de líneas consecutivas

4. No insultes la inteligencia del lector

Debemos evitar comentarios absurdos como:
if (a == 5) // Si a vale cinco, ...
counter = 0; // ... ponemos el contador a cero
...
5. Sé correcto

Evita comentarios del tipo "ahora compruebo que el estúpido usuario no haya introducido un número negativo"

comunicación, que es de lo que se trata.
6. No pierdas el tiempo

No comentes si no es necesario, ni florituras, ni chistes, ni poesías, ni chascarrillos.

7. Utiliza un estilo consistente

Hay quien opina que los comentarios deberían ser escritos para que los entendieran no programadores. Otros, en cambio, piensan que debe servir de ayuda para desarrolladores exclusivamente.

8. Para los comentarios internos usa marcas especiales

9. Comenta mientras programas

10. Comenta como si fuera para tí mismo. De hecho, lo es.

"tan pronto como una línea de código sale de la pantalla y volvemos a ella, estamos en modo mantenimiento de la misma"

11. Actualiza los comentarios a la vez que el código

12. La regla de oro del código legible: deja que tu código hable por sí mismo. Si el código es bueno.. pocos comentarios hacen falta..

13. Difunde estas prácticas entre tus colegas

Si lo queréis leer entero lo tenéis aquí...

De todos modos voy a añadir el número 14:

14: Cuando acabes de programar, mira tú código, sino sabes lo que hace.. es que esta mal comentado.. y probablemente mal programado.

domingo 11 de octubre de 2009

Rational Team Concert


Hace tiempo que IBM trabajaba en su nueva suite de herramientas, la conocida como Jazz. No se veía claro la linea marcada, las continuas adquisiciones de empresas con herramientas similares y una cada vez más liosa visión de la suite Rational como un enjambre de herramientas de diferentes generaciones de desarrollo, componían un extraño cocktail.


De repente creo que se empieza a ver la luz a la estrategia y Jazz comienza a tomar forma. Jazz que empezó como un proyecto Open (pero con licencia) en el cual la comunidad puede influir en las lineas de evolución de las herramientas e incluso poder acceder a versiones trial para dar su opinión, se ha convertido en una Suite solvente e integrada.

Jazz Team Server provee una serie de servicios comunes, a cada una de las herramientas e integra ciertas horizontales como la gestión de los usuario, los áreas de proyectos y ciclos de vida de cada uno de ellos, además como servicios de comunicación en tiempo real. A partir de ahí podemos ir pinchando herramientas que nos van aportando funcionalidades para cada fase del ciclo de vida. Rational Team Concert para gestión del cambio y de la configuración, Rational Quality Manager para gestión de planes de pruebas, Rational Software Architec para diseño y construcción, Rational Focal Point for Project Management para gestión de proyectos, etc..

Es justo decir que cada herramienta por separado es sin duda una de las lideres del mercado, aunque probablemente ninguna sea la mejor, su valor diferenciador es es primer lugar que Rational lo tiene todo y además integrado.

Sin duda el corazón de la suite es Rational Team Concert (RTC) que desde luego en muchos sentidos es una de las mejores herramientas que he visto... ¿Que es lo que hace?

Las funcionalidades fundamentales que cubre son las siguientes; gestión de tareas, gestión de incidencias, gestión de compilaciones, repositorio de código, gestión de incurridos (imputación de horas) y algunas más de menor importancia.

El primer contacto como usuario es genial, recibe un mail con un enlace y magia !!!, tu entorno eclipse se sincroniza y adquiere todas las configuraciones y proyectos que tengas asignados.. En tres minutos puedes estar desarrollado.. Madre mía, se acabaron los tiempos de configuración del recién llegado...

En segundo lugar tu proyecto puede tener asignado un ciclo de vida a medida, aunque algunos como SCRUM o RUP vienen de serie los puedes amoldar a tu casuística..

El repositorio de código maravilla en el sentido de que maneja tres niveles, tu entorno local osea tu equipo, tu entorno local en el server ( te guarda todos tus trabajos en el server) y el entorno que centraliza los fuentes.. puedes decidir solo subir al final cuando quieres. Maneja conceptos como Entrega, Linea base, etc de una manera muy intuitiva todo lo contrario que era ClearCase.

Otra cosa que llama la atención es que levantar un entorno de integración continua es cosa de segundos, ya que directamente los gestiona y tanto para local como a nivel de servidor centralizado.

Gestión de tareas, incidencias y cambios, pudiendo asociar a entregas que hagas los mismos, de tal modo que puedes saber a que versión del código pertenecen e incluso a que compilación ya que te las puede guardar.. Esto maravilla. Puedes incluso fijar cuando una Entrega esta completa cuando los miembros del equipo hayan entregado sus tareas o incidencias. Permite modo colabarativo (tipo cvs con merge) y además puedes marcar clases exclusivas. Todo esto para Java y NET, integrandose tanto con Eclipse como con Microsoft Visual Studio.

Por otro lado salvo las funcionalidades de compilaciones y las que necesitan un entorno de desarrollo, contamos con un entorno Web que nos permite gestionar gran parte de las funcionalidades.

En general la herramienta es un salto en muchos sentidos, y con una buena implantación sobre un equipo de trabajo sus ventajas son incontestables.

Como siempre algún inconveniente tenía que tener y este sin duda es el precio.. creo que solo las grandes empresas pueden permitírselo, ya que alternativas hay y la balanza se desequilibra al poner el precio.

Aún así si te lo puedes permitir, es una delicia, aunque ahora hay que poner a los desarrolladores a trabajar con ella y veremos que dicen..

miércoles 16 de septiembre de 2009

Parecidos Razonables

Los personajes de este relato son inventados y cualquier parecido con la realidad es pura coincidencia..

No es difícil mirar atrás, al frente o incluso a los lados para llegar a identificar entre los que nos rodean a unos seres diferentes y diferenciados...

Se les reconoce fácil externamente, normalmente van bien acicalados traje y corbata, corbata colorida preferiblemente, incluso amarilla. Les encanta llevar siempre el último juguete tecnológico, aunque normalmente no lo saben manejar... Eso si, ya se encargarán de dejarlo bien a la vista para que lo vea todo el mundo, salvo que haya uno mejor cerca, en ese caso al bolso rápidamente.. Su frase "has visto mi nuevo .... con guifi, tactil, 3g, etc.. " Por supuesto pronunciando todo en inglés, que viste más..

Su jerga es siempre la misma, hablar de negocio, de proyectos inexistentes y de grandes pelotazos... Regla de oro del comercial "Generar expectativas", no importa lo que vendas sino lo que creen que puedes vender..

Los mejores son aquellos que como estudiaron informática o hace 100 años estuvieron en un proyecto, creen que pueden dar lecciones de como hacer las cosas "Eso en mis tiempos lo construíamos en un día"... Si, sus tiempos fueron hace tres veranos y no sabia ni programar, y lo metieron a comercial porque "no valía para otra cosa"...

Por cierto su vocabulario suele ser, CMS, EMS, ERP, CRM, XML, NET, JAVA, DOBLE AA, PORTAL, LIFERAY, etc.. y su objetivo hacer el LINGO y meter todas las posibles en una reunión.. cuanto más consiga decir "mas expectativas"..

Naturalmente al salir de las reuniones es genial, parece que hemos ido a reuniones diferentes.. tu piensas una puta mierda "4 mantenimientos y 3 HTML" y ellos salen pensando que es un proyecto de 1 millón de euros.. 3 segundos después ya esta en las previsiones comerciales.. al día siguiente ya lo quieren facturar.. y con el gran beneficio esperado justifican que esta primera fase la podamos hacer con una rebaja del 60%.. " Es que tu no entiendes de negocio" te pueden espetar sin miramientos...

Otra de las cosas absolutamente geniales es que tienen contactos hasta en la luna, lo mejor de todo es que la mayoría están como ellos caninos de proyectos y queriendo vender, son de la misma especie, entonces a estos no les llamamos clientes sino Partners o Socios Tecnológicos, lo que realmente representa que nos subcontratan el trabajo muy baratito..

Me encanta particularmente dos términos "Sinergias" y dar "Valor añadido", que básicamente es la manera de decir que como es un amiguete ("sinergias") le tenemos que regalar un par de módulos ("valor añadido")..

Bueno, tengo que decir, que también los hay buenos... pero pocos. Los buenos son los que trabajan y no es tan siempre tomando café o en reuniones inexistentes con clientes imaginarios.. Lo peor es que estos buenos no llegan a nada la mayoría de las veces, ya que no pueden competir sin saltarse las reglas.. y su jefe no quiere alguien que venda para ganar dinero.. Anda si GANAR no es lo mismo que FACTURAR !!!, el jefe de los comerciales solo quiere facturar.. Estos, como dijo Sabina, son los Tontos %.

Aquí es cuando algún listillo me dice " A veces hay que vender barato para que no este la gente parada, o para entrar en un cliente, o para coger volumen, o para arrancar un area de desarrollo nueva, o un nuevo servicio" y "esto algunos no lo entienden" ... Si, naturalmente eso es cierto, pero ocurre tanto como se apela a ello ??

Mis disculpas a esos vendedores que se lo curran, y que quieren hacer las cosas bien.. a ver si los echáis. Como me decia una gran veterana tecnico comercial nosotros "Los compañeros del Metal" por lo que nos comemos el hacer las propuestas.. en plazos imposibles.. ¿porque quien escribe la propuesta normalmente?

Os dejo para mi con la mejor viñeta para este post.

Si esto tiene derechos lo borro

sábado 27 de junio de 2009

Biowallet & Android (III)


Nada mejor que os lo cuenten ellos..