He sido el programador solitario en mi trabajo durante bastante tiempo. Por lo general, he leído artículos y publicaciones sobre
- Sistemas de control de versiones
- Integración continua / entrega
- Metodologías de desarrollo: Scrum, Waterfall, V-Model, Agile, XP, etc.
- Gestión de proyectos de software
Pero casi todos parecen estar enfocados en EQUIPOS. No soy un equipo, entonces, ¿cuál sería el conjunto de prácticas absolutamente mínimo para un solo programador? Considere las siguientes condiciones:
- No tengo conflictos con el código de otras personas.
- No necesito mantener archivos / árboles de directorios, mi entorno de desarrollo se preocupa por las versiones por sí mismo (desarrollo basado en imágenes).
- No hay requisitos formales, mis usuarios no saben lo que quieren y están de acuerdo con eso.
- El único que podría estar interesado en entregar una versión o documentación soy yo, básicamente el cliente quiere RESULTADOS y no le importan las metodologías de software, etc.
Mi opinión es que no quiero gastar (demasiado) tiempo y energía en nada que no esté directamente relacionado con los requisitos del cliente. ¿Alguna recomendación?
Respuestas:
No hay una respuesta correcta a esta pregunta porque depende de cada persona. Si usa un iPad para hacer todo su trabajo de desarrollo y sus clientes están contentos con usted, no tiene ninguna razón para cambiar.
Sin embargo, si estuviera en su posición, haría cumplir con fuerza lo siguiente:
fuente
El control de versiones es una necesidad absoluta para cualquier programador, incluso para uno solo. Significa que puede recuperarse de manera simple y rápida de archivos eliminados y cambios complejos que simplemente son incorrectos.
Básicamente te salva de la estúpida mierda que haces cuando vas a trabajar colgado.
fuente
Como dicen otros, el control de versiones o la gestión del código fuente es extremadamente importante. Use un DVCS y aprenda todo al respecto. Realmente no importa cuál sea, aunque podría beneficiarlo si elige uno popular: git o mercurial.
Otra cosa que no vi mencionada es un script de compilación de un solo paso . Esta no es una integración continua directa (esa frase es propensa a BS en mi opinión), sino una herramienta muy útil. Siempre que necesite realizar una actualización de emergencia, simplemente puede ejecutar el script y terminar con él. Al acercarse al final del proyecto, también sucede que se requieren varias compilaciones por día. Mi experiencia es que vale la pena, incluso si el proceso de compilación no es demasiado complicado. Incluso puede agregar capacidades de carga de ftp, informes en el correo electrónico, ejecutar pruebas unitarias, construir instaladores, firmar, etc. Tener el script escrito desde el principio es fácil de mantener y expandir con más pasos a medida que avanza el proyecto.
fuente
Solo responderé una, el control de versiones es enormemente importante para cualquier proyecto y no solo para los equipos. Se necesita una cantidad muy pequeña de tiempo extra cuando lo está utilizando, pero le proporciona un rico historial para que pueda recurrir, no es una bala de plata, pero ciertamente es bueno poder volver a una copia de trabajo si eso realmente La característica experimental ha roto la mayor parte de la aplicación.
fuente
El control de versiones es imprescindible. No solo por mantener bien la fuente, sino por la arqueología de la fuente. Un año después de poder comprobar cómo evolucionó una clase o procedimiento podría ahorrarle mucho dolor si intenta "arreglar" algún código extraño.
Para metodologías: recomiendo el manifiesto de programadores . Por lo general, ofrece excelentes resultados en equipos pequeños debido a la sobrecarga cero y a no tener que recordar cómo funciona el conjunto de marcos de contenedores de aplicaciones de servicios web CMS basados en roles MVC compatibles con JSEE y portlet J2EE .
fuente