Fundamentos Metodológicos

Contenidos:

  1. Introducción
  2. Objetivo
  3. Definiciones
  4. Fundamentos de la Ingeniería
  5. Elementos Importantes
  6. A modo de Reflexión


Introducción

El presente texto fue desarrollado durante el año 2000, como parte de la necesidad de estandarizar algunos conceptos vinculados con la definición de metodologías. Su estructura es un poco diferente a la utilizada en estas páginas, pero se ha adaptado debido a su importancia para el ramo.

[Contenidos] [Índice General]


Objetivo

El presente documento, pretende convertirse en un canal de discusión que permita alcanzar el consenso respecto de los conceptos asociados a la palabra "metodología" y su aplicación en el ámbito de la Ingeniería Informática.

Se espera que este documento sea leído y comentado por los diferentes profesores de la escuela, para que el consenso sea tal.

[Contenidos] [Índice General]


Definiciones

Metodología:
Colección de métodos de solución de problemas organizados bajo una filosofía común y gobernados por un conjunto de principios.
Según la RAE, se define la palabra metodología como:
  1. Ciencia del método.
  2. Conjunto de métodos que se siguen en una investigación científica o en una exposición doctrinal.

Habitualmente, la palabra metodología acostumbra a ser utilizada según la segunda acepción y, a falta de otra palabra, se propone mantener esa definición.

Método
Forma de hacer las cosas.
Según la RAE, se define la palabra método como:
  1. Modo de decir o hacer con orden una cosa.
  2. Modo de obrar o proceder; hábito o costumbre que cada uno tiene y observa.
  3. Procedimiento que se sigue en las ciencias para hallar la verdad y enseñarla. Puede ser analítico o sintético.
  4. Obra que enseña los elementos de una ciencia o arte.


Se entiende por Método, al modo de hacer las cosas, que permite que una persona pueda remplazar a otra en medio de un trabajo, sin que ello implique un atraso en el proyecto.

Técnica
Un conjunto de procedimientos precisamente descritos para lograr una tarea estándar.
Nuevamente según la RAE:
  1. Conjunto de procedimientos y recursos de que se sirve una ciencia o un arte.
  2. Pericia o habilidad para usar de esos procedimientos y recursos.
  3. Habilidad para ejecutar cualquier cosa, o para conseguir algo.


Es importante notar la diferencia entre "hacer algo" de la definición de la RAE, respecto de "lograr una tarea estándar" de la definición inicial. El problema con la definición de la RAE, es que "algo" es absolutamente ambiguo y puede significar desde la aplicación de una herramienta, hasta el desarrollo de un proyecto complejo. Considerando el objetivo inicial de establecer un consenso respecto del conjunto de términos aplicados, es necesario evitar cualquier ambigüedad, aún cuando eso signifique reducir el alcance del término original.

De esta manera, la definición se centra en una "tarea estándar", una acción específica, claramente definida y acotada, que permite alcanzar un objetivo muy específico, y que se puede alcanzar utilizando un conjunto acotado de herramientas.

Herramienta
Instrumentos o ayudas tangibles en la realización de una tarea.
Según la RAE:
  1. Instrumento, por lo común de hierro o acero, con que trabajan los artesanos.
  2. Conjunto de estos instrumentos.
  3. Máquina herramienta.
  4. herraje1.
  5. Fam. Arma blanca, puñal, navaja, faca.
  6. Fig. y fam. Cuernos de algunos animales, como el toro y el ciervo.
  7. Fig. y fam. Los dientes de la boca de una persona o un animal.


Aún cuando en el castellano, las palabras "Herramienta" e "Instrumento", no son exactamente intercambiables(1) , debido a un comprensible error de interpretación en la traducción, la palabra inglesa "Tools"(2) hace pensar más en "Herramientas" que en "Instrumentos".

Orientado hacia el objetivo principal de este documento, se entrega la definición de la RAE del término "instrumento":

  1. Conjunto de diversas piezas combinadas adecuadamente para que sirva con determinado objeto en el ejercicio de las artes y oficios.
  2. Ingenio o máquina.
  3. Aquello de que nos servimos para hacer una cosa.
  4. Instrumento músico.
  5. Lo que sirve de medio para hacer una cosa o conseguir un fin.
  6. Escritura, papel o documento con que se justifica o prueba alguna cosa.


Al observar las acepciones 1, 2, 3 y 5 es claro que cuando en ingeniería se usa el término "Herramienta", se hace referencia a "Instrumento".

Herramienta de Software
Un paquete de uno o más programas computacionales para soportar una o más técnicas de una metodología. La función de las Herramientas de Software es facilitar el trabajo de las personas involucradas en el proyecto.

[Contenidos] [Índice General]


Fundamentos de la Ingeniería

En lo principal, la Ingeniería se basa en la utilización de métodos, con pasos organizados y repetibles. La tradición de la ingeniería es la de seleccionar un conjunto de pasos o etapas que de una u otra manera pueden ser agrupados en cuatro secciones fundamentales y claramente definidas:

[Contenidos] [Índice General]


Elementos importantes

Toda Metodología, considera a lo menos cuatro elementos importantes:

Principio Rector: También denominado "filosofía de la metodología", es la norma o idea fundamental que rige el pensamiento o la conducta, y orienta el análisis, diseño y desarrollo del software. Es el Principio, el que ordena y estructura las herramientas que son aplicables en la metodología, así como los Procedimientos con los que se aplica. Tradicionalmente, se apellida a cada metodología en función del principio que la rige:

Herramientas: son definiciones de mecanismos manuales, semiautomáticos o automáticos que permiten analizar, diseñar o construir el software. Las herramientas quedan estrechamente ligadas al principio rector de la metodología y es muy poco probable que una misma herramienta sea utilizable en más de una metodología (3). Una herramienta debe tener un objetivo específico y un método de aplicación. Por lo general, se ha demostrado que las herramientas gráficas (que usan imágenes) son más fáciles de usar y entender que las herramientas que sólo se sustentan en textos escritos. Son ejemplos de herramientas: los DFD, MER, Lenguaje Estructurado, Diagramas de Componentes, Diagramas de Herencia, etc.

Procedimientos(4) : Se refiere al modo de hacer, con orden, las cosas; es decir, como poner en práctica las herramientas. Los procedimientos corresponden a la definición que permite unir y ordenar los resultados de cada herramienta y facilitan el desarrollo racional y oportuno de software. Definen la secuencia en la que se aplican las herramientas, la entrega de los resultados de ellas, los controles que ayudan a asegurar la calidad. También coordinan y controlan los cambios y entregan las directrices que ayudan a los administradores a evaluar el progreso del proyecto.

Modelos: El modelo define las etapas a realizar para alcanzar la solución al problema planteado. Los Modelos, se refieren a la forma de organizar los Procedimientos, de manera de obtener resultados de calidad en el menor tiempo posible. A diferencia de las Herramientas y los Procedimientos, los modelos son relativamente independientes del principio, pudiendo aplicarse sin grandes dificultades, cualquier modelo a cualquier metodología. Pese a lo anterior, el modelo debe quedar definido claramente antes de iniciar el desarrollo del software. Ejemplos de modelos son: Cascada, Prototipos, Espiral, T4G, RAD:

[Contenidos] [Índice General]


A modo de Reflexión

Quizá llame la atención del lector, en que este documento no se han definido claramente las etapas que ordena cada modelo. Ni siquiera se ha hecho un listado de herramientas o procedimientos según alguna metodología. La razón es simple, estoy convencido de que NO existe una definición estricta al respecto ni que sea posible siquiera intentar un consenso al respecto. Al revisar literatura especializada, queda claro que cada autor (incluyendo al suscrito) tiene sus propias versiones al respecto de cómo y cuando utilizar cada herramienta, o la división del proyecto en etapas para dar solución a un problema específico.

Creo que esto es positivo. La historia nos enseña que en la Ingeniería Informática se han cometido numerosos errores, y debemos aprender de ellos. Y la lección principal, es que aún hoy, encontramos que existen jefes de proyectos, analistas, diseñadores y/o programadores (menciono cargos, no títulos) que al enfrentar un proyecto, actúan más como "artistas" inspirados por la divina providencia que como personas metódicas. Y eso ocurre porque muchas veces llega un jefe de proyecto "inspirado" y decide poner en práctica toda una serie de elementos metodológicos aprendidos en el último seminario al que asistió, sin tener claro si ellos son aplicables en la realidad de su empresa o no.

La metodología, para que sirva, debe cumplir con dos condiciones fundamentales:

  1. Debe tener Hitos bien definidos: El analista/diseñador debe saber claramente cuales son los objetivos de la etapa en la que se encuentra, reconociendo claramente las tareas que debe realizar para alcanzar dichos objetivos.
  2. Debe ser Incremental: El resultado de una etapa, debe ser de utilidad para la persona que va a realizar la etapa siguiente.

Frecuentemente, encontramos a diversas personas del área informática, declamando amargamente por el hecho de tener que crear un documento que refleje, por escrito el diseño del trabajo realizado. En esos casos, tenemos un proyecto cuya metodología de desarrollo no cumplió con las condiciones arriba señaladas. Si la metodología define pasos que no son de utilidad al desarrollador, entonces éste lo dejará para el último momento, rompiendo así con la idea fundamental de tener una metodología.

No está de más, terminar esta reflexión, recordando que una metodología, sea esta la que sea, debe constituir un estándar de desarrollo. Y los estándares no son tales por ser buenos, bonitos o baratos, sólo son estándares, cuando son utilizados como tales.

[Contenidos] [Índice General]


Notas:

  1. La palabra "Herramienta" tiene una clara connotación artesanal, mientras que la palabra "Instrumento" tiene mayor connotación científica, aunque también musical.
    [Volver al texto]
  2. Con mayor rigurosidad, es conveniente decir que la palabra "tools" tiene como mejor traducción a la palabra "Utensilio", la cual, según la RAE se define como: "Lo que sirve para el uso manual y frecuente". Y tambien: "Herramienta o instrumento de un oficio o arte".
    [Volver al texto]
  3. A menos que existan elementos comunes en la definición del Principio rector de cada una de las metodologías
    [Volver al texto]
  4. Se ha optado por la palabra "Procedimiento" para prevenir el conflicto entre las palabras "Método" y "Metodología". Sin embargo, tanto en la definición como en el uso, se observa claramente que son términos intercambiables.
    [Volver al texto]