Pregunta

Pronto estaría liderando un nuevo proyecto.Y he estado reflexionando sobre cuáles son la infraestructura básica para un proyecto de software.Estas son las cosas que creo que todo proyecto debería tener:

-Convenciones de estilo de codificación

-Convenciones de nombres

-Estructura de directorio de proyecto estándar (por ejemplo, diseño de directorio estándar de Maven, etc.)

-Gestión de proyectos y seguimiento de problemas (por ejemplo, trac, redmine, etc.)

-Servidor de integración continua (por ejemplo, Hudson, control de crucero, etc.)

No estoy seguro si me perdí algo.¿Alguien quisiera agregar?

No hay solución correcta

Otros consejos

Como respuesta preliminar, consulte la prueba de Joel:http://www.joelonsoftware.com/articles/fog0000000043.html

Sólo un aperitivo:

  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?
  5. ¿Tú arreglas los errores antes de escribir un nuevo código?
  6. ¿Tiene un horario actualizado?
  7. ¿Tienes una especificación?
  8. ¿Los programadores tienen condiciones de trabajo tranquilas?
  9. Utilizas las mejores herramientas que el dinero puede comprar?
  10. ¿Tienes probadores?
  11. ¿Los nuevos candidatos escriben código durante su entrevista?
  12. ¿Realizan pruebas de usabilidad en los pasillos?
  • sistema de control de revisión (por ej.subversión, cvs, git)

Además del tuyo pondré:

  • Estrategia de prueba unitaria
  • Estrategia de prueba de integración
  • Proceso definido
  • Estrategia de lanzamiento (entrega) (como hitos, paquetes de trabajo, etc.)
  • Estrategia de ramificación de control de fuente
  • ¿Qué pasa con la documentación? Cómo (comentarios en el código, especificaciones de alto nivel), cuándo, cantidad, quién.
  • Cómo realizará la prueba: unidad/aceptación/prueba de usuario
  • control de versiones de código, algo de SVN/Git (¿o está incluido en trac?)
  • Roles y responsabilidades del equipo: deben realizarse en el contexto de su proyecto.

La gestión del conocimiento es crucial.Como ya planeas usar wiki (como Trac o Redmina) también puedes usarlo para KM.

Las pruebas funcionales son una parte obligatoria de cualquier proyecto.Las pruebas unitarias son excelentes y funcionan bien para proyectos ágiles, pero las pruebas funcionales aún son necesarias.Necesita al menos un plan de prueba básico.Si planea tener varios proyectos o subproyectos, sería bueno contar con un documento de estrategia de prueba o una página Wiki.Los casos de prueba, los casos de prueba de aceptación, etc. podrían ser impulsados ​​por sus historias de usuario o sus equivalentes, pero aún así deben existir de alguna forma.

Yo también incluiría un servidor para compartir archivos.Pensé que el control de versiones era tan básico que ni siquiera me molesté en ponerlo en la lista.Pero es un buen control de versiones.

Plan de Gestión de la Configuración.Debe tener un enfoque documentado para sus flujos de trabajo de desarrollo, cómo se fusionará entre ellos, etc.

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