¿Cómo rastrea los errores en sus proyectos personales? [cerrado]


45

Estoy tratando de decidir si necesito reevaluar mi proceso de seguimiento de defectos para mis proyectos locales. Durante los últimos años, realmente solo rastreé defectos usando TODOetiquetas en el código y manteniéndolos en una vista específica (uso Eclipse, que tiene un sistema de etiquetado decente).

Desafortunadamente, estoy empezando a preguntarme si este sistema es insostenible. Los defectos que encuentro suelen estar asociados con un fragmento de código en el que estoy trabajando; los errores que no se entienden de inmediato tienden a ser olvidados o ignorados. Escribí una solicitud para mi esposa que ha tenido un defecto grave durante casi 9 meses, y sigo olvidando solucionarlo.

¿Qué mecanismo utiliza para rastrear defectos en sus proyectos personales? ¿Tiene un sistema específico o un proceso para priorizarlos y administrarlos?


Echa un vistazo a todo.ly
Trabajo

1
Esto podría estar sobre la línea como una pregunta que las preguntas frecuentes consideran fuera de tema. "¿Qué tecnología es mejor?"
jzd

Trello es una gran herramienta para este tipo de cosas, y es gratis.
gahooa

Respuestas:


25

Fogbugz (licencia individual gratuita) si es un proyecto largo o una lista simple de tareas (usando las tareas de Google)


77
Agradable. No me di cuenta de que FogBugz tiene una versión gratuita (llamada Student and Startup Edition, para aquellos que la están buscando).
Eric King

A simple vista, parece muy interesante
bedwyr

Después de usar FogBugz, no veo cómo alguien prefiere algo diferente. Para no tener que realizar un seguimiento de varias cuentas de fogbugz, acabo de crear un solo fogbugz personal para mí: earlz.fogbugz.com
Earlz

17

Usualmente uso un sistema de control de revisiones basado en la web (Github, Bitbucket, Redmine, Google Code, ...) para almacenar mi código fuente y rastrear errores. Si cree que hay un error en un código específico, puede crear un problema con el número de revisión / lista de cambios / conjunto de cambios y especificar qué archivo y el rango de líneas sospecha.


8

Solía ​​usar una hoja de cálculo / archivo de texto por proyecto (los comentarios de tareas pendientes en el código no se escalan bien por las razones que enumeras; son locales para el código, y si hay un problema que no es así, tiende a pasar por alto el grietas)

Recientemente configuré un servidor Redmine en mi red doméstica. Es un poco pesado para un "equipo" de uno, pero estoy trabajando en algunos proyectos en mi propio tiempo, y tiendo a usar las opciones Issue Tracker + Repository con quizás la página wiki extraña en lugares más complejos.

Un amigo mío jura por Pivotal Tracker para los mismos propósitos, pero mi empleador actual usa Redmine internamente, así que pensé que esto me daría algo de práctica. No está mal.

Para proyectos de código abierto, solo uso el seguimiento de problemas de GitHub.


Los comentarios de tareas en el código funcionan mejor si son Doxygen / anotaciones similares, siempre y cuando construyas los documentos regularmente. Obtiene la lista recopilada de todos (y errores) en los documentos generados. Carece de las opciones de informes flexibles de un rastreador de errores dedicado, obviamente, y no va a buscar errores antiguos (supuestamente) resueltos en su repositorio cuando las anotaciones se eliminan de la versión actual, pero puede funcionar bastante bien para pequeños proyectos simples
Steve314

7

De hecho, he instalado el sistema Free MANTIS bugtracker en mi servidor web alojado (que uso para un blog y otras cosas), y puse todos mis defectos en eso.

En otras palabras, ejecuto mis cosas como si fueran profesionales y pagasen.

Creo que ayuda a mantener una mejor mentalidad (cierre de defectos, etc.), además de ser coherente (ish) con otras prácticas comúnmente utilizadas en la industria.

Utilice TODO las notas en el código, etc., también, pero solo para las notas más importantes como: "un día tengo que hacer esto más eficiente, el tipo de burbuja perjudica el rendimiento". O para notas más inmediatas sobre dónde te encontraste cuando te llevaron a cenar :)


¡Usé MANTIS y es increíble!
Trabajo


5

Usamos JIRA en mi lugar de trabajo y soy un gran admirador. Muchos productos y personas involucradas y lo maneja todo bien.


+1 Jira es, con mucho, el mejor sistema de seguimiento de problemas con el que me he encontrado. Fácil de comenzar a utilizar, gradualmente emplee características más avanzadas cuando sea necesario. Suficientemente amigable incluso para usuarios no técnicos para informar y hacer un seguimiento de los problemas.
Maglob

Otro elogio. Jira es una herramienta fuertemente "exotérmica", que da más de lo que pones, lo que desencadena un ciclo de retroalimentación positiva :)
Maglob

4

Vine a buscar una respuesta para esto hace un tiempo y desde entonces he desarrollado un sistema muy ordenado y simple, que cumple con estos objetivos clave para mí:

Objetivos en orden de importancia:

  1. Permitir ingresar una nueva tarea / error tan fácilmente como sea posible, para poder anotarlo tan pronto como lo detecte o soñarlo, y volver a la codificación antes de perder mi lugar.
  2. Facilite ver y administrar los problemas sin tener que buscar, hacer clic y profundizar.
  3. Facilite la vinculación con el control de versiones para que luego pueda averiguar qué cambios se realizaron para resolver un problema, o qué tarea o error provocó un cambio específico en el código.
  4. Facilite la configuración: instalación y configuración mínimas y precio mínimo.

(3 y 4 son menos importantes, y hubiera estado bien con un sistema que no los proporcionara, pero este sí).

Paso 1: Obtén un proyecto en Bitbucket

Uso bitbucket para el seguimiento de problemas y para el control de versiones de git (para un proyecto de iOS en XCode, por ejemplo). Miré FogBUGz (que he leído sobre años en JoelOnSoftware) y GitHub y otros, pero Bitbucket parece tener las mejores funciones gratuitas para equipos pequeños.

Paso 2: utilice el seguimiento de problemas de Bitbucket en el proyecto

A continuación, configuro el seguimiento de problemas en el mismo proyecto de bitbucket. Entonces mi proyecto ahora tiene un repositorio git y seguimiento de problemas.

Paso 3: ¡facilita el seguimiento de problemas!

Para esto estoy usando Bitbucket Cards, que es un agradable y simple front-end para los problemas de Bitbucket. Solo tiene que iniciar sesión en su cuenta de Bitbucket y configurar las columnas que desee. Tengo cuatro columnas: Backlog, Next, Bugs y Resolved. (Estoy pensando en fusionar Bugs con Backlog, pero no importa eso por ahora)

Ejemplo de tarjetas de Bitbucket (Esta imagen es del blog de Bitbucket Cards, no de mi proyecto, por lo tanto, las columnas son diferentes a las que uso)

Bitbucket Cards le permite configurar un filtro muy simple para cada lista donde elija los estados y los tipos de problemas que van en una columna de tarjeta. Entonces, los openproblemas de estado de este tipo bugvan en la columna Error .

Definición de columna (Este es de mi proyecto: así es como selecciono lo que va en la columna Error)

Lo que es realmente genial es que cuando arrastra y suelta una tarjeta de una columna a otra, cambiará automáticamente el estado del problema que representa la tarjeta para que coincida con eso en la definición de la columna de destino.

Otra cosa buena de las tarjetas Bitbucket es que no se agota el tiempo fácilmente. Esto es crucial ya que el objetivo de toda esta configuración es facilitarlo, por lo que este sistema funciona para mí en lugar de que yo trabaje para él. Abro un marcador en la página de mi tarjeta y permanece abierto en una pestaña de Chrome todo el día.

Esto se encarga de mi segundo objetivo.

Paso 4: átalo con el control de versiones.

Los problemas de Bitbucket se relacionan perfectamente con el control de versiones (en cuanto a la mayoría de los competidores), así que cuando termine de trabajar en un problema, lo confirmo con un mensaje como "Agregué la cosa al whatsit. Corrección # 245". Si confirmo esto, luego lo presiono, luego vuelvo a cargar mi página de Tarjetas de Bitbucket, veré que el problema se ha movido a la columna Resuelto. Bueno.

Ahí está mi tercer objetivo.

Paso 5: facilita la CREACIÓN de problemas.

Probablemente piense que toda esta configuración ya es demasiado complicada de configurar, y por qué querría agregar otra aplicación web al proceso. Bueno, recuerde mi objetivo principal arriba: quiero hacer que sea tan fácil agregar una tarea que no pierda mi hilo mental antes de llegar al área de texto para escribirlo, ni quiero perder mi lugar en el código para cuando termine.

Ahora, Bitbucket Cards me permite crear tareas con bastante facilidad, pero es un poco difícil de hacer clic y desplazarse para alcanzar completamente el objetivo # 1. Debe hacer clic en Crear un problema; entonces aparece un editor modal; después de ingresar el título del problema, debe desplazarse hacia abajo para especificar el tipo (error / tarea) y la prioridad; luego haga clic en crear.

En cambio, elegí usar una segunda aplicación de Bitbucket llamada taskrd .

Puede configurar taskrd, dándole su inicio de sesión de Bitbucket, y establecerlo en un marcador y una pestaña, y mantenerlo abierto todo el día, al igual que las tarjetas de Bitbucket. Taskrd tiene un flujo de trabajo mucho más simple para agregar una nueva tarea, simplemente escríbala, opcionalmente establezca el tipo y la prioridad, y presione el botón Agregar.

interfaz tasrkd (esta imagen es del blog de Taskrd)

Ahora es discutible que no valga la pena el esfuerzo de configurar Taskrd sobre el uso de las tarjetas Bitbucket o incluso el propio sistema de entrada de problemas de Bitbucket. Después de todo, con Taskrd tengo que hacer clic en una pestaña de mi navegador y hacer clic en Volver a cargar en mi página con las tarjetas Bitbucket para que se actualice y obtenga el nuevo problema que agregué en la aplicación Taskrd. Pero, de hecho, descubro que generalmente estoy en modo u otro: o estoy usando Bitbucket Cards para organizar lo que estoy haciendo a continuación, o para revisar la lista de errores, o estoy ocupado codificando e ingresando tareas / errores a medida que se me ocurren, todo en modo de disparo rápido. Para este segundo modo de trabajo, el Taskrd es excelente: simplemente lo mantengo abierto en un monitor separado, y rápidamente ingreso problemas mientras trabajo.

Eso cubre el objetivo # 1.

Mi último objetivo fue una configuración fácil / barata. Bueno, es barato: todo esto es gratis. Bitbucket tiene repositorios privados gratuitos para hasta cinco usuarios y las otras aplicaciones eran gratuitas. La configuración parece no trivial en base a lo anterior, pero realmente la parte más complicada fue configurar git para empujar al repositorio de bitbucket, que será el mismo en cualquier lugar. No tuve que instalar nada, y conectar ambas aplicaciones a mi repositorio de bitbucket fue bastante fácil. Configurar las columnas de las cartas como me gustaron me costó un poco jugar, pero no fue realmente difícil.

Al leer esto de nuevo, podría parecer un poco un shill para Bitbucket, pero realmente no es mi intención. Es solo que he estado usando este proceso durante semanas, después de años de probar diferentes configuraciones para rastrear lo que estoy haciendo, y realmente lo estoy cavando, así que pensé que me tomaría el tiempo para presentarlo a los demás.


3

Si está familiarizado con el uso de etiquetas TODO en Eclipse, un simple paso adelante sería usar Mylyn . En su forma más básica, es una simple lista de tareas pendientes. Pero también asocia el contexto con las tareas: haga clic en una tarea para activarla, haga algunas cosas y luego, la próxima vez que la active, Eclipse abrirá las clases relevantes y le mostrará los métodos relevantes. Aún más poderoso, si eventualmente se muda a algún otro sistema de seguimiento de errores, Mylyn puede extraer tareas de esos sistemas y presentarlas en su IDE.

La mayoría de las descargas de Eclipse en estos días tienen Mylyn incluido como estándar. Simplemente busque la vista Lista de tareas y comience a agregar tareas.


+1 He visto a Mylyn, pero me temo que no me ayudará mucho más que las tareas en Eclipse. Los errores que encuentro que no son directamente visibles en el código tienden a perderse en la confusión, por lo que es menos probable que agregue un error a Eclipse cuando no está abierto :)
bedwyr

Uso etiquetas TODO y luego uso find / grep -o para hacerme una lista de tareas.
sal

3

Yo uso la licencia inicial de $ 10 para Jira. Es barato y ya lo sé bien por trabajo.


2

Al igual que otros aquí, uso un archivo de texto o el rastreador de errores integrado en cualquier servicio de alojamiento de dvcs.

Mucho depende de qué tipo de "proyecto personal" sea. ¿Es algo que alguna vez verá la luz del día o es solo un experimento? ¿Este proyecto está en uso por el público?

Por ejemplo, uno de mis proyectos personales se hizo moderadamente popular y la creación de un sitio de Obtener Satisfacción funcionó muy bien. Realmente no es "seguimiento de errores", pero funcionó muy bien para solicitudes de errores / características.


2

Un poco sorprendido de que nadie haya dicho esto todavía, pero hay soluciones distribuidas de seguimiento de errores que actúan como parte de su control de fuente distribuida, es decir, la base de datos de errores vive con su código en su control de revisión. Las implementaciones bien conocidas incluyen "Bugs Everywhere", Fossil y Ditz.

Ver https://stackoverflow.com/questions/773818/distributed-projectmanagement-bug-tracking y https://stackoverflow.com/questions/1851221/distributed-bug-tracker-to-go-with-dvc?rq=1 para una discusión


1

Para mis proyectos personales utilizo Omnifocus.

Actualización: 25/10/2010 Si encuentro un error que no puedo o no quiero solucionar de inmediato, lo agrego rápidamente a la bandeja de entrada de Omnifocus. Luego, cuando esté haciendo una revisión, reuniré toda la información que creo que necesitaré para corregir el error y luego la agregaré al proyecto. Su posición en la lista de tareas indica que es de importancia relativa.

Trato los errores de la misma manera que los requisitos / características en la mayoría de los aspectos.


2
Gracias por la respuesta: ¿te importaría explicar cómo lo usas específicamente para el seguimiento de defectos?
bedwyr el

¡Gracias por la actualización! Es interesante ver una herramienta general de tareas pendientes utilizada para la gestión de defectos.
bedwyr

Nota: Solo para productos Apple
Mark C

Omnifocus es un producto de Apple, pero lo uso para mi desarrollo que no es de Apple.
Henry

1

Para proyectos personales, TODO-comentarios y un archivo de texto con TODOS y errores, etc. suelen ser suficientes para mí.


1

Uso mi propio TheKBase (ya que estoy en OSX, lo uso en .Net en una máquina virtual o Mono, dependiendo de mi estado de ánimo). Solo para un usuario concurrente, pero: permite múltiples jerarquías, por lo que va del administrador de tareas al administrador de información sin perder ningún paso intermedio. Además, es de código abierto en Github y gratuito (eso es obvio, supongo).

Para los curiosos, las instrucciones están aquí .


1

Yo uso ToDoList para mis proyectos personales; Es liviano, gratuito y tiene muchas características. No estoy seguro de qué tan bien se adapta a los proyectos de equipo, pero es genial para mí trabajar solo. No estoy seguro de cómo sobreviví usando la lista de tareas incorporadas de Visual Studio durante tanto tiempo, es una mierda.


En mis pequeños proyectos personales, la lista ReSharper TODO funciona para mí.
Nadie

1

Utilizamos una combinación de JIRA y Google Docs y hojas de cálculo. Investigué otras herramientas ya que nuestra instalación de JIRA es más antigua que la suciedad y no es tan fácil de usar como las interfaces más nuevas, más elegantes, de arrastrar y soltar.

Miré en Manymoon, Zoho Projects, Insightly, Redmine y Assembla. Vamos a experimentar con la herramienta gratuita Stand Up de Assembla . Es una interfaz de informes de 3 campos muy simple que hace 3 preguntas a cada miembro del equipo: ¿Qué hiciste la semana pasada? ¿Qué vas a hacer esta semana? ¿Qué barreras hay en tu camino?

Al final, creo que me quedaré con JIRA, Google Docs y la herramienta Assembla Stand Up, ya que la combinación me da todo lo que necesito.


1

Lo que más me gusta es Trac, porque es liviano, fácil de usar y fácil de configurar. Y la wiki integrada y el elegante navegador de repositorios son una gran ventaja.

En el trabajo utilizamos JIRA, que también es bastante agradable, pero no tan fácil de administrar. Y realmente extraño un wiki (la integración con Confluence no es tan buena) y un buen navegador de repositorio (solo tenemos ViewVC).


Trac es una pesadilla para configurar y configurar.

1

He estado usando Trac durante los últimos años. También he usado Bugzilla y JIRA. Mis proyectos de consultoría personales y privados involucran a Trac simplemente porque estoy acostumbrado y poner en marcha un proyecto en mi configuración de desarrollo personal requiere muy poco esfuerzo porque el esfuerzo ha terminado. Tengo el tráfico conectado con todo lo que necesito, incluidos SVN o Git y Hudson (o más bien Jenkins ahora).

En algunos proyectos de clientes, generalmente no hay otra opción que lo que usan, que desafortunadamente muchas veces no hay nada o algo en la casa. Me sorprende cuando tienen un rastreador de errores últimamente. Sin embargo, en lo personal, espero una mejor oferta de la comunidad OSS que Trac. Hace las cosas, pero en estos días parece un mosaico.


Trac es una pesadilla para configurar y administrar.

0

No veo el punto de usar el seguimiento formal de errores para pequeños proyectos individuales. Por lo general, mantengo una lista mental (muy corta) y corrijo los errores a medida que me doy cuenta de ellos. Por supuesto, esto no escala para proyectos grandes / de varias personas, pero el punto es que no es necesario.


3
Ese es en parte el problema: una lista mental tiende a ser insuficiente. Muchos de mis defectos se registran mentalmente y luego se pierden con el tiempo a medida que se implementan nuevas características y mejoras.
bedwyr

@bedwyr si te apegas a la regla de corregir todos los defectos conocidos antes de implementar nuevas funciones, esto no es un problema.
Kevin Laity

@Kevin, se pueden encontrar defectos en versiones anteriores mientras trabaja en la última iteración de un proyecto. ¿Pararía de inmediato el desarrollo de una función de alta prioridad para corregir un defecto de esquina inferior de baja prioridad en una versión anterior? Si no, ¿cómo los rastreas? En mi caso, una lista mental es insuficiente.
bedwyr

@bedwyr Buen punto, supongo que es una cuestión de preferencia. De hecho, solucionaría ese defecto de inmediato, ya que estamos hablando de un pequeño proyecto de un solo hombre. Si estuviera en un gran entorno corporativo, una historia diferente.
Kevin Laity

0

Si usa ReSharper, tiene un TODO tracker, que le muestra una lista de todos los TODOs, NOTEsy BUGs en su solución. También los resalta en su código en cualquier color que elija. Encuentro esto realmente útil en mis propios proyectos.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.