La estimación de tiempo es una de las métricas más críticas en desarrollo de software y en proyectos web y de apps móviles. Siempre es un desafío, porque hay muchos factores a tener en cuenta. Y, como ocurre con los proyectos complejos de cualquier disciplina, hay aspectos que pueden emerger a lo largo del proceso de desarrollo con impacto en los tiempos de entrega. ¿Cómo hacer estimaciones de tiempo realistas? La clave para hacer unas estimaciones lo más precisas posibles es reducir al máximo los componentes de incertidumbre. Y eso solo se puede hacer a partir de un sólido análisis inicial y de una rigurosa toma de requisitos.

Todo este trabajo —análisis, diseño y arquitectura— previo al trabajo de desarrollo en sí es absolutamente necesario. Además, debe ser compatible con la metodología ágil. Para ser más exactos, debe ser compatible con una forma de entender el agilismo comprometida con la especificación de requisitos

Métodos de desarrollo para optimizar tiempo y costes

Los desarrolladores de Omatech emplean la mejor combinación de todas las técnicas de desarrollo publicadas. Así, utilizan las mejores prácticas ágiles, junto a conceptos y métodos que añaden valor. Son ejemplos la arquitectura hexagonal, los casos de uso y el Domain-Driven Design (DDD).

El objetivo es conseguir un código limpio y de calidad. Y, desde una perspectiva de la gestión y del ámbito del proyecto, lo que se persigue es optimizar tiempo y costes.

El propósito es aportar el máximo valor en los tiempos de desarrollo previstos

Estimación de tiempo: análisis inicial y requisitos

El primer paso para estimar los tiempos es definir el alcance y los requisitos del proyecto.

Se trata, por tanto, de hacer un análisis inicial y de identificar los objetivos, características, funcionalidades y especificaciones del sitio web o de la aplicación.

Durante toda esta labor de definición del perímetro y del contenido del proyecto, hay que tener en consideración también las necesidades y expectativas del usuario del nuevo producto digital. Una óptima experiencia de usuario debe ser el punto de partida de cualquier proyecto de desarrollo web.

En esta fase hay que evaluar también las integraciones que haya que hacer con otros sistemas.

Para que esta fase clave —la definición y especificación de los cimientos del proyecto— sea un éxito, es fundamental mantener una comunicación continua con el cliente

Herramientas para la toma de requisitos

Para la toma de requisitos, los equipos de desarrollo emplean diferentes herramientas para comunicar y documentar el ámbito y los requisitos del proyecto.

  • Historias de usuario. Guía o explicación general de una característica del software, desde la perspectiva del usuario final. La idea es visibilizar cómo esa característica va a aportar valor (resultado previsto de la acción) al usuario. Se trata de conversaciones del usuario, con un inicio y un final.
  • Wireframes. Representación visual de la estructura básica de la web o app y de las funcionalidades de la interfaz de usuario. Permite generar pruebas de usabilidad. Estos esquemas son fáciles de modificar, lo que permite dar la máxima concreción al producto digital en la fase inicial del proyecto.
  • Mockups y prototipos. El mockup es un modelo estático del diseño final y un prototipo es una demo interactiva.

El objetivo de todas estas herramientas para la toma de requisitos es:

  1. Dimensionar bien el trabajo de desarrollo desde el principio.
  2. Evitar malentendidos.
  3. Prevenir cambios y repeticiones con un alto coste en términos de tiempo y de recursos en fases más avanzadas del proyecto.

Estimación de tiempo: desglose

La siguiente etapa consiste en desglosar el proyecto en tareas más pequeñas, lo que facilita una correcta estimación del tiempo del proyecto.

Para descomponer todo el proyecto en unidades más reducidas, manejables, medibles y fáciles de entender, los desarrolladores recurren a la siguientes herramientas:

  • WBS (Estructura de descomposición del trabajo, del inglés Work Breakdown Structures). Deconstrucción del proyecto visual, jerárquica y orientada a entregas de código. Se trata de un diagrama muy útil para la gestión del proyecto, porque permite visualizar todas las tareas necesarias para completarlo.
  • Diagramas de Gantt. Método de gran utilidad para visualizar de manera muy sencilla actividades (tareas y eventos) y su calendario (duración o fecha). A la izquierda del diagrama tenemos una lista de actividades y en la parte superior, una escala temporal. Cada actividad viene representada por una barra temporal. La posición y la longitud de la barra a lo largo de la fila correspondiente, indican el inicio, duración y finalización de la actividad.
  • Scrum. Framework ágil de gestión de proyectos ideal para autoorganizarse y avanzar hacia la finalización exitosa del proyecto. Facilita la autogestión, el aprendizaje a través de la experiencia y la adaptación al cambio.
  • Tableros Kanban. Método para la gestión de proyectos del framework ágil Kanban. Permite visualizar flujos y cargas de trabajo. Además, aumenta la eficiencia, al facilitar que las tareas que se han comenzado se completen antes de emprender nuevas tareas.

A partir de aquí, es más fácil y riguroso estimar los tiempos de cada tarea mediante diferentes métodos:

  • Estimación a partir de la opinión de expertos.
  • Analogía: técnica de estimación de tiempo que emplea información de un proyecto hecho en el pasado similar al que se está emprendiendo ahora.
  • Parámetros: método para la estimación de tiempo que utiliza datos históricos y estadísticos.
  • Estimación ascendente (bottom-up): método que agrega las estimaciones de los componentes obtenidos a partir de la técnica WBS.

La precisión y la consistencia deben guiar la estimación definitiva. Además, para validar hay que cerciorarse de que no haya ninguna tarea que se haya escapado de esta fase inicial de análisis y toma de requisitos.

La estimación de tiempo, el valor de la experiencia

Hacer la estimación de tiempo y coste de un proyecto no es una ciencia exacta. Ahora bien, los gestores de proyectos tienen a su servicio su experiencia y la de su equipo, las buenas prácticas necesarias para estimar bien un proyecto y todo tipo de herramientas.

La experiencia es un plus, así que las consultorías con más tiempo en el mercado no solo disponen de un capital humano más experto, sino que pueden comparar de forma más contrastada proyectos actuales con proyectos pasados.

Estimar con precisión es una habilidad que se adquiere y que se fomenta con las técnicas y métodos adecuados