Confidencial de WindowsTrabajar más, no mejor

Raymond Chen

Para los desarrolladores de software, una de las grandes ventajas de Informe de errores de Windows es que pueden obtener información real acerca de los errores de sus programas. Estos informes de errores están disponibles para cualquier proveedor de software que se registre en línea en winqual.microsoft.com. Evidentemente que puede ejecutar todo tipo de pruebas en sus laboratorios, pero siempre hay un vacío entre las condiciones de laboratorio y las condiciones reales. Esto puede tener como resultado errores que nunca aparecen en las pruebas pero que enloquecen a sus clientes.

Hace unos años un programador al que se le había asignado una tarea del equipo de confiabilidad de su producto me contó una historia. El equipo deseaba resolver los motivos principales de los errores y los bloqueos en un determinado componente. Después de negociarlo, ambas partes acordaron establecer un objetivo de reducir el número de estos tipos de errores a la mitad. Deseaban corregir los errores responsables del 50% de los bloqueos de dicho componente, tal y como se cuantificaba en Informes de errores de Windows.

Todos sabemos que los errores no se distribuyen uniformemente. Algunos son esporádicos, otros son habituales y otros son inesperados (hablando de forma relativa). La ingeniería es cuestión de equilibrio; a partir de recursos finitos (tiempo, dinero y capacidad mental) se tienen que dedicar los esfuerzos donde tengan más efecto. Como el objetivo aquí era reducir el número de bloqueos, el enfoque sensato era estudiar los errores más habituales notificados por Informe de errores de Windows, descubrir la causa e intentar corregir esos errores habituales.

fig00.gif

Informe de errores de Windows proporciona información real acerca de los errores de los programas (haga clic en la imagen para ampliarla)

Cuando el programador profundizó en los datos de error, resultó evidente que cinco bloqueos concretos suponían más del 60% de los informes. Si el programador podía corregir los errores que provocan estos cinco bloqueos, reduciría el número de bloqueos por un factor de 2,5, mucho más que el factor objetivo de 2.

El propio análisis de Microsoft de los datos de Informe de errores de Windows muestra que el principio de Pareto es una regla sorprendentemente buena para los bloqueos de Windows; cerca del 20% de los errores provocan el 80% de los bloqueos. El mismo estudio reveló un resultado aún más sorprendente: sólo el 1% de los errores provoca el 50% de los bloqueos. No todos los errores se crean por igual, pero resulta bastante revelador para saber lo desigual que es la distribución.

Después de estudiar estos cinco errores detenidamente, el programador llegó a la conclusión de que todos tenían la misma causa. Los bloqueos simplemente eran manifestaciones distintas del mismo error subyacente. Por lo tanto, desarrolló y probó una corrección y, conjuntamente con el personal de control de calidad, inició el proceso para incluir la corrección en la siguiente revisión. Con esa única corrección de error, el índice teórico de errores del componente descendió inmediatamente en un factor de 2,5. Cumplió su misión con una corrección de código relativamente sencilla.

Cuando escuché esta historia, me sorprendió que la curva de distribución de errores del componente era incluso más pronunciada que la de Windows. Más de la mitad de todos los bloqueos se debían a un solo error. Se trata del tipo de información del código que no es posible sin los datos obtenidos con alguna herramienta como Informe de errores de Windows.

Se podría pensar que el equipo de confiabilidad se quedaría estupefacto por haber cumplido su objetivo tan rápidamente. El objetivo acordado se superó en tan sólo dos semanas con una única corrección. En vez de eso, se enfadaron.

"Es inaceptable, esperábamos que se tardaría dos meses. ¡Ha sido demasiado fácil!" Aparentemente deseaban que el programador trabajara más intensamente, no mejor.

En el sitio web de Raymond Chen, The Old New Thing, y en su libro homónimo se trata la historia de Windows y la programación Win32. El 20% de su ropa es el responsable del 80% de su colada.