Miniatura
0

El secreto de hacer estimaciones: Hacer estimaciones

Siempre he sentido admiración por la gente capaz de hacerte un presupuesto en 10 minutos. Pongamos un pintor, viene 30 minutos a tu casa, se mira lo que hay que hacer, te hace unas cuantas preguntas, no se apunta casi nada, lo más tomará unas cuantas medidas, y al momento o, lo más tardar, al día siguiente  te dice que serán tantos días, a tanto la hora, te saldrá por x dinero. Y se quedan tan anchos. Los admiro porque no soy capaz de hacerlo igual, tan rápido, de verlo tan fácil, sin tener dudas.

En programación ésta siempre es la parte que me cuesta más, estimar mi trabajo, decir cuánto voy a tardar en hacer tal cosa. Pero es que es una parte muy importante. Al fin y al cabo, determina el tiempo que tardarás y te permite poner un precio a tu trabajo.  Es un tema que siempre me ha traído de cabeza y del que me he estado informando siempre.

Durante un tiempo, estudiando alguna asignatura de gestión de proyectos, recuerdo que estuve mirando la métrica de Puntos Función. No os aburriré en cómo funciona, poco me acuerdo yo de ello. Solamente decir que cuando la intenté aplicar me pareció tediosa, poco clara, poco flexible y pensada para software de los años 80 (ideada en 1979). ¿ Vale la pena invertir muchas horas en hacer una estimación de una tarea antes que, simplemente, hacerla? Supongo que sí, si la tarea es un proyecto muy gordo. Y aún así.

Existe una muy similar, llamada estimación por casos de uso. En esta se necesita previamente desarrollar los casos de uso y luego vas contestando una serie de preguntas y asignando puntos dependiendo de las respuestas. Pero al final, no deja de implicar bastante trabajo de inicio.

Hay un artículo muy bueno sobre lo mal que hacemos las estimaciones los programadores y ofrece una pequeña tabla de guía. Al final concluye que solamente se aprende a acertar estimaciones a base de experiencia, de hacer muchas. Y es que la experiencia en mi opinión es el factor clave. Es mucho más fácil saber cuánto tiempo tardarás en hacer una tarea de un proyecto en el que has trabajado que en uno en el que no. Será mucho más sencillo hacer un presupuesto de una aplicación que es similar a otra en la que participaste que en uno totalmente nuevo.

En mi caso de momento puedo afirmar que cuando más he acertado ha sido por:

  • He dedicado un buen tiempo en descomponer todo en pequeños trozos.
  • Ha sido sobre tareas en proyectos en los que he participado bastante y ya visualizo ciertas implicaciones en el código o en la estructura del proyecto para poder tener una idea del alcance.

Y la conclusión es que las metodologías igual sirven a alguien, no dudo de ello. Pero seguro que se basan más en la experiencia de otros proyectos que en las mismas metodologías en si. Por lo tanto solamente se me ocurre una solución: hay que estimar más :-)

 

Foto de flickr @jariceiii

Deja un comentario

Una web debe ser...

Una web
debe ser

Usable

Un usuario aprende cada día. Navega y utiliza servicios web acostumbrándose a tener algunos elementos en determinado lugar y a utilizarlos de cierta manera. Una aplicación es usable si antes de hacer una determinada acción se puede predecir lo que sucederá.

Universal

El punto de mayor incidencia en la universalidad es que la aplicación sea multidispositivo. Poder visualizar desde cualquier dispositivo, lugar, y momento. Y además, disfrutar de una experiencia de usuario plena.

Encontrable

Hablamos de un conjunto de normas, pautas o guías por las que el usuario llega a la aplicación. Debe encontrar la aplicación, pero puede llegar mediante buscadores (SEO), también con recomendaciones, lecturas en medios, desde redes sociales (SMO), y otros métodos (SEM, etc)

Veloz

Como dijo David Cheriton: "Si es rápido y feo, lo utilizarán y te maldecirán, y si es lento, no lo utilizarán". Si una web es rápida repercute en menos gasto mensual, más satisfacción del usuario, y mayor posibilidad de conversión por parte del mismo.

Útil

Un sitio web tiene que ser útil en vistas al usuario para el que está concebido. Hay que entender la necesidad del usuario y poder ofrecer lo que busca. Contenidos, traducciones, herramientas, comparativas, utilidades, etcétera...

Cerrar