Herramientas para ayudar a un pequeño taller a obtener una puntuación más alta en el “Prueba Joel”

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

Pregunta

Preguntas #1 a #4 sobre el prueba joel En mi opinión, todo tiene que ver con las herramientas de desarrollo que se utilizan y el sistema de soporte implementado para los desarrolladores:

  1. ¿Utiliza control de fuente?
  2. ¿Se puede hacer una acumulación en un solo paso?
  3. Haces contrucciones todos los dias.
  4. ¿Tiene una base de datos de errores?

Simplemente tengo curiosidad por saber qué herramientas gratuitas/baratas (pero buenas) existen para que las pequeñas tiendas de desarrollo que no tienen grandes cuentas bancarias puedan utilizar para lograr una respuesta positiva a estas preguntas.

Para el control de código fuente, sé que Subversion es una gran solución y, si trabaja con un solo hombre, incluso podría usar SourceGear. Bóveda.

Utilizo NAnt para mis proyectos más grandes, pero todavía tengo que configurar un script para crear mis instaladores y ejecutar las herramientas de ofuscación, todo en un solo paso.¿Cualquier otra sugerencia?

Si puedes responder sí a la construcción en un solo paso, creo que crear compilaciones diarias sería fácil, pero ¿qué herramientas recomendarías para automatizar esas compilaciones diarias?

Para un equipo de uno o dos hombres, ya se ha discutido en SO que se puede usar FogBugz On Demand, pero ¿qué otras soluciones de seguimiento de errores existen para equipos pequeños?

¿Fue útil?

Solución

  1. fuente de control: Subversión o Mercurial o git
  2. construir automatización: hormiga, MSBuild, Rastrillo, experto
  3. integración continua: CruceroControl.NET o continuo o Jenkins
  4. seguimiento de problemas: Trac, Bugzilla, Geminis (si debe ser .NET y gratuito)

No olvide las pruebas automatizadas con Unidad N, Adaptar, y WatiN.

Otros consejos

Mi pila preferida:

1) Subversión.Estoy intrigado por el control de fuente distribuida, pero todavía no he tenido la oportunidad de probar ninguno.Para una solución centralizada, svn es sólido como una roca.

2) hormiga.Es un placer usar Maven cuando está funcionando, pero como viejo hacker de hormigas, encuentro que Maven es difícil de seguir una vez que las cosas van mal.

3) Hudson.No se ha mencionado hasta ahora, pero definitivamente vale la pena investigarlo.Herramienta increíblemente utilizable y mantenida activamente.Anteriormente pagamos por Anthill Pro, que parecía poco fiable y era doloroso arreglarlo cada vez que se estropeaba.

4) Pagamos por jira.No es barato, pero es mucho más útil que las opciones de código abierto que analizamos y también es muy flexible.

Mi pila de ingeniería:

  1. Git (me encanta GitHub, pero Git no requiere una solución alojada)
  2. Rastrillo
  3. ControldeCrucero.rb
  4. nieblabugz

Sin duda, estas elecciones están influenciadas por mi pila de desarrollo, que suele incluir Ruby, Rails, SQLite, Firefox y OSX.

Es posible que desee consultar una pregunta mía existente para encontrar una alternativa al Team System.También hay muchas recomendaciones allí.

  1. git
  2. Hacer
  3. cron
  4. Trac

Soy un hombre de pocas sílabas ;-)

Asegúrese de utilizar algún tipo de control de versiones donde los desarrolladores puedan crear fácilmente ramas privadas, quieran o no, luego tomar su rama privada y comprimirla en una única confirmación en la rama principal.De esa manera, los desarrolladores individuales (a diferencia de la organización) pueden obtener los beneficios del control de versiones sin contaminar el código de nadie (y ralentizar su trabajo) con confirmaciones rotas.

Esta característica es lo que me gusta de git.Creo que sólo está realmente presente en los sistemas de control de versiones distribuidos;Sin embargo, usar un DVCS no significa que realmente tengas que hacer desarrollo distribuido.

En cuanto a la construcción en un solo paso, make es la herramienta de construcción predeterminada y funciona bastante bien para la mayoría de las tareas.Yo optaría por eso a menos que tengas una buena razón para no hacerlo.

Si desea compilaciones diarias, coloque el comando de compilación en su cron.daily.Configure un enlace de procmail para manejar el correo de cron si es necesario.

Para el seguimiento de errores, utilice $(apt-cache search bug tracking).Básicamente, siempre que diga "rastreador de errores" en la caja y sepas que otras personas lo están usando, probablemente funcionará bien.Entre los habituales se encuentran bugzilla, mantis y trac.

No tengo ninguna herramienta para sugerir, pero sí tengo una sugerencia sobre las compilaciones diarias.Siempre respondo que sí a esa pregunta, aunque no tengamos compilaciones diarias.En cambio, hacemos una compilación cada vez que alguien se compromete.De este modo detectamos cualquier problema casi de inmediato.Si alguno de nuestros proyectos alguna vez tiene suficiente LOC como para que la construcción requiera más que un tiempo trivial, hacerlo también se degradará elegantemente en la dirección de una construcción diaria.

Un buen rastreador de problemas que era relativamente económico fue axoSoft OnTime.Lo usé durante años antes de adquirir MS TFS.

Nant y Control de crucero son elementos básicos de mi entorno.

No creo que ya necesites ofuscarte en .Net (ver otra respuesta)

No consideraría Vault, SVN es realmente el líder del mercado en este momento (y es gratuito).Git parece bastante prometedor, pero actualmente es solo una línea de comandos con una curva de aprendizaje pronunciada.

MSBuild supera a NAnt para .Net 2 o 3.5

CC.Net es excelente.

*4) Redmina

recomiendo bitnami para probar diferentes pilas.Tiene Trac, Redmine y Subversion, así como varios otros no relacionados.

Consulte estos artículos sobre integración continua utilizando MSBuild, CruiseControl.NET, FxCop, NUnit, NCover y Subversion...

Desde las trincheras del desarrollo de software

Actualmente estoy usando SVN, pero en general he tenido muchos problemas con las salidas a una unidad de red en un servidor de desarrollo.Suele haber problemas de bloqueo que requieren mucha investigación para solucionarlos.Puede ser que usar el método de acceso WebDav solucione algunos de estos problemas, pero aún no lo he experimentado.

Cualquiera de Bugzilla, Trac o Fogbugz te ayudará con el seguimiento de errores y cada uno ofrece una función de exportación, para que siempre puedas cambiar de opinión más adelante.Además, si puede lograr que su equipo se comprometa por completo, el software de gestión del tiempo también puede ser útil para las autopsias, etc. (si todos están motivados para participar plenamente).

Para la automatización de la construcción y la integración continua, eche un vistazo a equipociudad de Cerebros a reacción.

Tiene un montón de características y es realmente muy sencillo de configurar y utilizar.

Si utiliza Visual Studio 2005/2008, creará su solución directamente sin necesidad de scripts adicionales (si lo único que desea es una compilación).

También ejecutará sus pruebas unitarias y recopilará estadísticas sobre el éxito de la compilación, los tiempos de ejecución de las pruebas unitarias, etc., etc.

Mejor de todo:La edición Pro es gratuita para equipos con hasta 20 usuarios y 3 agentes de compilación.

  1. fuente de control:cv
  2. construir ñu hacer
  3. trabajo cron que llama scripts bash
  4. bugzilla
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top