GFO, Gestión Funcionalidades by Okkum

OkkumFeatureManager
OkkumFeatureManager

En el último apunte comenté que habiamos decidido adaptar un mix de metodologías agiles a nuestra gestión de proyectos. Hemos cogido la metodología FDD y la norma ISO 15504, las hemos metido dentro de la coctelera y el resultado ha sido GFO. El trabajo de casar la norma con nuestra metodología no esta completa, pero avanza a buen ritmo. Lo que avanza a mejor ritmo todavía gracias a Django es nuestra herramienta de gestión de proyectos basada en GFO (como me gusta esto de tener nuestras propias siglas, no eres nadie en el mundo de la tecnología sino las tienes, nosotros como somos más web 2.0, le poniamos nombres a las cosas, por ejemplo Hawai a nuestra web de tramitación de vacaciones, aunque la tentación ha sido irresistible esta vez). Continúa leyendo GFO, Gestión Funcionalidades by Okkum

Django, metodologías agiles y calidad del software

Muchos programadores, entre los que estaba yo mismo, piensan que codificar es todo su trabajo, como mucho documentar someramente el código por el que dirán. La gestión de proyectos, para estos programadores, también suele reducirse a: nos sentamos cinco minutos a pensar que queremos que haga nuestro software y después a teclear, cientos, miles, decenas de miles de lineas de código ¡Que bonito es mi código y que bien funciona! Es la única conclusión posible, puesto que hace exactamente lo que el programador ha pensado que tiene que hacer. Continúa leyendo Django, metodologías agiles y calidad del software

Calidad del software

En estos momentos tan convulsos en nuestra comunidad (parece que el ocaso de la ingeniería informática ha llegado), en Okkum estamos inmersos en un proyecto para mejorar la calidad de nuestros desarrollos. Estamos implantando la norma ISO 15504 para la mejora en los procesos relacionados con la programación de aplicaciones.

Os contaré las lecciones aprendidas en esta primera semana de contacto con la norma. Intensa primera semana, puesto que la evaluación ha consistido en alrededor de 18 horas de entrevistas en dos días y medio ¡en alguna de las entrevistas eramos cuatro, más las evaluadoras!. Un pequeño sacrificio si conseguimos implantar las mejores prácticas que nos pueden permitir mejorar nuestra organización.

Primera conclusión, la calidad del software solo la garantiza un buen programador. Segunda conclusión, ni el mejor programador, puede crear un buen producto y ofrecer un servicio satisfactorio sin una buena metodología. Tercera hay tantas metodologías como colores (como todos sabemos 16.7 millones). Cuarta, las metodologías ágiles necesitan complementarse con procesos para mejorar el control a nivel organizativo, no de proyecto; es decir, tenemos que garantizar que la empresa aprende, que el conocimiento derivado de la experiencia individual pasa a la empresa, a cada uno de los trabajadores de la misma para mejorar las capacidades individuales y colectivas. Seguro que podría haber una quinta, pero lo dejaremos así.

A grandes rasgos la experiencia a sido satisfactoria, cansada pero provechosa, Hemos podido ver algunas de nuestras carencias, en las que ya estamos trabajando para mejorar, y que mañana nos confirmarán en un informe preliminar que acabarán de redactar, las evaluadoras, para la semana que viene y que espero poder compartir, al menos parcialmente, con vosotros. Nos gusta mucho programar y se nota, por eso somos buenos en nuestro trabajo, ahora es el momento de vestir nuestro producto con una organización empresarial acorde.

PD: Mi satisfacción con Trac crece a medida que avanzamos en su uso y esta evaluación me ha ayudaddo a corroborar su utilidad y facilidad de uso.

Gestionando proyectos con Trac

Logo Trac En este post anterior introduje la herramienta Trac, que usamos en Okkum para gestionar nuestros proyectos. Normalmente trabajamos en proyectos medianos, que tienen periodos de desarrollo de entre 3 y 4 meses, hasta más de un año, con un equipo de trabajo formado por un analista, un par de programadores y una diseñadora. Trabajamos sobretodo en Java, pero hace algunos meses hemos descubierto Python+Django y espero poder usarlo en alguno de los proyectos futuros.

Trac es una potente herramienta de comunicación, hace poco que la estamos usando, pero ya esta demostrando algunas de sus virtudes. Permite un nivel de comunicación entre todo el equipo del proyecto muy alto, gracias a funcionalidades como la sindicación de contenidos, cualquiera vemos instantáneamente cuando un compañero añade un ticket o cuando lo cierra, gracias al wiki tenemos un repositorio de documentación centralizado, cuesta un poco que la gente documente bien, pero no todos han leido lo que es un programador de verdad, la navegación web del código fuente facilita también el intercambio de información y el seguimiento mediante milestones sirve para informar al cliente de los avances que se van haciendo.

El uso de milestones y componentes, es extremadamente sencillo y mejora sustancialmente la visibilidad de estos objetivos en el equipo de trabajo. Cada ticket se asigna al un hito, al cerrar el ticket se avanza en la conclusión del hito. Los hitos tienen fechas de fin y puedes ver fácilmente el grado de consecución de los mismos.

Trac nos permite fijarnos objetivos, comunicarnos eficientemente y distribuir la información entre todo el equipo con muy poca burocracia.

La metodología ágil de Okkum

puenteHemos crecido profesionalmente rodeados de metodologías complejas que no nos han gustado, que hemos visto como reducían nuestra productividad sin un claro beneficio, al menos en equipos pequeños. Hemos visto nacer y expandirse a los procesos ágiles de desarrollo con cierto escepticismo. Hay metodologías para todos los gustos. En muchos casos el éxito de una empresa depende de trabajar con esa metodología que la hace diferente.

En este apunte Joel Spolsky comenta como las metodologías limitan el talento y como ello impide crear empresas talentosas de tecnología (o de cualquier otro tipo) de gran tamaño. El proceso que se sigue al programar es importante, es imprescindible tener una forma de trabajo consistente con los objetivos de la empresa y la cultura de la misma ¿Entonces es posible importar la metodología de otros en nuestra empresa? Pues en mi opinión no. Las grandes mentiras que nos enseñan en la universidad son: Continúa leyendo La metodología ágil de Okkum

Usando Trac

Soluciones de gestión de proyectos, como comenta Javier Jofre en su blog, existen múltiples , pero la mayoría están pensadas para grandes equipos de trabajo o equipos con gente destinada únicamente a gestionar o proyectos geográficamente distribuidos donde el groupware es una necesidad básica para saber que hacen los demás.

Pero para las pequeñas empresas, como la nuestra, los requisitos son más simples, llevar una lista de las cosas que tenemos que hacer, un pequeño control de quien va a hacer que y cuando estará listo, saber quien realmente lo hizo y cuando lo acabo, no le pedimos más. No queremos tener un monton de burocracia. Usamos metodologias de gestión agiles (nosotros Feature Driven Development, pero esto es otro post) y hablamos continuamente. La herramienta que estamos usando ahora, después de varios inventos, es Trac. Os recomiendo que le echeis un vistazo, es sencilla, documentas a la vez que gestionas gracias a la wiki que incorpora, es extensible y permite navegar el código de tu repositorio (por defecto SVN, pero hay plugins para otros). Y esto es solo el principio.

Nosotros lo estamos usando en varios proyectos, con muy buenas sensaciones, aunque hay que reconocer que tiene sus cosas, a veces no es todo lo estable que se espera, pero nada crítico. Esta programado en Python, que, con mi recién adquirida pasión por este lenguaje, lo hace más atractivo.

Animaos a usarla, gestionar proyectos no puede ser más sencillo y potente.