lunes, 7 de septiembre de 2009

Análisis, Diseño y Programación

En latinoamérica se acostumbra a asignar muchas tareas a un empleado por parte de los empleadores, en R.D. se le conoce a las personas que hacen muchas cosas como "todologos". Esto es así que existen departamentos de servicios generales, donde las personas que pertenecen a dichos departamentos realizan cualquier tarea dentro de la empresa. El campo de la informática no escapa a esa cultura empresarial, donde vemos que las tareas de 3 puestos distintos son realizados por la misma persona.

Un encargado de redes tiene la tarea de administrar la plataforma de los sistemas operativos y el soporte técnico. Así pasa para aquellos que laboran en el área de desarrollo de plataforma donde la misma persona realiza todas las labores, análisis de los requerimientos, análisis de la base de datos (en caso de necesitarla), diseño y programación, así como las auditorías y puestas en marcha; todo lo que los libros dicen que no debe realizarse.

Por eso, es que muchos productos latinos son desarrollados con deperfectos y lanzados al mercado con lagunas que son ocultadas por aquellos que programan el producto, lo auditan y los prueban. Como buena técnica de desarrollo de software se debe separar cada una de las tareas que se realizan, veamos:

Análisis: analizar el problema y describirlo, analizar todas las variables que entran en juego en el problema que se busca solucionar, en otras palabras, es llevar a cabo el levantamiento de que es lo que se debe hacer y cuales son las necesidades del cliente y evaluar los conceptos que tiene el cliente con el mundo real. Esta persona que realice esta tarea no tiene que ser informático, pero si una persona que tenga un conocimiento general de lo que ofrece el mercado y con una alta capacidad de identificación de necesidades tanto técnica como económica.

Diseño: conlleva llevar a cabo la definición del proceso modelado de que es lo que quiere el cliente. Mediante el diseño se define el proceso de aplicar las técnicas y principios analísticos para plasmar lo que desea el cliente a la realidad. Este paso es fundamental (para mí el más importante), se necesita que la persona que lleve esta tarea tenga mucha experiencia como analista o desarrollador y que se mantenga actualizado con las nuevas tecnologías que se encuentran en el mercado.

Programación: aquí se traslada las especificaciones del diseñador en los códigos fuentes que van a generar el ejecutable. Esta tarea es más mecánica, por lo que es de menor cualificación que las dos anteriores que conllevan la parte del trabajo más delicada.

Después del producto esta completamente desarrollado, existen otras etapas como con puesta en marcha, implementación, entre otras que son determinantes para entregar un buen producto, y es recomendable que no sea realizado por la misma persona.

Mi opinión personal,

Pienso que la parte de análisis y diseño del sistema puede ser realizado por la(s) misma(s) persona(s) ya que ambas tareas van muy ligadas una a la otra, pero la programación debe ser una posición separada, el que hace el levantamiento no debe programar, ya que sería juez y parte y el producto nunca sería entregado de la forma más objetiva. Es preferible si se puede hacer el levantamiento dentro de la empresa y sub-contratar al(los) programador(es) y luego los que van a implementar el sistema.

No hay comentarios: