
4 minute read
CAPÍTULO 2: Proceso de Desarrollo
Esta es la descripción de las actividades que va a desarrollar cada uno de los integrantes del equipo de desarrollo para en conjunto terminar realizando un producto coherente. El objetivo principal de esta fase es: predecir el costo, mantener la calidad, predecir el tiempo de desarrollo.
Al momento de llegar a esta fase del desarrollo se debe tener claro que no existe una metodología universal que pueda aplicar a todos los proyectos, si es verdad que existen múltiples metodologías para la amplia cantidad de situaciones que pueden presentarse, pero a fin de cuentas es importante resaltar que las diferentes metodologías pueden adaptarse a diversas situaciones.
Advertisement
Ya eso queda a disposición de quien dirige el proyecto, escoge la metodología según el análisis que haya realizado de la situación presentada. Esta metodología claramente debe adaptarse a la experiencia que tenga el equipo de trabajo, esto es porque se obtienen mejores resultados porque el equipo de trabajo ya estará acostumbrado, además de adaptarse a los métodos de trabajo del cliente.
Aparte de los objetivos ya establecidos, esta fase tiene como objetivo el mejorar la reusabilidad del producto, es decir, se puede extender la usabilidad del mismo haciendo que las tareas que realiza puedan ampliar su rango de alcance, es decir, que puedan abarcar mayores áreas. Claro está que esta no es la única manera de mejorar la resuabilidad, ya que, también pudieran ser agregando funciones que permitan mejorar la productividad a la hora de que el cliente esté utilizando el producto, o que este tenga un rendimiento tal que no le cause ningún tipo de incomodidad al cliente, generando un sentimiento de satisfacción en este y que se sienta bien utilizando el producto. Existen múltiples formas de aumentar la reusabilidad de un producto.
Elementos básicos
De los elementos más importantes que se encuentran a la hora de entrar en esta fase del proyecto es la ocupación que tiene cada trabajador, de forma que las tareas que realiza cada uno se sincronice con el aporte que realice el resto y que al final de todo se pueda ir estructurando el producto de forma consistente con el aporte de cada uno.

Las tareas que se desarrollan en el proyecto pueden clasificarse en: alto y bajo nivel. Las de alto nivel son aquellas tareas generales que abarcan grandes campos del proyecto, como pueden ser las de desarrollar la estructura inicial, o el núcleo del sistema, o módulos que en conjunto realicen una tarea amplia; en cambio las tareas de bajo nivel son aquellas tareas sumamente específicas que tiene cada uno de los trabajadores.
En estas tareas de bajo nivel se pueden encontrar objetivos como el desarrollar una única aplicación que sea un elemento de un pequeño sistema dentro del sistema que seria el producto completo, o desarrollar una única parte de código de alguna aplicación para que funcione adecuadamente.
Otro elemento importante del desarrollo de software son los documentos que deben generarse para las actividades, estos permiten un mejor entendimiento de como funciona el sistema. En los sistemas orientados a objetos, esto es sumamente importante por el nivel de complejidad que puede llegar a tener todo el sistema.
El documentar adecuadamente cada una de las tareas que se realizan va a ahorrar dolores de cabeza en el futuro, porque le permite a futuros trabajadores entender con claridad el funcionamiento del código y tener la posibilidad de mejorar su rendimiento o ampliar la funcionalidad, o simplemente actualizarlo a requisitos nuevos, ya sea por cambio de arquitectura o plataforma.
También terminará siendo útil para los mismos trabajadores que desarrollaron ese proyecto, porque si estos no se acuerdan de cómo se codificó alguna parte o como funciona realmente algún subsistema o el sistema completo, estamos hablando de que pueden perder desde horas o días hasta meses o años, nada más intentando comprender el código en su totalidad.
Y por último, pero no menos importante, son los procesos que se utilizan para desarrollar el producto que deben ser amoldados a la situación que se presente porque, cómo se menciono previamente, no existe una metodología universal para desarrollar los proyectos. Solo existen los cambios de formas que se le pueden otorgar a los métodos, esto trae beneficios como: si el equipo del proyecto esta acostumbrado a trabajar con estructuras de trabajo parecida, existirá una mayor efectividad a la hora de realizar las tareas, por lo que aumenta la productividad de todo el equipo.
Esto trae beneficios a la calidad del producto final y a los tiempos de entrega, sin contar la cantidad de beneficios que se le pueden llegar a presentar a la parte económica del proyecto. Otro beneficio de amoldar las metodologías a la situación, es que pueden adaptarse a los requerimientos, métodos de trabajo y solicitudes del cliente, en consecuencia, otorgándole mayor satisfacción al mismo con el producto.
Escalabilidad
Esta es un elemento fundamental a la hora de desarrollar un proyecto, la escalabilidad es hacer que la dimensión de un proyecto sea variable, es decir, que puede que mientras se desarrolle tenga la capacidad de ampliar el rango funciones que abarca el sistema.
La escalabilidad tiene una particularidad importante, y es que mientras mayor sea esta mayor llega a ser la complejidad. Mientras mayor sea la complejidad, aumentan los niveles de abstracción que se utilizan, incrementa la comunicación entre los módulos y llega a ser más difícil localizar los errores porque existen mayor cantidad de componentes.
Otro detalle importante es que mientras la escalabilidad aumenta, el esfuerzo debe crecer linealmente. Esto permitira tener un riitmo de trabajo adecuado en todas las fases del proyecto, sin llegar sobrecargar de trabajo a todo el equipo y evitar que el esfuerzo disminuya a largo plazo. La forma de conseguir la escalabilidad es estableciendo escalas temporales para hacer las actividades.

Modelos de proceso
Existen diversos modelos que permiten estructurar el desarrollo del proyecto, estos son:
Modelo de Túnel: este es el más básico, ya que se aplica a los proyectos pequeños. Se caracteriza por no tener un modelo de desarrollo.
Modelo en cascada: el primer paso es análisis de los requisitos, luego el análisis general, diseño del sistema, codificación, pruebas de módulos, integración, prueba del sistema y mantenimiento. Este es el proceso normal que se sigue cuando se está avanzando en el desarrollo, ahora bien, para la eliminación de errores deben recorrer los pasos de forma inversa. Esta metodología llega a funcionar en proyectos que ya tienen todo diseñado pero cuando se presenta un problema en la última fase, se debe adaptar el problema a la aplicación y no al revés.

Procedimiento en espiral: esta metodología se cataloga como iterativa, consiste en diseñar desde los diseños más pequeños a los más grandes. Las fases son: análisis de requisitos, análisis y diseño, codificación e implantación, y las pruebas y validación. La última fase permite que el usuario esté involucrado en el desarrollo del proyecto, reduciendo riesgos y permite reunir métricas a lo largo de cada iteración.

Este puede decirse que es como el proceso en cascada pero en versiones más pequeñas, con objetivos más simples y que se realiza la cantidad de veces que sean necesarias.