Hablando de metodologías con los chicos de Mad.Nug

Hoy hemos estado unos cuantos en la sala Jane Addams de Microsoft España hablando (en mi caso básicamente escuchando) acerca de metodologías de programación junto con Luis Fraile (lfraile.net), Bruno Capuano (elbruno.com), y David Salgado (geeks.ms/blogs/dsalgado) entre otros, y no quería dejar pasar la oportunidad de comentar algunas ideas que han surgido a lo largo de la charla.

Equipo y Liderazgo

Uno de los temas que se habló fue de la figura del coordinador / manager / jefe de sección (que en metodologías ágiles como Scrum podríamos equipararlo al Scrum Manager) que debe motivar al conjunto, provocar el sentimiento de “equipo” más allá de la persona individual, así como reconocer los méritos individuales, porque en el fondo seguimos siendo informáticos, y cada uno de nosotros es el mejor programador del mundo, y sabemos como puede acabar eso en un proyecto. Finalmente es importante que el equipo se sienta protegido (del cliente, de los jefes…) es decir, tiene que haber un compromiso de dar la cara por el grupo ante el resto.

Herramientas esenciales

Es importante tener un buen equipo, pero también es muy importante contar con las herramientas adecuadas para ahorrar tiempo y costes de desarrollo, poder controlar cuanto nos está costando hacer un programa, y combinado con metodologías como Scrum, Agile… tener un control sobre cómo se está llevando el proyecto. Entre las herramientas que se comentaron estaban:

  • Control de código fuente (SVN, Git, TFS), es imprescindible tener un sistema de control de código fuente (tanto si trabajas solo o con compañeros), de tal manera cualquier error se puede revertir volviendo a versiones anteriores, además de que por experiencia te acostumbras a documentar mejor cada actualización.
  • Sistemas automatizados de compilación: En un equipo más o menos grandes, es interesante tener la opción de que cada X tiempo se generara una versión completa del ejecutable, se ejecutaran las pruebas pendientes y se generara un informe, de tal manera podríamos saber en que estado está el proyecto de manera regular.
  • Control de bugs y tareas (Bugzilla, TFS): El mantenimiento y las pruebas es una parte esencial del desarrollo de software, y nada como un buen sistema de feedback combinado con gestión de tareas para hacer esta parte más llevadera.
  • Pizarra: Tenemos la necesidad de plasmar ideas, soluciones, o incluso tareas en la comodidad de nuestra pizarra anticuada y analógica, pero cuya utilidad es indiscutible.

Prueba y error

Otra cosa de la que se habló y con ella concluyo este post, es de la necesidad de tener sistemas de pruebas, ya sea usando métodos como TDD usando pruebas unitarias (probar cada función de acuerdo a la salida esperada), o poniendo las pruebas por escrito en un documento de Word. De esta manera nos curamos en salud ante el cliente (teníamos un programa que tenía que cumplir estas características y su comportamiento es el siguiente …) y podemos tener un mayor control de los requerimientos.

Gracias a los chicos de Mad.Nug por el evento.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s