¿Cuál metodología de desarrollo utilizo? Una respuesta frecuente es: “ninguna”. Los ingenieros de software generalmente pensamos que desarrollar es un arte, pero la realidad es que el impacto actual que los sistemas de información tienen en las organizaciones requiere que el desarrollo de los mismos se realice de una manera estructurada y sistemática. Esto implica utilizar una metodología formal de desarrollo. ¿Cuál metodología? Hay muchas en el mercado, bien probadas y ampliamente utilizadas. La respuesta la tiene cada equipo de desarrollo de acuerdo a sus necesidades, ambiente de trabajo, y arquitectura tecnológica con que la organización cuente, entre otros factores.
Un rol fundamental para fomentar el uso de alguna metodología de desarrollo de software lo tiene la academia. Esto implica dos retos; el primero es convencer a los alumnos sobre la importancia del uso de metodologías para desarrollar software, y el segundo es enseñarlos a aplicar éstas en proyectos reales.
Enseñar a Pensar en el Problema y la Estrategia
Usualmente, cuando a un estudiante se le plantea una problemática de negocio, su primera reacción está en la solución técnica del mismo. Las primeras ideas que le vienen a la mente son: en qué lenguaje desarrollo, cuál estructura de datos soportará el proyecto, en qué sistema operativo correrá. Esto es el equivalente a cuando un arquitecto inicia a construir sin planos, sin una visión de las necesidades de sus clientes, sin una maqueta de su proyecto.
El planteamiento inicial debe ser de reflexión, de pedirles que por un momento dejen el teclado que traen bajo el brazo y busquen entender la problemática que tienen al frente: ¿qué requiere el cliente? ¿Cómo impacta a la organización? ¿Cuál estrategia apoya? ¿Cómo encaja en la arquitectura tecnológica? ¿Cuáles son los requerimientos de seguridad? ¿Qué prioridad se le asigna al proyecto? En fin, un entendimiento que permita dimensionar el proyecto y establecer la visión y alcance de éste, para finalmente determinar su factibilidad y estrategia para la ejecución.
A partir de ahí se inicia el ciclo de desarrollo de software, con las diferentes actividades de la ingeniería de software como análisis, diseño, desarrollo, pruebas e implantación, con todo lo que ello implica: establecer roles, utilizar documentos predefinidos, técnicas que permitan acelerar el análisis y diseño como “Joint Application Design”, elaboración de prototipos rápidos, acelerar el desarrollo con esquemas del tipo “Extreme Programming”, madurar los procesos a través de modelos como CMMI, etc. En fin, las opciones son diversas y los resultados también, de ahí la importancia de definir cuál es la metodología de desarrollo para la organización.
Aplicación en Proyectos Reales
La experiencia de trabajar proyectos de desarrollo de software con estudiantes para diversas empresas, desde PyMEs hasta grandes corporativos, es posible gracias al establecimiento y uso de una metodología, tanto para el planteamiento del proyecto como para el desarrollo del mismo. Las respuestas de las organizaciones a la pregunta “¿Cuál metodología quiere que utilicemos?”, son diversas, desde el típico “cualquiera” o “la que ustedes decidan”, hasta aquellas empresas que especifican cuál es la metodología, entrenan a los alumnos en la misma y facilitan los documentos y herramientas de soporte. El esquema genérico utilizado para estos proyectos por parte de los estudiantes es:
• Dimensionamiento del proyecto.
• Elaboración de un plan de trabajo.
• Ejecución y control del plan de trabajo.
• Juntas de revisión y avances.
• Evaluación y presentación final de resultados.
Esto implica que los alumnos desarrollen, entre otras habilidades, el establecimiento de los alcances, la administración de proyectos, el liderazgo, el trabajo colaborativo, la coordinación de acciones, la resolución de conflictos y el uso de una metodología particular —en nuestro caso nos basamos en el Microsoft Solutions Framework (MSF) y el Rational Unified Process (RUP)—. El fundamento teórico utilizado en este tipo de experiencia académica es la técnica didáctica de Aprendizaje Basado en Proyectos (POL, Project Oriented Learning).
Conclusión
El salón de clases ya no es más un espacio solamente teórico, los problemas reales de las organizaciones vienen a las instituciones académicas y el trabajo conjunto para acelerar la incorporación de los estudiantes egresados al ámbito laboral es vital para nuestro país. Debemos resolver el problema que genera la postura (o necesidad) de las empresas de “solamente contratar gente con experiencia”, sin dar oportunidad a los recién graduados de adquirir la misma. Por esto, la experiencia de realizar proyectos en empresas con estudiantes de manera formal (y con base en metodologías) como parte de su plan de estudios es una relación ganar-ganar para todos; los estudiantes adquieren experiencia, las organizaciones resuelven problemáticas de negocio y las universidades creamos vínculos estrechos con la realidad nacional e internacional.
Los invito a reflexionar, y ustedes, ¿Cuál metodología de desarrollo utilizan en su organización?
Acerca del autor
El Dr. Francisco José Camargo Santacruz es profesor investigador de los Departamentos de Sistemas de Información y Ciencias Computacionales en el Tec de Monterrey, Campus Estado de México. Su área de especialidad es la Integración de Tecnología de Información en las Organizaciones. Francisco está certificado como IT Service Management (ITIL Foundation), ha sido consultor de diversas organizaciones en Colombia y México, tiene diversas publicaciones en revistas de circulación internacional y pertenece al Sistema Nacional de Investicagores (SNI).
- Log in to post comments