martes, 31 de marzo de 2015

De proyectos atrasados y cambios en los requerimientos de los sistemas

Mi percepción es que muchos proyectos informáticos tienen grandes atrasos, y esto se ve como la normalidad para mi esto por supuesto me aterra, porque son un montón de costos en los que se incurre al no terminar un proyecto por no mencionar daños a la reputación del equipo de desarrollo o empresa informática.

Algunas de las razones son las habituales son las siguientes
  • Una pobre planificación, desde no estar seguros de que es lo que se tiene que hacer para que se termine el proyecto hasta.
  • La falta de estándares de rendimiento que solo nos permite arrojar estimaciones basadas en la experiencia.
  • La falta de una estructura organizada de proyectos.
  • La falta de un uso de herramientas de versionamiento (ademas no utilizar uno es llamar a los  problemas)
  • El no conocer como es el entorno de producción produce retrasos si bien no significativos son retrasos innecesarios.
  • La falta de conocimientos en las tecnologías a utilizar, siempre se disfruta aprendiendo.
  • Falta de cooperación
  • Nivel bajo de cultura informática
  • Cambio en los requerimientos
Los cambios en los requerimientos son de lo peor (e igual inevitable) que te digan y ¿no se puede agregar un elemento a la lista? (solo para revisar que alguien harcodeó esa lista y otros hay un gran numero de métodos que hacen operaciones en esa lista que solo consideran los elementos que se muestran y no se encuentra en ninguna parte de la base de datos) puede ser hacerte pasar un mal rato (y si accedés un par de noches en vela).

Por supuesto cuando te piden un cambio tu primer instinto será decir si se puede (porque claro son computadoras y casi todo se puede hacer con ellas) pero no hay tiempo, me parece que un mejor enfoque es explicarle al cliente que cuando digo no se puede, no se refiere a que es imposible sino a que no es factible hacer el cambio sin un retraso, que no es una función critica, es mejor evitar decir que si se puede de primas a primeras hay cambios pequeños en un sistema, un orden diferente en una lista u cosas pequeñas por lo demás respetar los requerimientos originales como siempre tratar con los clientes es una de las cuestiones mas difíciles en un desarrollo de software.

Hay un enfoque que me gusta que toman algunas las distribuciones Linux y es que meses antes de un lanzamiento estable se hace un freeze de los paquetes, es decir que no se aceptan otras mejoras que no sean parches de seguridad para el lanzamiento de la versión.

Por supuesto que queremos hacer al cliente feliz (porque nos paga para comenzar y porque ese cambio que sugiere puede que sea critico y de interés para el negocio), pero lo que le interesa es que el sistema esté terminado (y algunos argumentan también que el cliente muchas veces no sabe que es lo que quiere) así que es mejor terminarlo y obviamente es indispensable que el sistema tenga valor para el cliente cosa que no se puede hacer sin un análisis de requerimientos muy trabajado.

viernes, 20 de marzo de 2015

Y como cuanto cuesta un Sistema Informático?

Esta es la pregunta que me hicieron, cuando estaba en el trabajo almorzando con algunas personas en una organización (that shall remain anonimous).

-¿Yo vi que hicieron un sistema tal para créditos, como cuanto cuesta un sistema como ese? (preguntandole al desarrollador del sistema)

-No le sabría decir (y de hecho podría haber tirado un estimado bastante crudo, pero no tenia suficiente información y honestamente no creo que quien hizo la pregunta tuviera suficiente conocimiento del tema para suministrarme la faltante)

-¿Pero diga un numero solo por curiosidad?

-No tengo suficiente experiencia costeando sistema así que mi opinión (aún la de una simple cifra) no seria valida.

Callan y pasan al siguiente tema de conversación

Y es que costear no es solo como dicen de soplar y hacer botellas, mucho menos cuando se habla de proyectos de software

Se tienen que considerar la complejidad del sistema a realizar y esta complejidad depende de cuantos usuarios, en cuantas ubicaciones, cuantos formularios, cuantos formatos de salida serán soportados, en que tecnologías se implementará el sistema que equipo informático será necesario, como deberá estar capacitado el personal, que personal se requiere para el desarrollo y otra serie de cuestiones.

Existen formas de como costear un proyecto informático y se (asistí a un curso de gerencia informática) que  es bueno tener un formato/plantilla sobre los factores que pueden incurrir en los costos del sistema, puede que en unos futuros post publique una plantilla que me servirá tanto a mi como a alguien mas para obtener ideas sobre el costeo de proyectos (y por supuesto consultaré a algunas personas para no ir a ciegas).

En lo personal no me gustan tanto los números, pero se que hay que estimar bien la duración y esfuerzo requerido para un proyecto porque es la única forma de reducir la incertidumbre.

Hasta la siguiente entrada