Razones para no crear su propio sistema de seguimiento de errores [cerrado]

StackOverflow https://stackoverflow.com/questions/62153

  •  09-06-2019
  •  | 
  •  

Pregunta

Varias veces me he enfrentado a los planes de un equipo que quiere crear su propio sistema de seguimiento de errores, no como un producto, sino como una herramienta interna.

Los argumentos que he escuchado a favor suelen ser del tipo siguiente:

  • Querer "comer nuestra propia comida para perros" en términos de algún marco web construido internamente
  • Necesitar algún informe altamente especializado o la capacidad de modificar alguna característica de alguna manera supuestamente única.
  • Creer que no es difícil construir un sistema de seguimiento de errores.

¿Qué argumentos podría utilizar para respaldar la compra de un sistema de seguimiento de errores existente?En particular, ¿qué características parecen fáciles pero resultan difíciles de implementar, o son difíciles e importantes pero a menudo se pasan por alto?

¿Fue útil?

Solución

Primero, mira estos Ohloh métrica:

    Trac:  44 KLoC, 10 Person Years,   $577,003
Bugzilla:  54 KLoC, 13 Person Years,   $714,437
 Redmine: 171 KLoC, 44 Person Years, $2,400,723
  Mantis: 182 KLoC, 47 Person Years, $2,562,978

¿Qué aprendemos de estos números?¡Aprendemos que crear Yet Another Bug Tracker es una excelente manera de desperdiciar recursos!

Estas son mis razones para crear su propio sistema interno de seguimiento de errores:

  1. Es necesario neutralizar a todos los bozocodificadores durante una década o dos.
  2. Necesita gastar algo de dinero para evitar una reducción presupuestaria el próximo año.

De lo contrario no lo hagas.

Otros consejos

Me gustaría darle la vuelta a la pregunta.¿POR QUÉ querrías construir el tuyo propio?
Si necesita algunos campos adicionales, opte por un paquete existente que pueda modificarse.
¿Reporte especial?Acceda a la base de datos y hágalo.

¿Creer que no es difícil?Inténtalo entonces.Especifíquelo y vea cómo crece la lista de funciones y horas.Luego, una vez completada la lista, intente encontrar un paquete existente que pueda modificarse antes de implementar el suyo propio.

En resumen, no reinventes la rueda cuando otra simplemente necesita algunos ajustes para encajar.

A los programadores les gusta construir su propio sistema de tickets porque, después de haber visto y utilizado docenas de ellos, saben todo al respecto.De esa manera podrán permanecer en la zona de confort.

Es como visitar un restaurante nuevo:Puede que sea gratificante, pero conlleva un riesgo.Es mejor volver a pedir pizza.

También hay un gran hecho sobre la toma de decisiones enterrado allí:Siempre hay dos razones para hacer algo:uno bueno y el correcto.Tomamos una decisión ("Construimos la nuestra") y luego la justificamos ("Necesitamos control total").La mayoría de las personas ni siquiera son conscientes de su verdadera motivación.

Para cambiar de opinión, hay que atacar al real razón, no la justificación.

¡Síndrome no inventado aquí!

¿Construir su propio rastreador de errores?¿Por qué no crear su propio cliente de correo, herramienta de gestión de proyectos, etc.?

Como Omer van Kloeten dice en otro lugar, paga ahora o paga después.

Hay una tercera opción, ni comprar ni construir.Hay montones de buenos y gratuitos por ahí.Por ejemplo:

Utilizar su propio rastreador de errores para cualquier uso que no sea el aprendizaje no es un buen uso del tiempo.

Otros enlaces:

Sólo diría que es una cuestión de dinero: comprar un producto terminado que sabes que es bueno para ti (y a veces ni siquiera comprarlo si es gratis) es mejor que tener que desarrollar uno por tu cuenta.Es un simple juego de Pagar ahora vs. paga después.

Primero, contra los argumentos a favor de construir el tuyo propio:

Querer "comer nuestra propia comida para perros" en términos de algún marco web construido internamente

Por supuesto, esto plantea la pregunta de por qué construir su propio marco web.Así como existen muchos rastreadores de errores gratuitos que valen la pena, también existen muchos marcos que valen la pena.Me pregunto si sus desarrolladores tienen claras sus prioridades.¿Quién hace el trabajo que hace que su empresa gane dinero real?

Bien, si deben crear un marco, déjelo evolucionar orgánicamente a partir del proceso de creación del software real que utiliza su empresa para ganar dinero.

Necesitar algún informe altamente especializado o la capacidad de modificar alguna característica de alguna manera supuestamente única.

Como han dicho otros, tome uno de los muchos excelentes rastreadores de código abierto y modifíquelo.

Creer que no es difícil construir un sistema de seguimiento de errores.

Bueno, escribí la primera versión de mi BugTracker.NET en solo un par de semanas, comenzando sin conocimientos previos de C#.Pero ahora, 6 años y un par de miles de horas después, todavía hay una gran lista de solicitudes de funciones deshechas, por lo que todo depende de lo que desee que haga un sistema de seguimiento de errores.Cuánta integración de correo electrónico, integración de control de fuente, permisos, flujo de trabajo, seguimiento del tiempo, estimación de programación, etc.Un rastreador de errores puede ser una aplicación muy importante.

¿Qué argumentos podría utilizar para respaldar la compra de un sistema de seguimiento de errores existente?

No es necesario comprarlos. Demasiados buenos de código abierto: Trac, Mantis_Bug_Tracker, mi propio BugTracker.NET, por nombrar algunos.

En particular, ¿qué características parecen fáciles pero resultan difíciles de implementar, o son difíciles e importantes pero a menudo se pasan por alto?

Si lo están creando solo para ustedes, entonces pueden tomar muchos atajos, porque pueden cablear las cosas.Si lo está creando para muchos usuarios diferentes, en muchos escenarios diferentes, entonces lo difícil es el soporte para la configurabilidad.Flujo de trabajo configurable, campos personalizados y permisos.

Creo que dos características que un bien el rastreador de errores debe tener, que ambos nieblabugz y BugTracker.NET son 1) integración de correo electrónico entrante y saliente, de modo que toda la conversación sobre un error viva con el error y no en un hilo de correo electrónico separado, y 2) una utilidad para convertir una captura de pantalla en una publicación de error con tan sólo un par de clics.

El argumento más básico para mí sería la pérdida de tiempo.Dudo que pueda completarse en menos de uno o dos meses.¿Por qué perder el tiempo cuando hay tantos buenos sistemas de seguimiento de errores disponibles?Dame un ejemplo de una característica que tengas que modificar y que no esté disponible.

Creo que un buen sistema de seguimiento de errores debe reflejar su proceso de desarrollo.Un proceso de desarrollo muy personalizado es intrínsecamente malo para una empresa/equipo.La mayoría de las prácticas ágiles favorecen Melé o este tipo de cosas, y la mayoría de los sistemas de seguimiento de errores están en línea con dichas sugerencias y métodos.No seas demasiado burocrático con esto.

Un sistema de seguimiento de errores puede ser un gran proyecto para iniciar a los desarrolladores junior.Es un sistema bastante simple que puedes usar para entrenarlos en tus convenciones de codificación, etc.Conseguir que los desarrolladores junior construyan un sistema de este tipo es relativamente barato y pueden cometer errores en algo que el cliente no verá.

Si es basura, puedes tirarlo a la basura, pero si lo utilizas, puedes darles la sensación de que el trabajo ya es importante para la empresa.No se puede poner un costo a que un desarrollador junior pueda experimentar el ciclo de vida completo y todas las oportunidades de transferencia de conocimientos que traerá un proyecto de este tipo.

Esto lo hemos hecho aquí.Escribimos el primero hace más de 10 años.Luego lo actualizamos para utilizar servicios web, más bien como una forma de aprender la tecnología.La razón principal por la que hicimos esto originalmente fue que queríamos un sistema de seguimiento de errores que también produjera informes del historial de versiones y algunas otras características que no podíamos encontrar en productos comerciales.

Ahora estamos analizando nuevamente los sistemas de seguimiento de errores y estamos considerando seriamente migrar a Mantis y usar Mantis Connect para agregar nuestras propias funciones personalizadas adicionales.La cantidad de esfuerzo que supone poner en marcha nuestro propio sistema es simplemente demasiado grande.

Supongo que también deberíamos mirar a FogBugz :-)

Lo más importante es ¿dónde enviarás los errores para tu rastreador de errores antes de que esté terminado?

Pero en serio.Las herramientas ya existen, no es necesario reinventar la rueda.Modificar las herramientas de seguimiento para agregar ciertas características específicas es una cosa (he modificado Trac antes)...reescribir uno es simplemente una tontería.

Lo más importante que puede señalar es que si lo único que quieren hacer es agregar un par de informes especializados, no requiere una solución desde cero.Y además, el ÚLTIMO lugar donde importa "su solución casera" es para las herramientas internas.¿A quién le importa lo que estás usando internamente si hace el trabajo como lo necesitas?

Como programador que trabaja en una tarea ya crítica (o al menos importante), no debes desviarte intentando desarrollar algo que ya esté disponible en el mercado (de código abierto o comercial).

Ahora intentará crear un sistema de seguimiento de errores para realizar un seguimiento del sistema de seguimiento de errores que utiliza para realizar un seguimiento de los errores en su desarrollo principal.

Primero:1.Elija la plataforma que se ejecutaría su sistema de errores (Java, PHP, Windows, Linux, etc.) 2.Intente encontrar herramientas de código abierto disponibles (por código abierto, me refiero a herramientas comerciales y gratuitas) en la plataforma que eligió 3.Dedique un tiempo mínimo a intentar personalizarlo según sus necesidades.Si es posible, no pierdas tiempo personalizando en absoluto.

Para un equipo de desarrollo empresarial, comenzamos a usar jira.Queríamos algunos informes adicionales, inicio de sesión SSO, etc.JIRA era capaz de hacerlo y podíamos ampliarlo utilizando el complemento ya disponible.Dado que el código recibió parte del soporte pago, solo dedicamos un tiempo mínimo a escribir el complemento personalizado para iniciar sesión.

Aprovechando lo que otras personas han dicho, en lugar de simplemente descargar uno gratuito o de código abierto.¿Qué tal si lo descargas y luego lo modificas por completo según tus propias necesidades?Sé que me pidieron que hiciera eso en el pasado.Tomé una instalación de Bugzilla y luego la modifiqué para admitir pruebas de regresión e informes de pruebas (esto fue hace muchos años).

No reinventes la rueda a menos que estés convencido de que puedes construir una rueda más redonda.

Yo diría que uno de los mayores obstáculos sería la angustia por el modelo de datos/flujo de trabajo.Predigo que esto tomará un largo tiempo e implican muchas discusiones sobre lo que debería suceder con un error en determinadas circunstancias, qué constituye realmente un error, etc.En lugar de pasar meses discutiendo de un lado a otro, si simplemente implementaran un sistema prediseñado, la mayoría de las personas aprenderían cómo usarlo y aprovecharlo al máximo, sin importar qué decisiones ya estén fijadas.Elija algo de código abierto y siempre podrá modificarlo más tarde si es necesario; eso será mucho más rápido que crear uno propio desde cero.

En este punto, sin una nueva dirección importante en el seguimiento de errores y la emisión de multas, simplemente sería reinventar la rueda.Que parece ser lo que todo el mundo piensa, en general.

Sus discusiones comenzarán con lo que constituye un error y evolucionarán hacia qué flujo de trabajo aplicar y terminarán con una discusión masiva sobre cómo gestionar proyectos de ingeniería de software.¿De verdad quieres eso?:-) No, no lo pensé: ¡ve y compra uno!

La mayoría de los desarrolladores piensan que tienen poderes únicos que nadie más tiene y, por lo tanto, pueden crear un sistema que sea único de alguna manera.

El 99% de ellos están equivocados.

¿Cuáles son las posibilidades de que su empresa tenga empleados en el 1%?

He estado en ambos lados de este debate, así que permítanme ser dos caras aquí.

Cuando era más joven, presioné para crear nuestro propio sistema de seguimiento de errores.Simplemente destaqué todas las cosas que las cosas disponibles en el mercado no podían hacer y le pedí a la gerencia que lo hiciera.¿A quién eligieron para liderar el equipo?¡A mí!Iba a ser mi primera oportunidad de liderar un equipo y tener voz en todo, desde el diseño hasta las herramientas y el personal.Yo estaba muy emocionado.Así que mi recomendación sería comprobar las motivaciones de las personas que impulsan este proyecto.

Ahora que soy mayor y me enfrento a la misma pregunta nuevamente, decidí usar FogBugz.Hace el 99% de lo que necesitamos y los costos son básicamente 0.Además, Joel te enviará correos electrónicos personales que te harán sentir especial.Y al final, ¿no es ese el problema? ¿Tus desarrolladores creen que esto los hará especiales?

Cada desarrollador de software quiere crear su propio sistema de seguimiento de errores.es porque podemos obviamente mejorar lo que ya existe, ya que somos expertos en el dominio.

Es casi seguro que no vale la pena el costo (en términos de horas de desarrollador).Solo compra jira.

Si necesita informes adicionales para su sistema de seguimiento de errores, puede agregarlos, incluso si tiene que hacerlo accediendo directamente a la base de datos subyacente.

La pregunta es ¿para qué le paga su empresa?¿Es para escribir software que sólo usted utilizará?Obviamente no.Entonces, la única forma de justificar el tiempo y el gasto para crear un sistema de seguimiento de errores es si cuesta menos que los costos asociados con el uso incluso de un sistema de seguimiento de errores gratuito.

Es posible que haya casos en los que esto tenga sentido.¿Necesita integrarse con un sistema existente?(Seguimiento del tiempo, estimación, requisitos, control de calidad, pruebas automatizadas)?¿Tiene algunos requisitos únicos en su organización relacionados con el cumplimiento SOX que requieren elementos de datos específicos que serían difíciles de capturar?

¿Se encuentra en un entorno extremadamente burocrático que genera importantes "tiempos de inactividad" entre proyectos?

Si la respuesta es sí a este tipo de preguntas, entonces, por supuesto, el argumento "comprar" versus construir diría construir.

Si "necesita algún informe altamente especializado o la capacidad de modificar alguna característica de alguna manera supuestamente única", la mejor y más económica forma de hacerlo es hablar con los desarrolladores de sistemas de seguimiento de errores existentes.Págueles para que incluyan esa función en su aplicación y la pongan a disposición del mundo.En lugar de reinventar la rueda, simplemente pague a los fabricantes de ruedas para que coloquen radios con forma de resorte.

De lo contrario, si intentas mostrar un marco, todo está bien.Solo asegúrese de incluir las exenciones de responsabilidad pertinentes.

Para las personas que creen que el sistema de seguimiento de errores no es difícil de construir, sigan estrictamente el SDLC en cascada.Obtenga todos los requisitos desde el principio.Seguramente eso les ayudará a comprender la complejidad.Generalmente son las mismas personas que dicen que un motor de búsqueda no es tan difícil de construir.Solo un cuadro de texto, un botón de "buscar" y un botón de "me siento con suerte", y el botón "me siento con suerte" se puede hacer en la fase 2.

Utilice algún software de código abierto tal como está.Seguramente hay errores y necesitará lo que aún no está allí o está pendiente de corrección de errores.Sucede todo el tiempo.:)

Si amplía/personaliza una versión de código abierto, debe mantenerla.Ahora la aplicación que se supone te ayudará con las pruebas. aplicaciones para ganar dinero se convertirá en una carga que soportar.

Creo que la razón por la que la gente escribe sus propios sistemas de seguimiento de errores (en mi experiencia) es:

  1. No quieren pagar por un sistema que consideran relativamente fácil de construir.
  2. ego programador
  3. Insatisfacción general con la experiencia y la solución proporcionada por los sistemas existentes.
  4. Lo venden como producto :)

Para mí, la razón principal por la que fallaron la mayoría de los rastreadores de errores fue que no brindaron una experiencia de usuario óptima y puede ser muy doloroso trabajar con un sistema que se usa MUCHO, cuando no está optimizado para su usabilidad.

Creo que la otra razón es la misma por la que casi todos nosotros (programadores) hemos creado su propio CMS o marco CMS personalizado en algún momento (culpables de los cargos).¡Solo porque puedes!

Estoy de acuerdo con todas las razones para NO hacerlo.Intentamos durante algún tiempo utilizar lo que había disponible y terminamos escribiendo el nuestro de todos modos.¿Por qué?Principalmente porque la mayoría de ellos son demasiado engorrosos para involucrar a nadie que no sea el personal técnico.Incluso probamos el campo base (que, por supuesto, no está diseñado para esto y fracasó en ese sentido).

También se nos ocurrió una funcionalidad única que funcionó muy bien con nuestros clientes:un botón de "informar de un error" que hemos incluido en el código con una línea de javascript.Permite a nuestros clientes abrir una pequeña ventana, anotar información rápidamente y enviarla a la base de datos.

Pero ciertamente tomó muchas horas codificar;se convirtió en un GRAN proyecto favorito;mucho tiempo de fin de semana.

Si quieres comprobarlo: http://www.archerfishonline.com

Me encantaría recibir comentarios.

Hemos hecho esto...unas pocas veces.La única razón por la que construimos el nuestro es porque fue hace cinco años y no había muchas alternativas buenas.pero ahora hay toneladas de alternativas.Lo principal que aprendimos al crear nuestra propia herramienta es que pasarás mucho tiempo trabajando en ella.Y ese es el momento en el que podrías facturar por tu tiempo.Como pequeña empresa, tiene mucho más sentido pagar la tarifa mensual, que puede recuperar fácilmente con una o dos horas facturables, que dedicar todo ese tiempo a desarrollar la suya propia.Claro, tendrás que hacer algunas concesiones, pero a la larga estarás mucho mejor.

Por nuestra parte, decidimos poner nuestra aplicación a disposición de otros desarrolladores.Compruébalo en http://www.misintervalos.com

Porque Trac existe.

Y porque tendrá que capacitar a personal nuevo en su software personalizado cuando probablemente tendrán experiencia en otros sistemas que usted puede aprovechar en lugar de desechar.

Porque no es tiempo facturable ni siquiera muy útil a menos que vayas a venderlo.

Hay sistemas de seguimiento de errores perfectamente buenos disponibles, por ejemplo, nieblabugz.

Trabajé en una startup durante varios años donde comenzamos con mosquitos, una herramienta de código abierto, y esencialmente construimos nuestro propio elaborado sistema de seguimiento de errores sobre ella.El argumento era que evitaríamos gastar mucho dinero en un sistema comercial y obtendríamos un sistema de seguimiento de errores que se adaptara exactamente a nuestras necesidades.

Por supuesto, resultó ser mucho más difícil de lo esperado y fue una gran distracción para los desarrolladores, quienes también tuvieron que mantener el sistema de seguimiento de errores además de nuestro código.Este fue uno de los factores que contribuyeron a la desaparición de nuestra empresa.

No escriba su propio software sólo para poder "comer su propia comida para perros".Simplemente está creando más trabajo, cuando probablemente podría comprar software que haga lo mismo (y mejor) por menos tiempo y dinero.

Dígales, Eso es genial, a la empresa le vendría bien ahorrar algo de dinero por un tiempo y estará encantada de contribuir con las herramientas de desarrollo mientras usted trabaja en este año sabático no remunerado.Cualquiera que desee tomar sus vacaciones anuales para trabajar en el proyecto es libre de hacerlo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top