Antes que otra cosa he de afirmar que Errar es de humanos, y desde que el hombre es racional, por ahí del 12.000 antes de cristo, el humano se ha equivocado tantas veces, que hemos aprendido hasta hace poco que estos errores nos pueden ayudar a evolucionar. De esto se trata este tema, de evolucionar.
Cuando estas en esto del desarrollo comienzas a darte cuenta de cuales son las cosas por las que te gusta y las que no te gusta pasar. En mi caso, siendo una persona un poquito ordenada (poquito en realidad), me gusta llegar temprano a mi trabajo, salirme a mi hora y que me dejen tomarme mi café a media mañana. Dentro de las que no me gustan están que me asignen mas trabajo del que puedo hacer (un mal de la clase proletariada), que me digan que ‘necesito dar mas’ (refiriendose a que quieren que me quede mas tiempo de a gratis sin pagarme horas extras) o que me digan ‘eso no esta funcionando como debe y ya se lo habia comentado a sutanito’, bien, a este ultimo ‘esto no esta funcionando’ se le llama Bug o error informatico, y al hecho que se lo hayan dicho a sutanito (quien por cierto no tiene nada que ver con el desarrollo del sistema) se le llama falla de comunicación (mas adelante explico como resolver esto).
Bugs
Es un rollo esto de los errores informáticos (o bugs) y es un tema tan largo, pero tan interesante que pudiera hacer un ensayo sobre los errores informáticos, la historia de los errores, los más famosos, los más costosos, los mas chistosos, etc. Lo voy a resumir un tanto:
“Un bug o error informático es el resultado de un fallo o deficiencia durante el proceso de creación de programas de ordenador o computadora (software). Dicho fallo puede presentarse en cualquiera de las etapas del ciclo de vida del software aunque los más evidentes se dan en la etapa de desarrollo y programación”
Entonces bien, El parrafo anterior (tomado de güikipedia) nos dice que un error no es más que una falla o falta de orden a la hora de estar desarrollando un programa. ¿Por qué cometemos estos errores? Puede ser una larga lista, por lo general se incluyen:
- Falta de comunicación.
- Descuido de parte del desarrollador.
- Falta de claridad en la funcionalidad de algo.
- Falta de información de objetivos.
- Carga de trabajo
No podemos hacer nada para evitarlos, vamos a cometer tantos errores, como humanamente posible podamos. El como evitarlos, es harina de otro costal, y como diria la abuela chole: “esa, es otra historia”. Lo que si podemos hacer, es aprender de ellos y mantener una estabilidad de nuestros sistemas.
Bugtracking.
Dicese de hacer un sistema en una base de datos, en donde se puedan registrar, revisar, reportear, o analizar bugs (o errores informaticos) lo que permita hacer un mantenimiento ordenado a un sistema. La güikipedia lo define asi:
“Un sistema de seguimiento de errores es una aplicación informática diseñada para asistir a los programadores y otras personas involucradas en el desarrollo y uso de sistemas informáticos en el seguimiento de los defectos de software”
Estoy actualmente en un equipo de desarrollo el cual estoy conformando (por cierto, si sabes programar en php y eres jalisquillo, contactame) y una de las herramientas que creo que nos pudiera facilitar la vida es un sistema bug tracking, para darle un poco de mas orden a este frankenstein y por lo menos tener un conocimiento claro de que es lo que se esta haciendo y como se está haciendo.
Un buen sistema de tracking de bugs deberia arrojar, minimo la siguiente información:
- Fecha reportada
- Severidad
- Comportamiento incorrecto
- Detalles de como reproducirlo
- Persona que lo dio de alta
- Quien le da seguimiento.
Con estos dato pudieramos tener un minimo de información con lo que pudieramos resolver un error, ya que nos ayudaria al menos a identificarlo (nota: muchas veces el problema es identificar el error, pero no quiere decir que el error sea facil de corregir)
¿Por qué es importante?
Una vez en un banner de una pagina de Internet lei: “Knowdelege is power, want more power?”. No recuerdo que vendian, pero lo que me quedo claro y por siempre grabado es que el conocimiento es poder.
Si tu tienes la información de por que estan sucediendo los errores, puedes tomar decisiones de manera mas acertada.
Por ejemplo, hablemos de un desarrollador a y uno b, el desarrollador a escribe 500 lineas de codigo, en las cuales hace 10 funciones. De esas 500 lines de codigo, tiene alrededor de 10 bugs reportados. 500 / 10 = 50. De una manera muy burda pudieramos decir que programador a tiene una efectividad de 50. Programador B programa menos, digamos 100 lineas pero de esas 100, solo tiene 1 error, digamos que tiene efectividad de 100. Con lo cual pudieramos pedirle a programador A que ponga mas atención. Obviamente este ejemplo es muy burdo y no toma en cuenta otros factores como complejidad de la programación, complejidad de funciones, etc. Pero este dato ya nos pudiera hacer pensar en revisar mas el codigo de A, etc.
En conclusión, mientras el hombre siga programando, va a seguir habiendo errores de programación, lo que uno tiene que buscar es en identificar el por que, lo que nos ayudaria bastante a mejorar.
Espero que este articulo les sea de interes, y de algo les sirva.
Les paso unas urls de sistemas que permiten hacer esto. Obvio después veran el xc bug tracking system.
Saludos!
No hay comentarios:
Publicar un comentario