Mitos de la ingeniería de software


En el sitio de Microsoft Research se ha publicado un resumen de los resultados de la investigación empírica para refutar los mitos de la ingeniería de software, en la cual midieron el impacto en la calidad de las prácticas comunes que la ingeniería de software tiene actualmente. El estudio fue llevado a cabo por el Empirical Software Engineering and Measurement Research Group (ESM) y conducido por Nachi Nagappan.

En síntesis, el estudio revela que:

Más (cobertura) no es siempre lo mejor.

Una mayor cobertura del código de pruebas no necesariamente se correlaciona con una disminución en los números de fallos requeridos en el post-lanzamientos. La razón que es existen muchos otros factores que entran en juego.

Nagappan señala dos razones por las que la cobertura de código por si sola no alcanza para predecir la incidencia de los errores: el uso de las características por parte del cliente y la complejidad del código mismo. Por lo que concluye que lo conveniente sería realizar una mayor cobertura de código al código que es más complejo.

Escriba código de prueba primero.

El resultado de esta prueba lo encontramos en el documento Realizing quality improvement through test driven development: results and experiences of four industrial teams [pdf], el cual describe que el equipo de investigación encontró que los equipos TDD producen de 60 a 90 por ciento mejor código, en términos de densidad de defectos, que los equipos no-TDD, a la vez que descubrieron también que los equipos TDD toman un poco más tiempo para completar sus proyectos, entre 15 al 35 por ciento más.

La utilidad de las assertions.

El documento Assessing the Relationship between Software Assertions and Code Quality: An Empirical Investigation recoge las observaciones del equipo las cuales indican una correlación negativa entre el número de assertions y verificaciones de código y el número de bugs, es decir: entre más assertions, menos bugs. Los ingenieros de software que fueron capaces de hacer un uso productivo de las assertions en su código base tienden a estar bien entrenados y con experiencia, un factor que contribuyó a los resultados finales.

La estructura organizacional importa, y demasiado.

Las métricas que tienen que ver con el código tienen un fuerte impacto en la calidad. ¿Pero que hay de aquellas relacionadas con la comunicación y la estructura organizacional?. El documento: The Influence of Organizational Structure on Software Quality: An Empirical Case Study concluye que las métricas organizacionales, que no están relacionados con el código, pueden predecir la propensión a errores del software con una precisión del 85 por ciento, lo cual es muy significativo.

La distancia geográfica no importa, mucho.

El estudio plasmado en el documento Does distributed development affect software quality? An empirical case study of Windows Vista encontró que las diferencias con respecto a la calidad, entre los equipos “distribuidos” y los que no, son estadísticamente insignificantes.

“I feel that we’ve closed the loop… It started with Conway’s Law, which Brooks cited in The Mythical Man-Month; now, we can show that, yes, the design of the organization building the software system is as crucial as the system itself.”

– Nachi Nagappan

Los resultados de la investigación están siendo utilizados en el mundo real. Comenzando por los grupos de desarrollo de Microsoft que desarrollaron Visual Studio 2005 y VS2008, hasta en el análisis de riesgos y seguimiento de errores para Windows Vista SP2.

Pero Nagappan desea que los resultados de su trabajo vayan más allá de los confines de Microsoft y se extiendan a otros entornos comerciales, equipos de desarrollo distribuidos, y ambientes de código abierto.

Mayor información:

Acerca de Willy Mejia

Developer, Techie, Human... http://about.me/willyxoft
Esta entrada fue publicada en .NET, Ingeniería de Software. Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s