He estado trabajando con algunos conceptos básicos de programación extrema durante las últimas dos semanas, para una pequeña escala, con fines de lucro, multijugador, juego de arcade. Pasé una semana desarrollando historias de usuarios y determinando requisitos para crear un plan de lanzamiento. También pasé una semana codificando y aplicando el primer plan de iteración que se me ocurrió. He identificado algunos de los conceptos obviamente útiles para un solo desarrollador.
- Integración continua
- Nunca agregue funcionalidad temprano
- Desarrollo guiado por pruebas
- Elija una metáfora del sistema
- Use un solo punto de integración
- Prueba todos los errores
- Refactorizar constantemente
- Establecer un ritmo sostenible
- Sencillez
- Lanzamientos frecuentes
¿Tengo curiosidad si me falta algo en particular que pueda ser adecuado para trabajar con un solo proyecto de desarrollador?
Además, a la luz de la idea de la simplicidad y el desarrollo basado en pruebas, ¿es mejor usar plataformas establecidas, ricas en características y listas para usar?
¿O debería trabajar desde cero, cuando sea posible, para evitar toparme con los problemas que se presentan con reglas tales como la refactorización constante y nunca agregar funcionalidad tempranamente?
fuente
Respuestas:
En última instancia, Extreme Programming se trata de un conjunto de prácticas y metodologías que conducen a un valor comercial mejorado. La mejor ilustración de esto que he encontrado es de http://c2.com/cgi/wiki?ExtremeProgrammingEnablingChart
Todo en azul es parte del núcleo de XP.
Hay partes que están en el exterior que ayudan a habilitar cosas dentro del área azul y son parte de XP en su conjunto, pero no son críticas para él. Tenga en cuenta que personalmente no soy un profesional de XP y he leído una buena cantidad de críticas a las personas "casi" después de XP que varias personas han dicho que no es XP. Dejemos a un lado ese aspecto del dogma de XP por un momento y veamos lo que tenemos.
Tenga en cuenta que uno de los primeros y para la mayoría de las cosas es tener un compromiso con el proceso por parte del cliente. Un componente clave de XP es la participación del cliente. Esto se muestra en varios puntos, como la planificación de lanzamientos, lanzamientos pequeños, evaluación de clientes externos. Estas son cosas a las que sus clientes deberán suscribirse si va a tener éxito en XP como desarrollador en solitario. Si solicitan un diseño y luego un período de desarrollo y luego pruebas y demás, no tendrá el compromiso de ellos de ir más allá.
XP no significa que no hay planificación. Hay varios puntos en esto en los que la planificación forma parte de ella: priorización, estimación de la historia del usuario, planificación de iteración y definición de tareas. Aunque usted sea un desarrollador en esto, estas son cosas que necesitará para trabajar con su cliente en la entrega.
Puntos como la propiedad colectiva del código y la programación de pares son cosas que involucran a más de uno. Decidir sobre cosas como los estándares de codificación es mucho más fácil, pero eso no significa que no tenga que seguirlos. La propiedad del código colectivo aún se aplica, es solo que la propiedad es también el próximo desarrollador, no escriba código que sea solo para usted y para usted. Tenga en cuenta que esto está en cierto grado de conflicto con el 'código revela toda intención' que se habilita mediante la programación de pares: no tiene esa persona para verificar que está escribiendo un código mantenible, por lo que la documentación del código también es crítica.
Además de esas advertencias, todavía se aplican muchos de los principios de diseño de XP. Cosas como el primer diseño de prueba, integración continua, reuniones con el cliente, refactorización, YAGNI, soluciones puntuales: esas llamadas se pueden hacer en solitario.
Ten en cuenta que los XP en solitario requieren tanta o más disciplina que los XP normales. XP a menudo se considera una metodología de alta disciplina, ya que requiere que las personas mantengan una adherencia rigurosa a las mejores prácticas que intenta incorporar. Cuando no tienes un entrenador u otras personas para apoyar esa disciplina necesaria, puede caer en una mezcolanza de prácticas que tienen cierta semejanza con XP.
Lectura relacionada:
Me gustaría sacar una cita del primero de los enlaces de c2:
fuente