¿Cómo gestionas el ciclo de vida de tu proyecto?

¿Cómo gestionas el ciclo de vida de tu proyecto?

Por ejemplo: ¿comienzas con una plantilla? ¿Utiliza versiones como SVN como la fuente autorizada? ¿Archiva los proyectos, si es así cuándo y cómo? Cuando se reanima un proyecto (se reanuda el trabajo), ¿cómo se maneja? ¿Utiliza scripts automatizados para hacer cosas como crear sitios IIS, bases de datos, archivar, iniciar, etc.?

De particular interés es la gestión de muchos proyectos en diferentes puntos de desarrollo.

Desarrollo: no comenzamos con una plantilla, porque el mundo cambia lo suficientemente rápido como para hacer que el mantenimiento de la plantilla sea un trabajo de time completo. Animamos a todos a usar el mismo IDE (Eclipse), para que puedan ayudarse unos a otros con sus entornos.

Gestión de proyectos: estamos utilizando GForge para gestionar nuestros proyectos. Sourceforge es un poco mejor, pero GForge es mucho más barato y tiene un model de tarifa de licencia diferente. GForge incorpora CVS, SVN, almacenamiento de documentos, seguimiento de problemas e integra todo muy bien. Esto hace que sea fácil ver dónde está el proyecto. Problemas abiertos y problemas cerrados con cambios de código conectados, todo está integrado.

Versiones: aunque probamos SVN, volvimos a cambiar a CVS porque se ajusta mejor a nuestras necesidades y funciona bien.

Copias de security: nuestro server GForge, que alberga todos nuestros proyectos y código fuente, se ejecuta en un server VMWare EX. Las copys de security se realizan a diario en el nivel de VM y hacemos instantáneas de VM si creemos que necesitamos puntos de restauración más frecuentes por algún motivo.

Proyectos de reactivación: esto es muy común en nuestro negocio. Cada proyecto tiene todas sus bibliotecas y requisitos de compilation en CVS. El proyecto siempre tiene un manual de desarrollo actualizado que describe todos los pasos para ejecutar un entorno de desarrollo, y tiene un capítulo con todas las cosas que no son pnetworkingeterminadas, para prestarle atención. Intentamos crear software en un entorno pnetworkingeterminado como sea posible para que los desarrolladores no tengan que perder días ajustando sus configuraciones.

Casi todos los proyectos se crean utilizando Maven, lo que también hace la vida más fácil para nuestros desarrolladores. Usualmente revivir un proyecto solo requiere unos pocos pasos:

  • Descargar eclipse
  • Conéctese a CVS a través de SSH (extssh está integrado en Eclipse)
  • Vea el proyecto (opción pnetworkingeterminada "Pagar")
  • Ejecute "Maven Eclipse" y actualice Eclipse
  • Ejecute testings de unidad en Eclipse para ver si todo está funcionando.

Comstackciones: todos nuestros proyectos están construidos en un server de compilation separado. Todas las mañanas, el server de compilation realiza una compilation completa y label CVS si todas las testings de unidad tienen éxito. Durante el día, se realizan construcciones por hora y cuando hay fallas, el equipo recibe automáticamente un correo electrónico. Usualmente usamos un server de compilation por proyecto, y es un server luntbuid simple (Linux, Tomcat, Luntbuild).

Tanto el server de construcción como algunas veces las máquinas de desarrollo son máquinas virtuales. Esto hace que revivir un proyecto sea realmente fácil. Obtenga la VM del server de files, iníciela y estará listo.

El server de compilation crea sitios diarios que muestran statistics de cobertura de testing de unidad, mediciones de complejidad, actividad de CVS y actividad de desarrollador (quién cambió qué y cuándo).

Todo nuestro software viene con secuencias de commands de database de autoconstrucción integradas. Apunte el file de configuration a la database, inicie el software y descubra qué debe hacer con la database. Esto realmente es útil porque el server de compilation puede simplemente iniciar el software. No se requieren pasos especiales. Nuestros clientes también están contentos, nunca necesitan preocuparse por su database o actualizar los scripts.

Todo el ciclo de vida del proyecto se gestiona, documenta y rastrea en GForge, con la adición de algunas hojas de cálculo externas para el seguimiento del presupuesto porque es simplemente más fácil.

Ya sea que tenga un server de proyecto integrado o no, creo que es realmente importante tener un sistema. Esto le permite cambiar de progtwigdor entre proyectos sin que se pierdan. Ahorra time. Particularmente cuando un cliente vuelve a usted después de 2 o 3 años por modificaciones en el software anterior (sí, eso sucede).

Todo lo que utilizamos es de código abierto (incluso puedes usar un tenedor de código abierto de GForge). No está en las herramientas, es cómo las usas.

Dependería de la naturaleza del trabajo. Cuando trabajo en casa para clientes privados, comienzo abriendo una carpeta para el cliente con un montón de documentos estándar, que personalizo, como contratos, facturas, informes, requisitos, testings, depósito de códigos, etc. A medida que el proyecto se desarrolla, Agrego / modifico el directory según sea necesario.

Si tuviera que volver a un proyecto, reabriría ese directory y, para cualquier componente no común, crearía un nuevo directory. Por ejemplo, si mi cliente creó una aplicación web y ahora necesitan una segunda, utilizaría los mismos directorys para facturas y contratos y crearía nuevos directorys para la base de códigos, los requisitos y las testings.

En términos de respaldo, archive el trabajo en cualquier punto donde haya alcanzado un hito, con la exception del código, del cual realizo una copy de security a diario como mínimo. Al final de cada proyecto, cuando cierro un contrato, tomo todo el directory y lo comprime y almacena en un server remoto.

creo carpetas que contienen las etapas del proyecto como "process de initialization del software" en donde colocamos documentos como la propuesta de negocio, usamos otro para requisitos, otro para la construcción, lanzamientos, uno para reuniones, minutos, etc.

Los mantenemos en un repository de subversión, pero realmente depende de la metodología que se utilice, también depende de cómo se maneja la administración de la configuration y cómo se organiza. y sí, usamos templates para la mayoría de nuestros artefactos, por lo que aseguramos de alguna manera la calidad de nuestros productos.

En cuanto al código fuente , lo tenemos todo en un repository de Subversion. Después de cada lanzamiento, hacemos una sucursal: las nuevas funciones solo se agregan a la sucursal actual (en la que se basará la próxima versión), las correcciones de errores críticos se realizan en la sucursal actual y antigua (para que podamos ofrecer revisiones para la versión) los clientes tienen actualmente).

En cuanto a todos los documentos que pertenecen a un lanzamiento, desde las hojas de planificación y resources hasta las especificaciones, teselas, manuales de usuario y técnicos para el software que creamos, etc., los almacenamos en un sitio del portal Sharepoint. Las ventajas de este sitio Sharepoint es que los usuarios tienen acceso a través de un website (por lo que no es necesario otorgar acceso de gestión a su repository ;-), puede controlar de forma precisa los derechos de acceso y puede activar el control de versiones. También usamos el labeldo para marcar si un documento pertenece a una versión específica (por ejemplo, service pack xy) o producto, o si es generalmente válido.

En cuanto a los scripts , utilizamos varios para realizar testings nocturnas de construcción plus (normalmente hacemos eso para la última versión y la actual), pero también para implementar la solución de software completa (incluida la creación de sitios IIS, actualización de models de datos de bases de datos, … ) en los serveres de testing. Estas son secuencias de commands nant que usan muchas variables para routes, numbers de versión, etc. por lo que es muy fácil copyrlas y modificarlas para una nueva versión.