Nuestra metodología

Nuestra metodología

Nuestra propuesta de desarrollo de software

Esta entrada forma parte de una serie en la que explicamos todos los aspectos relacionados con nuestra propuesta de desarrollo de sowftware, es decir el mismo contenido que tienen las ofertas de desarrollo de software que hacemos a nuestros.


Si lo deseas puedes ver el resto de entradas de la serie: Nuestra propuesta de desarrollo de software

Una buena metodología de trabajo, eficaz y productiva genera el ecosistema necesario para cumplir adecuadamente el objetivo. En esta entrada te vamos a explicar cómo hemos desarrollado nuestro propio método y la manera en que nos diferenciamos y aportamos valor.

Metodologías ágiles

Chaos Report

El Chaos Report es un informe publicado anualmente por el standish group en el se que analizan decenas de miles de proyectos de desarrollo de software de calidad concluyendo que tan sólo el 10% de los proyectos realizados con metodologías tradicionales cumplen sus objetivos en términos de alcance, tiempo y coste. El porcentaje asciende hasta el 40% cuando los proyectos se gestionan a través de metodologías ágiles.

Si ya has participado en proyectos de desarrollo de software estarás muy familiarizado con las llamadas metodologías ágiles. Si no es así, es posible que todo esto te suene a chino, por lo que vamos a tratar de explicarte en detalle los aspectos más importantes. 'Agile' es mucho más que una metodología para el desarrollo de proyectos que precisan de rapidez y flexibilidad, es una filosofía que supone una forma distinta de trabajar y de organizarse. De tal forma que cada proyecto se divide a su vez en “mini-proyectos” que han de completarse y entregarse en pocas semanas.

¿CUÁNDO SE APLICA ESTA METODOLOGÍA?

Este tipo de metodologías se adaptan muy bien a situaciones de alta incertidumbre como son los proyectos de desarrollo de software. Cada iteración del ciclo vital incluye planificación, análisis de requisitos, diseño, codificación, pruebas y documentación. Estos son algunos ejemplos donde las metodologías ágiles tienen sentido:

  1. El cliente tiene una idea más o menos clara de su proyecto, pero no ha realizado un análisis de requisitos y lo ha plasmado en un documento de análisis funcional.
  2. El alcance del proyecto puede sufrir variaciones o pueden detectarse y añadirse nuevos requisitos durante el desarrollo.
  3. El cliente desea implicarse en el proceso de diseño y toma de decisiones de la solución.
  4. El equipo de desarrollo no domina el área de conocimiento del proyecto o negocio.

Como puedes ver estas situaciones son habituales cuando se comienza un plan de desarrollo ágil de software y es por esto que se adaptan tan bien a este tipo de proyectos.


Enfoque DEVTIA

Existen multitud de metodologías ágiles, pero lo habitual es que estén pensadas para un equipo que permanece constante en el tiempo y que trabaja centrado en el desarrollo de un único proyecto. Al tratarse DEVTIA de una agencia que desarrolla proyectos para otras empresas, ninguna metodología se adapta al 100% a nuestra situación, por lo que hemos desarrollado nuestro propio método, basado en nuestro conocimiento a la hora de abordar proyectos y nuestro contacto dentro del sector. A continuación te presentamos los aspectos más relevantes de nuestra metodología.

En Devtia hemos desarrollado nuestra propia metodología

Clientes comprometidos

Toda la metodología que te presentamos funciona especialmente bien cuando nuestros clientes están comprometidos con su propio proyecto. Estos son los clientes con los que nos gusta trabajar y con los que se puede exprimir al máximo la metodología.

Vamos a pedirte que reserves un tiempo diario para revisar nuestro trabajo, responder nuestras dudas, presentar tus ideas y sugerencias, y en general estar disponible para colaborar en aquello que necesitemos.

Trabajamos codo con codo con nuestros clientes. Creemos que el éxito del proyecto depende en gran medida de cómo te impliques en la toma de decisiones. En este loop de feedback y comunicación vamos a entender mucho mejor cómo son tus necesidades y tomaremos mejores decisiones, así como tener más capacidad para realizarte sugerencias.

Iterativo incremental

El desarrollo iterativo incremental es una metodología en la que se realizan entrega continua de forma periódica. En cada entrega o iteración se proporciona un incremento, es decir una funcionalidad adicional o una mejora en una funcionalidad existente. Somos constantes en la comunicación y a los días de firmar el proyecto estaremos de vuelta para enseñarte el trabajo que hemos realizado, de esta forma continuaremos presentando una pequeña entrega cada poco tiempo.

Aspecto relevante: Iterativo incremental

Una sóla cosa a la vez

Muchas agencias se ven obligadas a simultanear varios proyectos a la vez. Un mismo desarrollador tiene que atender una incidencia por la mañana del proyecto "fútbol", escribir un informe al medio día del proyecto "baloncesto" y programar toda la tarde en el proyecto "running". Éste método es poco eficiente y productivo.

Nosotros tomamos la decisión de comprometernos en que cada desarrollador sólo pueda atender un proyecto al mismo tiempo. Cuando trabajes con nosotros bloquearás la agenda de uno de nuestros developers en su calendario.

Solemos sugerir a nuestros clientes que intenten prever con tiempo la disponibilidad que necesitan para que esta se quede reservada. La contraparte es que deberás esperar a la primera fecha disponible para que nos hagamos cargo de lo que necesites.

A producción lo antes posible

Nuestro objetivo es poner tu proyecto en producción lo antes posible, incluso antes de que esté terminado. De esta forma vamos a obtener feedback del usuario final en un entorno de fuego real.

¿Cómo ponemos en producción un proyecto no terminado?

Por ejemplo, imagina un sistema de contabilidad. Podríamos poner en producción un sistema que solamente permita emitir facturas, así como adjuntar las facturas recibidas. Faltaría mucho trabajo por delante, pero ya podríamos ver cómo los usuarios interactúan con la plataforma, a la vez que ya estamos aportando valor al negocio, y ?poblando? una base de datos, que será muy útil para el resto del desarrollo.

Kanban

Trabajamos con JIRA un gestor de tareas muy utilizado en esta industria. Nosotros configuramos este gestor de tareas con un modelo Kanban donde las tareas son tarjetas que se van desplazando por un tablero para representar los diferentes estados. Dependiendo del proyecto podemos definir más o menos columnas en ese tablero. Como cliente tendrás acceso a este sistema y podrás ver en tiempo real en qué estamos trabajando, crear y priorizar las tareas e interactuar con nosotros cuando sea necesario.

Habitualmente planificamos una o dos reuniones a la semana de todo el equipo junto con el cliente, para repasar el tablero, y proponer junto contigo soluciones a tus necesidades.

fases, metodología y entornos de trabajo

Entornos

Trabajamos con tres entornos de trabajo, pero como cliente sólo tendrás acceso a dos de ellos. En el entorno de preproducción vamos a ir subiendo el trabajo que vamos realizando. Deberás acceder periódicamente a esta zona, para ir validando nuestro trabajo, así como proponiendo los cambios que necesites.

Una vez que tenemos un grupo de cambios aprobados en preproducción, estos son aplicados en el entorno de producción. Este es el entorno real, publicado en internet al que acceden tus clientes y empleados.


Ventajas

Estas son algunas de las ventajas que tiene nuestra metodología

Feedback temprano

La principal ventaja de la metodología. En un enfoque tradicional, tardarás mucho en tener tu proyecto en una situación de uso real. Cualquier decisión no óptima o incluso incorrecta no será detectada hasta que sea demasiado tarde. Con nuestra metodología vas a tener tu proyecto en producción muy pronto y vas a empezar a tomar decisiones no basadas en suposiciones sino en datos reales de tu proyecto en producción.

Control del proyecto

Otra ventaja importante es que tienes el control total de lo que sucede en tu proyecto, cada decisión que se toma es validada por tu parte, e independiente de la planificación, vamos a dedicar a cada módulo tanto tiempo cómo sea necesario.

Flexibilidad

No todos los proyectos son iguales. En DEVTIA hacemos proyectos de una o dos semanas, y proyectos en los que empleamos varios años con equipos ágiles. Tampoco todos los clientes son iguales, algunos tienen mucha disponibilidad para dedicarnos y tienen muy claro lo que quieren y otros exactamente lo contrario.

Por eso apostamos por la flexibilidad, adaptando nuestra metodología a cada proyecto y a cada cliente, pero sin perder la esencia detrás de la misma.