Como usar el método científico para corregir errores en programación

Este articulo esta basado en una charla que inparti en el meetup de PHP.

¿Que es le método científico?

A lo largo de la historia muchas personas han inventado métodos, que personas dedicadas al descubrimiento sistemático del conocimiento no se les haría desconocidos, pero a mi parecer el método científico como lo conocemos ahora, fue planteado por primera ver por Abū ‘Alī al-Ḥasan ibn al-Ḥasan ibn al-Hayṯam, que escribió:

Es el deber de la persona que investiga los escritos de sus ancestros, si llegar a la verdad es su objetivo, hacerse enemiga de todo lo que lee y atacarlo en todos los frentes. También debe de dudar de si misma mientras realiza esta revision critica de ellos, para no caer en prejuicios ni indulgencia.

Lo que yo saco de este párrafo es que, si quieres llegar a la verdad, que en nuestro caso la causa ultima de un error, es dudar, de ti, de los programadores que vinieron antes que ti, de los programadores que escribieron las bibliotecas que usas, los diseñadores del lenguaje que usa, de los fabricantes del hardware, incluso de las leyes de la física, aunque el 95% de la veces somos nosotros el problema.

Un programa de computadora no corre en aislado del mundo en una dimensión superior a la nuestra, solo son electrones que fluyen a travez de transistores, que corren sistemas operativos que corren tiempos de ejecución que corren nuestros programas, todo diseñado por personas y falibles como nosotros.

Incluso la física puede ser la causa ultima de nuestros apuros.

Por lo que es pertinente tener una metodología que seguir el corregir un error.

Cuando primero encontramos la primera pregunta debe ser ¿por que?, eso nos da una hipótesis, en si misma la hipótesis no sirve de nada.

Después debemos de probar esta hipótesis con un experimento observable.

La observación de este experimento nos permite sabe si el la hipótesis fue correcta o no, de no serlo se debe regresar al porque, hasta que tengamos combinación hipótesis/experimento correcta.

Este articule fue inspirado en el libro WHY PROGRAMS FAIL: A Guide to Systematic Debugging.

Este articulo fue inspirado por