2013-09-14

Cómo evitar los problemas durante el desarrollo de un proyecto

La mejor estrategia para tratar errores, es evitando que sucedan. Muchas veces escuchamos la ya conocida frase "Tienes que ser proactivo y no reactivo", es decir, planear las cosas y no estar apagando fuegos. A continuación veremos 10 consejos que te podrán ayudar a mejorar y a aprender cómo puedes evitar errores desde antes que se presenten.

Aprende de los errores de los demás

Muchas veces nos dicen que "nadie aprende en cabeza ajena", eso es totalmente falso, muchas veces tenemos compañeros experimentados o amigos que han tenido tropiezos o fallas en sus proyectos y muchas veces algunos de ellos tienen el valor de hablarlos y explicar cómo fue que enfrentaron esa situación díficil, tal vez no sea lo mismo a que si tu lo vivieras, pero por lo menos te pueden dar un panorama sobre cosas que ya se han hecho en el pasado de manera erronea y que puedes evitar hacer lo mismo.

Investiga primero

Hace unos años era aceptable la práctica de "prueba y error", pero ahora con tanta información disponible en Internet creo que es más conveniente que siempre antes de tirar 1 sóla línea de código de algo que no sabes o no entiendes claramente (tal vez una nueva tecnología) debes investigar a fondo para posteriormente trabajar en la solución, esto te evitará muchos problemas de re-trabajo a la larga.

Planeación estratégica

La planeación estratégica es pilar fundamental para un proyecto, si no planeamos no sabemos hacía dónde vamos y hacía dónde queremos llegar, siempre tenemos que tener bien trazada la ruta de nuestras metas y objetivos, así que si aún no has hecho una planeación para tu proyecto no esperes más, sin duda es el punto más importante para el éxito de un proyecto.

Utiliza estándares y plantillas

Los estándares se crearon con la idea de hacer siempre las mismas cosas de la misma manera y que además un grupo de personas expertas en el área fueron los que aprobaron dichos estándares, es decir, es bueno a veces ser creativo y original en nuestros trabajos, pero en ciertas áreas siempre se deben seguir estándares, de lo contrario se nos dificultarían las tareas y podríamos tener algún problema en un futuro.
De igual manera el uso de plantillas es bien visto, por ejemplo, podrías usar una plantilla de algún contrato o documento oficial, imáginate que cada vez que tengas que hacer uno lo empieces desde cero, y además si llegarás a tener algún error en algún documento importante podría costarte muy caro.

Comunicación y coordinación con todo el equipo

La comunicación es fundamental para el éxito de un proyecto, todo el equipo debe conocerse y tener buena comunicación y coordinación, una herramienta imprescindible para el trabajo colectivo es un controlador de versiones, en lo personal recomiendo Git y Github, aunque muchas empresas todavía siguen utilizando SVN, por su fácil integración al Jira.

Toma el tiempo necesario

Muchas veces debemos saber trabajar bajo presión, eso es normal en los proyectos, pero en ocasiones hay actividades que requieren de más tiempo para que salgan bien, y si tu caso es este házlo saber a tu project manager o a tu líder de proyecto, que la tarea que te asignaron requiere más tiempo del estimado originalmente, tal vez por que necesitas investigar más a fondo, o tal vez por que la infraestructura actual no es suficiente para llevarlo a cabo, etc, hay muchos factores que pueden retrasar una actividad, pero siempre debes ser consciente y decirle la verdad a tu superior, si la actividad no se puede solucionar en el tiempo estimado dilo no te quedes callado, pero también argumenta el por qué, muchas veces es peor trabajar mal por trabajar rápido en una actividad que al final tendrás que volver a re-trabajar, así que ten presente eso.

Reutilización de código

Muchos programadores siguen creyendo que tienen que hacer todo el código ellos mismos, si no se sienten que están copiando o que no están haciendo bien su trabajo. Esta mentalidad debe desaparecer, para eso fue creado el Software Libre justamente para aprender y compartir el conocimiento que adquirimos en cada proyecto, y si alguien ya realizó algo que tu estas buscando y además publico su código con licencia libre, ¿por qué no usarlo?, inclusive puede ser que tu puedas mejorar esa librería y compartir tus mejoras con el autor, esto sin duda ayuda bastante para no "reinventar la rueda" y hacer las cosas de una manera más rápida y fácil, debido a que ya la mayoría de librerías o códigos abiertos cuentan con documentación o alguna comunidad que le pueda dar soporte.

Utiliza listas de actividades

Antes de un viaje de avión, el piloto y el copiloto están ocupados en llevar a cabo una larga y detallada lista de actividades. Listas de verificación se pueden utilizar durante las diversas fases del proceso de desarrollo del proyecto. Son particularmente útiles cuando se trabaja con sistemas grandes y cuando una sola persona se encarga de múltiples tareas.
Por ejemplo, una lista que detalla los pasos necesarios para el sistema de encendido del avión ayudará a evitar la realización de tareas fuera de orden y prevenir errores de omisión. Todo es demasiado fácil para los desarrolladores, dan elementos importantes como el acceso al sistema cuando están ocupados haciendo las pruebas finales y la documentación.

Prueba, prueba, prueba y vuelve a probar...

Hay un nivel saludable de paranoia acerca de la entrega de trabajo libre de errores. Debes probar tanto como sea posible tan pronto como sea posible. Los errores en el código son típicamente más caros de corregir cuando se encuentra cerca del final del proceso de desarrollo. Normalmente cuando se acerca la fecha de nuestro deadline es cuando algunos errores que debieron ser reparados semanas o meses atrás aparecen, es por eso que desde un principio debes ser muy cuidadoso con las pruebas que haces.

Vuelve a probar con terceros

Siempre antes de lanzar un nuevo producto de software, es bueno lanzar primero una versión Beta la cuál podrá ser utilizada y probada por usuarios mortales que serán capaz de detectar errores más fácilmente que el propio desarrollador, esto pasa por que uno como desarrollador ya sabemos como hacerlo funcionar, pero cuando otra persona ajena al proyecto utiliza el proyecto puede realizar cosas que tal vez ni siquiera teníamos contempladas y esto podría causar varios errores, pero siempre es mejor arreglarlos antes de lanzar el producto final.


fuente