El Abogado del Diablo como Técnica de Trabajo Cooperativo Pablo Sánchez Dpto. Matemáticas, Estadística y Computación Universidad de Cantabria Facultad de Ciencias, Avda. Los Castros S/N 39071 Santander (Cantabria) [email protected] Resumen El Espacio Europeo de Educación Superior introduce la necesidad de formar a los alumnos en nuevas competencias profesionales les permitan afrontar su inserción en el mercado laboral con mejores garantías. Una de las competencias profesionales más demandadas por las empresas es la de trabajo cooperativo. Surge por tanto la necesidad de desarrollar metodologías para que los alumnos aprendan a trabajar de forma cooperativa eficazmente. Este artículo presenta una metodología de trabajo cooperativo, denominada El abogado del diablo, aplicable a las materias relacionadas con la programación de computadores. Un valor añadido de esta metodología es que forma sin esfuerzo adicional alguno a los alumnos en competencias relacionadas con la Ingeniería del Software. Summary Training students in new, and not strictly academic, professional skills has become practically mandatory with the emergence of the new European Space of Higher Eduction. The goal is to increase opportunities for employment of recently graduated students. One of the professional skills most demanded by companies is teamworking. Therefore, it becomes necessary to create new teaching methodologies which allow students to learn how to work as a team. This paper presents a methodology for teamworking, called "the devil’s advocate", which is suitable for teaching subjects related to computer programming in the first courses of a Computer Science degree. Moreover, a positive side effect of our methodology is that students are also trained on Software Engineering skills without any additional effort. Palabras clave Trabajo Cooperativo, Competencias Profesionales, Programación, Metodologías Docentes 1. Introducción El Espacio Europeo de Educación Superior, entre muchos otros objetivos, establece la necesidad de formar a los alumnos universitarios en una serie de competencias profesionales [7] que suelen ir más allá de las meramente académicas. Entre estas competencias se encuentran habilidades tales como la capacidad de iniciativa y de liderazgo, el aprendizaje autónomo o la capacidad de trabajar en equipo. Estas competencias plantean nuevos retos a los docentes universitarios, los cuales tienen en muchas ocasiones que formar a los alumnos en competencias en las cuales el propio docente no ha sido formado. Surge por tanto la necesidad de crear nuevas metodologías docentes que asistan a los profesionales de la enseñanza en los procesos de formación en las nuevas competencias profesionales. Idealmente, estas nuevas metodologías deberían integrarse con las metodologías destinadas a la formación en competencias propias de cada titulación universitaria. Es decir, se trata de que el alumno adquiera las competencias profesionales a la vez que se adquiere las competencias propias de su titulación. La formación en competencias profesionales no sólo debería no interferir con la formación en competencias académicas, sino que debería favorecer la adquisición de estas últimas. Una de las competencias profesionales más demandadas por la mayoría de las empleadores actualmente es la capacidad de trabajo en equipo. Esta competencia es particularmente difícil de trabajar en materias relacionadas con la Programación de Computadoras, sobre todo en los primeros cursos. El principal problema de desarrollar software en equipo es que, aparte de una sólida y eficaz dirección, nece- 128 Sesión 3A: Arquitectura de computadores / Sistemas operativos / Sistemas distribuidos y paralelos sita de una infraestructura tecnológica, tales como repositorios de código o sistemas de control de versiones, que en muchas ocasiones no están fácilmente disponibles en el entorno universitario. Además, en los primeros cursos, dado el tamaño de las aplicaciones desarrolladas por los alumnos, resulta especialmente difícil dividir en desarrollo de una aplicación en partes o módulos independientes que permitan a los alumnos trabajar de forma eficaz como un equipo. Este trabajo presenta una metodología basada en una técnica conocida de trabajo en equipo [5, 8] denominada el abogado del diablo, que resulta de especial utilidad para realizar trabajos prácticos de Programación en parejas. Dicha metodología se adecuada a las necesidades de los primeros cursos de una titulación universitaria y tiene como ventajas adicionales: • Ayuda a formar al alumno en otras competencias profesionales, como el aprendizaje autónomo; • Predispone al alumno para el aprendizaje de competencias específicas relacionadas con la Ingeniería del Software, tales como la realización metodológica de pruebas o la gestión de versiones de un productos software; • Mejora la percepción que el alumno tiene del trabajo cooperativo. Dicha metodología ha sido aplicada con éxito en la asignatura de Estructura de Datos y Algoritmos perteneciente a la titulación de Ingeniería en Informática de la Universidad de Cantabria. El presente artículo describe dicha metodología así como los resultados obtenidos. Tras esta introducción, este artículo se estructura de la siguiente forma: La sección 2 explica la motivación existente tras este trabajo. La sección 3 describe la metodología de trabajo en equipo basada en el abogado del diablo particularizada para materias de primeros cursos relacionadas con la Programación de Computadoras. La Sección 4 comenta los beneficios esperados, mientras que la Sección 5 discute los resultados obtenidos tras aplicar esta metodología. Finalmente, la Sección 6 resume las conclusiones principales extraídas de este trabajo. 2. Motivación El principal problema que presenta la realización de trabajos en equipo en materias relacionadas con la Programación de Computadoras en los primeros cursos de una titulación relacionada con la Ingeniería en Informática es que el tamaño de las aplicaciones software desarrolladas por los alumnos no alcanza el mínimo necesario para que la aplicación pueda ser fácilmente dividida en partes o módulos independientes. El principal inconveniente es que la metodología de trabajo cooperativo normalmente utilizada por los alumnos se suele basar en varios estudiantes sentados alrededor de una computadora observando como sólo uno de ellos programa. El resto, en el mejor de los casos, se limita a: (1) verificar que el que está programando no comete errores; (2) hacer sugerencias; y (3) proponer mejoras. En esta escenario, el hecho de trabajar en equipo se considera estéril e improductivo, y así lo perciben muchos alumnos. Aunque esta situación pueda tener cierto parecido con técnicas de desarrollo software modernas, tales como la programación por pares [1], entendemos que las habilidades y capacidades de los estudiantes de los primeros cursos no están lo suficiente maduras como para poder sacar beneficio de tales técnicas. Por ejemplo, en el caso de la programación por pares, mientras un programador está codificando, el otro supervisa el proceso y propone mejoras en aras de una mayor facilidad de adaptación y evolución del producto software. Para que esta técnica funcione de forma efectiva, se presupone que ambos programadores son programadores experimentados y tienen amplio conocimiento de técnicas avanzadas de diseño software, como un sólido conocimiento sobre Patrones de Diseño [3]. Obviamente, las competencias adquiridas por los alumnos al comienzo de un segundo curso de una titulación como Ingeniería en Informática no son suficientes para alcanzar este nivel. Cabe destacar que si pretendemos enseñar a nuestros alumnos a trabajar en equipo, el primer paso es hacer que comprendan el valor del trabajo cooperativo. Según los datos recopilados entre el alumnado antes de aplicar nuestra metodología, la mayoría de los alumnos consideraban que el hecho de trabajar en equipo no les aportaba ningún beneficio. Argumentaban que podían concluir las tareas asignadas XVII Jornadas de Enseñanza Universitaria de la Informática con mayor rapidez si las realizaban de forma individual, en lugar de realizarlas en equipo. Además, en el caso de las tareas a realizar fuera del aula, el hecho de trabajar en equipo les obligaba a reunirse fuera del periodo de docencia presencial, con el consiguiente esfuerzo de coordinación. Todo esto aumenta el tiempo dedicado al trabajo en equipo y su descrédito. Por tanto, la realidad actual era que los estudiantes percibían el trabajo en equipo como algo que les perjudicaba más que beneficiarles. Si los alumnos no perciben las ventajas de trabajar de forma cooperativa, difícilmente podrán aprender a trabajar cooperativamente.Se hace por tanto patente la necesidad de crear metodologías que permitan a los alumnos valorar el trabajo cooperativo. Es decir, se trata de crear técnicas de trabajo en equipo que incrementen la productividad en lugar de decrementarla. La siguiente sección describe la metodología del abogado del diablo aplicada al desarrollo de pequeñas aplicaciones software por parejas de estudiantes. Una de las ventajas de esta metodología es que permite a los alumnos trabajar de forma individualizada cooperativamente. Se benefician del hecho de pertenecer a un grupo sin que ello les suponga un gran esfuerzo adicional, viendo aumentada su productividad. 3. Descripción de la Metodología La figura del abogado del diablo tiene un origen eclesiástico. Su función es la de verificar si un hecho considerado como milagroso es realmente un milagro o, por el contrario, es un hecho extraordinario pero basado en una explicación perfectamente racional. En este segundo caso, se descarta la intervención divina y no se le atribuye carácter milagroso. La persona que desempeña esta tarea, por tanto, parece empeñada en negar la existencia de Dios, de ahí que se le considere un mensajero o un abogado del diablo. El papel de abogado del diablo se introdujo en las técnicas de trabajo en equipo hace ya varias décadas [8, 1]. Fue empleada incluso por el presidente americano John F. Kennedy. La idea de Kennedy era la de disponer de un asesor que criticara enérgicamente las decisiones de su gabinete. Si Kennedy lograba rebatir con contundencia las críticas de este asesor, las decisiones se consideraban acertadas. Además, el presidente adquiría la destreza necesaria 129 para rebatir tales críticas si éstas eran planteadas por algún miembro de la oposición o de la prensa. La metodología que proponemos en este artículo está basada en crear parejas de estudiantes en las cuales uno realiza una primera parte del trabajo asignado, y el otro ejerce el papel de abogado del diablo. El abogado del diablo evalúa a su propio compañero de forma exhaustiva. A continuación, los alumnos intercambian los papeles. De esta forma, el que ha ejercido de abogado del diablo continúa con el trabajo asignado; y el que había realizado el trabajo, pasa a ejercer el papel de abogado del diablo. A continuación, exponemos como se ha aplicado esta metodología a la implementación de un Tipo Abstracto de Datos dentro de la asignatura de Estructuras de Datos y Algoritmos de la titulación de Ingeniería Informática. La asignatura pertenecía al segundo curso y tenía un total de 42 alumnos. La tarea a realizar por los alumnos era implementar, en un lenguaje que nunca hubiesen utilizado anteriormente y de su elección, un Tipo Abstracto de Datos (por ejemplo, un conjunto implementado sobre listas enlazadas). El objetivo último del trabajo era fomentar el aprendizaje autónomo de nuevos lenguajes de programación, competencia fundamental para todo Ingeniero Informático. Dicha tarea se debía realizar por parejas, que podían ser libremente formadas por los alumnos de acuerdo a sus propias afinidades. Cada grupo debía elegir, según sus capacidades y expectativas, un Tipo Abstracto de Datos y una técnica de implementación (por ejemplo, conjuntos sobre tablas de dispersión). Una vez elegido el Tipo Abstracto de Datos a implementar, la metodología de trabajo propone como siguiente etapa dividir la interfaz del mismo en grupos de operaciones relativamente independientes que se puedan implementar de forma secuencial. Lo mismo se aplica a la implementación del soporte para dicho Tipo Abstracto de Datos. Por ejemplo, supongamos que una pareja de alumnos escogen implementar un caso de conjunto implementado sobre tablas de dispersión. Habría que implementar primero una tabla de dispersión y a continuación, usando dicha tabla de dispersión, implementar un conjunto. Las operaciones a implementar para este TAD podrían dividirse en los siguientes bloques: 1. Implementación de las operaciones de inserción, búsqueda y eliminación en la tabla de dis- 130 Sesión 3A: Arquitectura de computadores / Sistemas operativos / Sistemas distribuidos y paralelos persión. 2. Implementación de las operación de creación, inserción, eliminación y búsqueda en un conjunto (implementado sobre una tabla de dispersión). 3. Implementación de las operaciones de unión, intersección y diferencia entre conjuntos. 4. Implementación de las operaciones cardinal, subconjunto e igualdad entre conjuntos. Una vez divididas estas operaciones en bloque, la idea principal de la metodología es que un estudiante implemente sin la presencia de su compañero. Por tanto, no se requieren esfuerzos de coordinación. Su compañero va a ejercer el papel de abogado del diablo sobre la implementación creada. El fundamento y motivación para el alumnado reside en que resulta mejor que los fallos cometidos por un compañero los descubra otro compañero antes de que el trabajo sea calificado por el docente, momento en el cual dichos fallos ya no serían reparables. Es decir, la metodología de trabajo se basa en que un alumno implementa y el otro prueba y certifica el programa. Usamos el verbo certificar porque las tareas del abogado del diablo van más allá de la realización de pruebas exhaustivas. Concretamente, las tareas del abogado del diablo son verificar que: 1. El programa funciona para todos los casos posibles. Ello implica que el abogado del diablo debe diseñar un conjunto exhaustivo de pruebas y ejecutarlas, con objeto de comprobar que el código creado por su compañero funciona para todos los casos posibles. 2. La documentación de los métodos es adecuada, es decir, es suficiente, precisa y concisa. 3. Las precondiciones para los métodos declarados son correctas y suficientes y que siempre que se satisfacen ningún método lanza una excepción (se sigue en la asignatura un proceso de aprendizaje basado en Diseño por Contrato [6]). 4. Siempre que se invoca un método se satisfacen las precondiciones, (de nuevo de acuerdo con los principios del Diseño por Contrato). 5. En los comentarios y documentación de los métodos no existen errores tipográficos u ortográficos. 6. No se incumplen las normas de estilo de pro- gramación contenidas en la Guía de Buenas Prácticas en Programación proporcionada al comienzo de la asignatura.1 7. El código creado se entiende bien, ya sea porque es trivial o porque su funcionalidad se deduce fácilmente de la documentación de los métodos o de los comentarios insertados en el código. 8. La información que se muestra al usuario por pantalla es clara, precisa, concisa y está libre de errores tipográficos u ortográficos. Es decir, el abogado del diablo trabaja con una rúbrica idéntica a la que usaría el profesor para calificar dicho trabajo. De esta forma, el trabajo producido por un estudiante es precalificado por su compañero de trabajo. Si éste descubriese fallos, éstos se podrían corregir antes de que fuese demasiado tarde, es decir, antes de que el trabajo fuese definitivamente calificado por el profesor. En caso de detección de fallos, el propio abogado del diablo podría optar por corregirlos él, o solicitar a su compañero que lleve a cabo las acciones correctivas pertinentes. Una vez que el trabajo realizado recibe la aprobación del abogado del diablo, se pasaría a la siguiente iteración en la realización del trabajo. En la siguiente iteración, los estudiantes se intercambian los papeles, siendo el abogado del diablo el que implementa el siguiente bloque de código; y el que implementó anteriormente pasa a ejercer ahora el papel de abogado del diablo. Destacar que si el número de bloques en los que se ha dividido el trabajo fuese impar no habría problema alguno dado que la carga de trabajo por bloque asignada al que implementa y al abogado del diablo es aproximadamente la misma. Es decir, aunque al principio a los estudiantes le pueda parecer lo contrario, el abogado del diablo trabaja igual, o algo más incluso, que el que implementa, siendo por tanto la distribución del trabajo equitativa. Para que esta metodología tenga éxito, el abogado del diablo debe criticar, de forma racional y constructiva, pero con firmeza y exhaustividad, el trabajo de su compañero. El compañero debe tomarse estas críticas no como un ataque personal, sino como un trabajo cuyo único objetivo es mejorar el resul1 Disponible en http://personales.unican.es/sanchezbp/teaching/ faqs/programming.html XVII Jornadas de Enseñanza Universitaria de la Informática tado global del equipo. Si el compañero que es inspeccionado por el abogado del diablo detectase que después del trabajo del abogado quedasen aún existiesen defectos que deban ser reparados, deberá instar al abogado a repetir su trabajo, pero esta vez con mayor diligencia y profesionalidad. La siguiente sección describe los beneficios obtenidos al aplicar esta metodología. 4. Beneficios Esperados Los beneficios derivados de la aplicación de la metodología del abogado del diablo se resumen en los siguientes puntos, los cuales desarrollaremos a lo largo de esta sección: 1. Los alumnos pueden trabajar de forma individual a la vez que realizan un trabajo cooperativo. 2. Permite la colaboración no presencial entre alumnos. 3. Los estudiantes aprenden de los errores de sus compañeros, es decir, se produce en parte un aprendizaje por observación y experimentación. 4. Fomenta el espíritu crítico del alumno, que aprende a autoevaluarse, competencia necesaria para alcanzar el aprendizaje autónomo. 5. Los alumnos, mediante la experimentación, descubren la existencia de ciertos problemas relacionados con la Ingeniería del Software, tales como el control de versiones o el diseño de pruebas. 6. La percepción y valoración del estudiante del trabajo cooperativo mejora. 4.1. Trabajo individual y cooperativo De acuerdo con los principios de nuestra metodología, los alumnos trabajan de forma individual pero coordinada. Por su propia construcción, la metodología evita el que haya dos alumnos sentados frente a un mismo computador, uno trabajando y el otro mirando. En la metodología del abogado del diablo, ambos estudiantes se convierten en elementos productivos del grupo. Mencionar que esta forma de trabajar en equipo es la que se corresponde con la práctica diaria de las empresas de desarrollo software. En tales empresas, 131 un director de proyecto coordina el trabajo de varios desarrolladores. Estos desarrolladores trabajan de forma individual sin que exista excesiva comunicación entre ellos. Es decir, se trata de un trabajo cooperativo pero autónomo. Podría también plantearse como solución para convertir a los dos estudiantes en elementos productivos que, tras dividir el código a desarrollar en bloques, cada alumno implementase un bloque de forma individual y luego los integrasen. Debido a las dependencias normalmente existentes entre diferentes bloques, este desarrollo independiente se hace francamente complejo. Incluso en los casos donde es posible alcanzar cierto grado de independencia, los esfuerzos requeridos para integrar el código desarrollado de forma aislada por los estudiantes suelen ser bastante grandes y tediosos. Por tanto, el estudiante vuelve a tener la sensación de que podría haber completado el trabajo en menor tiempo si hubiese realizado la tarea de manera individual en lugar de colectiva. Por tanto, consideramos que la metodología del abogado del diablo ayuda a mejorar percepción que poseen los alumnos sobre los beneficios del trabajo en equipo. 4.2. Coordinación no necesariamente presencial Como consecuencia directa de que la metodología obligue a que los alumnos trabajen de forma individual pero coordinada, se elimina la necesidad de que los alumnos tengan que reunirse en un momento concreto en un espacio físico determinado para realizar el trabajo asignado. Los alumnos sólo necesitan reunirse para decidir el tema del trabajo (si se les da la opción de elegir), dividir el trabajo en diferentes bloques y decidir quién implementa y quién es abogado del diablo en la primera iteración. Es conveniente también que los alumnos acuerden un calendario de trabajo, así como que se comprometan a cumplirlo. Tras esta reunión inicial, y dado los avances tecnológicos existentes hoy en día, los alumnos no tienen necesidad alguna de volver a reunirse. En cada iteración, el alumno que implementa sólo necesita enviar el código creado al abogado del diablo una vez que ha terminado su trabajo. El abogado del diablo elabora entonces su informe de fallos, 132 Sesión 3A: Arquitectura de computadores / Sistemas operativos / Sistemas distribuidos y paralelos corrige aquellos que considere triviales, y le vuelve a reenviar el código, si lo hubiese modificado, junto con el informe de errores a subsanar. El alumno que creó el código subsana los errores notificados y vuelve a enviar el código al abogado del diablo. Este último repite el proceso hasta que ambos estudiantes den el visto bueno al trabajo. Por tanto, tener acceso al correo electrónico es suficiente para poder trabajar de forma cooperativa pero individualizada. Ello evita el que los alumnos se tengan que reunir para trabajar. Este hecho, según las opiniones, suele ser el primer obstáculo que los alumnos encuentran para trabajar en equipo. 4.3. Aprendizaje mediante la evaluación por pares Se dice que el hombre es el único animal capaz de tropezar dos veces con la misma piedra. A pesar de ello, es conveniente permitir que los alumnos tropiecen. De esta forma, tras varios tropiezos, acaban por darse cuenta de dónde están las piedras y aprenden a evitarlas. La metodología del abogado del diablo fomenta que los alumnos descubran dichas piedras y aprendan a evitarlas. Usando esta metodología, los alumnos descubren dónde fallan las aplicaciones de sus compañeros y cómo se solucionan esos fallos. A partir de ese momento, toman conciencia de la existencia de tales fallos y comienzan a adoptar las actitudes necesarias para evitarlos. Un ejemplo muy claro es la operación de eliminación en listas enlazadas con punteros al principio y al final de dicha lista. La mayoría de los alumnos prueban el código desarrollado para listas vacías y listas con varios elementos, pero casi nunca para listas con un único elemento, donde dicho elemento sea además el elemento que hay que eliminar. La metodología del abogado del diablo ayuda a que los alumnos descubran estos casos particulares. Esto es debido en gran parte al hecho de que el abogado del diablo sólo tiene que diseñar los casos de prueba, lo cual ayuda a que el alumno que desempeña el papel del abogado del diablo sea más exhaustivo diseñando casos de prueba, dado que es su única función y no se encuentra agotado o cansado por el esfuerzo de la implementación. Este cansancio o hastío es la razón principal que esgrimen los alumnos para no diseñar casos de prueba exhaustivos. 4.4. Aprender a autoevaluarse El hecho de ejercer de abogado del diablo convierte temporalmente al alumno que desempeña dicho papel en evaluador de su compañero. Ello hace que para la siguiente iteración, el abogado del diablo asuma que va a ser evaluado de la misma forma que él ha sido evaluado. Por tanto, desarrolla el código evitando cometer los mismos errores que él ha detectado en el trabajo de su compañero. Es decir, el alumno aprende a autoevaluarse, a detectar sus propios errores y a corregirlos. Por tanto mejora sus habilidades y competencias de manera autónoma. Es decir, se fomenta el aprendizaje autónomo y el alumno aprende a aprender. 4.5. Competencias relacionadas con la Ingeniería del Software La aplicación de la metodología del abogado del diablo prepara al alumno para una mejor adquisición de competencias tradicionalmente relacionadas con la Ingeniería del Software, materia que suele impartirse en un tercer o cuarto curso. Esto se debe a que el alumno experimenta y sufre mediante la aplicación de la metodología presentada algunos de los problemas que la Ingeniería del Software trata de solucionar. Una mejor comprensión del problema, y sobre todo el haberlo sufrido, permite al alumno entender mejor la necesidad de aprender y comprender las soluciones existentes a esos problemas. Es decir, el haber experimentado ciertos problemas y dificultades motiva al alumno a aprender y comprender cómo solucionarlos. Dos claros ejemplos son la gestión de versiones [2] y la necesidad de disponer de metodologías para la realización de pruebas sistemáticas [9]. Uno de los primeros problemas con los que se enfrenta el abogado del diablo es el diseño de casos de prueba sistemáticos. Sin ayuda de una metodología adecuada, el abogado del diablo se encuentra la mayoría de las veces desamparado. Por tanto, el alumno toma consciencia de la existencia una rama de conocimiento dedicada al desarrollo sistemático de pruebas software. Consecuentemente, el alumno no sólo entiende la necesidad de su existencia, sino que además se encuentra motivado hacia su aprendizaje, al ser plenamente consciente de su utilidad práctica. XVII Jornadas de Enseñanza Universitaria de la Informática El mismo fenómeno acontece con la gestión de versiones. Al tener que compartir y modificar el mismo código fuente la pareja de estudiantes, aparecerán los inevitables problemas de versiones. Es por ello que el alumno, al sufrir y experimentar el problema, entenderá y valorará mejor la necesidad de disponer de metodologías para la gestión del cambio y la configuración, así como la necesidad de disponer de herramientas como Subversion que sirvan para automatizar parte de estas tareas. 4.6. Valoración del trabajo en equipo Al ser los dos miembros del grupo elementos productivos con escasa necesidad de coordinación, los alumnos perciben que el hecho de trabajar en equipo aumenta la productividad. Como consecuencia, los alumnos valoran los resultados obtenidos como de mayor calidad que los que podrían haber obtenido trabajando a nivel individual, y por tanto descubren las ventajas de trabajar en equipo. La siguiente sección analiza las argumentaciones de esta sección a partir de los resultados obtenidos, las opiniones recogidas entre el alumnado y una comparación con los cinco elementos clave que debe poseer todo aprendizaje cooperativo. 5. Discusión de los Resultados Obtenidos Esta sección discute los resultados obtenidos a partir de las opiniones y sensaciones recopiladas entre el alumnado acerca de su percepción de trabajo cooperativo antes y después de aplicar la metodología propuesta en este artículo. Se analiza también cuándo la metodología propuesta satisface los 5 elementos clave del aprendizaje cooperativo [4]. En general, la mayoría de los alumnos comentaban al principio del cuatrimestre que el trabajo en equipo era a veces positivo, pues en ocasiones podían aprender algo de sus compañeros. Pero, por otra parte, les suponía normalmente un esfuerzo extra considerable debido a la dificultad de encontrar un horario y espacio determinados donde poder reunirse para trabajar juntos. Además, algunos alumnos, normalmente los que mejores calificaciones tenían, eran de la opinión de que el trabajo en equipo les perjudicaba más que les beneficiaba. Estos alumnos consideraban que podían llegar a los mismos resultados y de forma más rápida trabajando de forma in- 133 dividual que cooperativamente. Al final del cuatrimestre las opiniones del alumnado acerca de la metodología del abogado del diablo eran mayoritariamente positivas. En especial, porque les permitía trabajar de forma coordinada, pero sin estar físicamente juntos ni trabajando al mismo tiempo. La percepción de los alumnos acerca del trabajo en equipo parecía haber mejorado notoriamente al final del cuatrimestre. Casi la totalidad de ellos, en mayor o menor grado, eran de la opinión de que el hecho de trabajar en equipo les había ayudado a obtener resultados de mejor calidad que los que hubiesen obtenido trabajando individualmente, incluyendo a los alumnos con mejores calificaciones. Este tipo de alumno comentaba que la metodología les ayudaba a mejorar su trabajo, dado que sus compañeros detectaban errores que a ellos se les habían inicialmente escapado. Por otra parte, cuando ejercían de abogados del diablo se sentían mucho más cómodos a la hora de criticar, siempre de forma constructiva, el trabajo de sus compañeros. Comentaban que, estas mismas críticas, cuando se hacían usando otra metodología, no eran siempre recibidas con agrado por el resto del equipo, mientras que ahora, las mismas críticas, si eran bien recibidas. Como aspectos negativos de la metodología, la mayoría de los alumnos comentaban que les resultaba difícil diseñar casos de prueba exhaustivos, principalmente porque no sabían que pasos debían seguir, qué casos considerar, o cuántos casos eran suficientes. Por tanto, nos proponemos como mejora a esta metodología formar a los alumnos de los próximos cursos en el diseño sistemático de casos de prueba. De este modo el alumno que ejerza el papel de abogado del diablo, podrá hacerlo de manera más efectiva, sistemática y científica. Por último, analizamos como la metodología del abogado del diablo cumple con los 5 aspectos clave del trabajo cooperativo: (1) interdependencia positiva; (2) interacción positiva cara a cara; (3) exigibilidad individual; (4) habilidades cooperativas; y (5) autoanálisis del grupo. Interdependencia positiva A tenor de las opiniones recogidas entre el alumnado, el alumno entiende que el hecho de pertenecer a un equipo le beneficia, por lo que considera el hecho de trabajar de forma cooperativa como algo positivo. El fomentar la interdepedencia positiva era uno de los objetivos prin- 134 Sesión 3A: Arquitectura de computadores / Sistemas operativos / Sistemas distribuidos y paralelos cipales que perseguíamos con la introducción de esta metodología. Interacción positiva personal En este aspecto la metodología del abogado del diablo ayuda a mejorar la percepción que los alumnos tienen de sus compañeros. Obsérvese por ejemplo que los alumnos con mejores calificaciones mejoraron la percepción que tenían de sus compañeros menos capaces. De la misma forma, los menos capaces aprendieron a aceptar las críticas de los alumnos más aventajados. 6. Conclusiones El presente artículo ha presentado una metodología de trabajo en equipo que resulta especialmente adecuada para las materias relacionadas con la Programación de Computadoras que se imparten en los primeros cursos de las titulaciones universitarias. Las principales ventajas de esta metodología es que mejora la visión que los alumnos tienen del trabajo cooperativo, al servir para incrementar su productividad y desarrollar productos de mayor calidad. Referencias Exigibilidad individual Tal como planteamos la metodología, cada alumno tiene una tarea bien definida y ha de responder con su trabajo ante su compañero. Si alguno de los dos miembros de un grupo no trabaja, queda patente y manifiesto quién es el que no no trabaja. No obstante, la metodología no incluye ningún punto específico acerca de cómo resolver los conflictos, en caso de que se produzcan, o de cómo evitar que se produzca ningún tipo de parasitismo. Habilidades cooperativas La metodología del abogado del diablo es en sí una técnica de trabajo cooperativo que los alumnos aprenden mediante su aplicación. Por tanto, mejoran su competencia de trabajo cooperativo mediante la incorporación a su saber y habilidades de una nueva técnica de trabajo cooperativo, en mi humilde opinión, de gran utilidad en el ámbito del desarrollo software. La metodología además no es incompatible con la formación en otras habilidades cooperativas, como la toma de decisiones o la gestión de conflictos. Autoanálisis del grupo En nuestro caso particular, no ha existido ningún tipo de autoanálisis de los grupos, a excepción de la propia de final del cuatrimestre, con objeto de conocer las opiniones del alumnado acerca de la técnica aplicada. No obstante, la técnica no es incompatible con el autoanálisis. Es más, al estar las funciones de cada miembro del grupo claramente identificadas, es más fácil comprobar si cada uno está cumpliendo su función y si dicha función es eficaz para alcanzar un objetivo determinado. [1] Kent Beck. Extreme Programming Explained: Embrace Change. Addison-Wesley Professiona, October 1999. [2] Stephen P. Berczuk. Software Configuration Management Patterns: Effective Teamwork, Practical Integration. Addison-Wesley Professional, November 2003. [3] Erich Gamma, Ralph Johnson Richard Helm and, and John M. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, November 1994. [4] David W. Johnson, Roger T. Johnson, and Karl A. Smith. Active Learning: Cooperation in the College Classroom. Interaction Book, December 1991. [5] Thomas Kelley and Jonathan Littman. The Ten Faces of Innovation: IDEO’s Strategies for Defeating the Devil’s Advocate and Driving Creativity Throughout Your Organization. Doubleday, Diciembre 2005. [6] Bertrand Meyer. Touch of Class: Learning to Program Well with Objects and Contracts. Springer, 2009. [7] Mercedes Marzo Navarro, Marta Pedraja Iglesias, and Pilar Rivera Torres. Las competencias profesionales demandadas por las empresas: el caso de los ingenieros. Revista de Educación, 341:643–661, Septiembre-Diciembre 2006. [8] Michael A. West. Effective Teamwork: Practical Lessons from Organizational Research. WileyBlackwell, December 2003. [9] Colin Willcock, Thomas Deiss, Stephan Tobies, Stefan Keil, Federico Engler, and Stephan Schulz. An Introduction to TTCN-3. Wiley, July 2005.