domingo, 11 de enero de 2004

SWEBOK

El IEEE SWEBOK es un intento para definir el cuerpo de conocimiento de nuestra profesión, de manera tal que pueda ser utilizada como base para transformarla en una profesión practicada bajo licencia. Busca identificar y describir un subconjunto del cuerpo de conocimientos que es generalmente aceptado.

¿Qué significa "generalmente aceptado"? Significa que el conocimiento y las prácticas descritas son aplicables a la gran mayoría de los proyectos, la gran mayoría de las veces, y que existe un consenso generalizado sobre su valor y utilidad.

Cuando uno analiza los objetivos de este proyecto piensa que su resultado será un documento que sintetiza las grandes verdades de la ingeniería de software, mayormente verdades incuestionables. Si un documento puede tener estas características, seguro que no es el SWEBOK.

Para empezar la ACM (The Association for Computing Machinery) evaluó el SWEBOK y concluyó que este era seriamente defectuoso y que la ACM debía alejarse de su desarrollo.

Por otro lado, Cem Kaner hace una crítica detallada de la sección de testing del SWEBOK y concluye:
"Podría escribir páginas y páginas sobre las flaquezas del SWEBOK, pero pienso que no tendría sentido.
Estoy de acuerdo con la evaluación de la ACM que el SWEBOK comenzó con un enfoque esencialmente defectuoso. El resultado continúa siendo esencialmente defectuoso...
Yo dicto cursos de testing de software. El SWEBOK no es una buena referencia para incluir en ellos.
El criterio de inclusión y exclusión del SWEBOK es poco satisfactorio. Muchos de los tópicos más importantes de mis cursos de testing, (como test driven development, testing a nivel de API, testing de escenarios, skilled exploration, la diferencia de objetivos y costo/beneficio entre los conjuntos de test regresivos a nivel de unidad y a nivel de sistema, testing basado en riesgos, ... y varios más), están ausentes en el SWEBOK.
Mucho de lo presente en el SWEBOK está organizado extrañamente, es anticuado, y muchas de las técnicas son marginales en términos de que tan frecuentemente son utilizadas y cual es el valor que realmente proveen."

SWEBOK Problems, Part 2, Cem Kaner

Grady Booch dijo en la lista de discusión de Extreme Programming:
"Yo fui uno de esos 500 revisores iniciales - y mis comentarios fueron completamente negativos. El SWEBOK que revisé era bienintencionado pero malenfocado, simplista, incoherente, y simplemente errado en tantas dimensiones."

Recuerdo mi entusiasmo cuando encontré la página del SWEBOK en Internet hace un par de años. En un primer momento consideré que había encontrado un recurso muy valioso. Bajé los documentos, los imprimí y comencé a leerlos. Poco a poco el entusiasmo se fue diluyendo. Nunca terminé de leer esos documentos y no está en mis planes hacerlo alguna vez. Posiblemente la explicación de mi desinterés se encuentre en la frase de Martin Fowler:
"Existen montones de estandares de la IEEE ahí afuera que son rutinariamente ignorados por cualquiera que esté haciendo desarrollo de software comercial. La mayoría de estos estándares son escritos por estudiosos y estos están ocupados en grandes proyectos gubernamentales. La gente de negocios no considera al ámbito gubernamental como un sinónimo de eficiencia."

Swebok, Martin Fowler