2009-08-21 7 views
6

Soy un gran defensor de los métodos ágiles cuando trabajo en equipos y/o proyectos grandes.Trabajando solo en pequeños proyectos: Cowboy Coding The Way To Go?

Sin embargo, me parece que para proyectos más pequeños, cuando trabajo en solitario, generalmente comienzo las pruebas de unidad de escritura del proyecto, documentando ampliamente, refactorizando. A medida que pasa el tiempo, me detengo porque siento que estoy perdiendo el tiempo. Encuentro que la codificación cowboy con un giro ágil (probar a menudo, escribir código legible por humanos) a menudo me funciona extremadamente bien en pequeños proyectos solitarios con los que no espero que otros tengan que trabajar.

¿Otras personas comparten mi opinión? ¿O crees que uno nunca debe atenerse a sus armas (¿entiendes? Vaqueros)?

Entonces, la pregunta real: ¿hay alguna metodología ágil que se adapte particularmente a un proyecto en solitario? (aparte de mi método de "vaquero ágil" anterior)

Respuesta

4

Agile es una filosofía, no una prescripción. Utiliza las piezas que se adaptan a su estilo de desarrollo, su proyecto y las necesidades de su negocio.

Creo que su propuesta de "probar a menudo, escribir código legible por humanos" es un enfoque perfectamente adecuado para hacer un buen software en un equipo solo para proyectos pequeños.

+0

Aunque tiene que ser algo flexible, omitir algunas piezas de Agile es completamente loco. Si no se refactoriza, simplemente está tirando todo el diseño por la ventana. Si no prueba, no puede refactorizar adecuadamente. Ágil es como una rueda en la que una práctica a menudo permite la siguiente: romper la cadena y todo se derrumba, luego se culpa a ágil. –

+0

No estoy de acuerdo con su afirmación de que "dejar de lado algunas piezas de Agile es completamente loco". De hecho, creo que ese tipo de vista es perjudicial en cierto grado. Cada organización y proyecto tendrá necesidades específicas, y es importante evaluar qué herramientas y técnicas te ayudan a llegar allí. Afortunadamente, la refacturación es una de las más fáciles de elegir (que puede ser la razón por la que crees que es una tontería dejarla de lado), por lo que la mayoría de los proyectos ágiles realmente hacen tiempo para algún tipo de esfuerzos periódicos de refactorización. –

1

La codificación Cowboy y el proceso ágil no son lo mismo.

En cuanto a pequeños proyectos personales, por supuesto que hay muchas cosas que serían excesivas. El desarrollo ágil, las iteraciones cortas, la revisión frecuente de códigos y el código de auto-documentación es el camino a seguir.

+0

Admitiré que soy culpable de largas iteraciones cuando entre en este modo. Normalmente me veo antes de que sea demasiado tarde. – snicker

2

Es posible que desee mirar el Solo Programming Xp Workarounds de c2.com. Cardboard Programmer es uno por alguna razón que encontré particularmente entretenido. ¿Podrías codificar con un cartón Jon Skeet a tu lado?

+2

Huelo oportunidades de negocios maravillosas aquí. ¿Quién será el primero en asegurar un trato exclusivo con Jon? ;) –

+0

No abandone el caucho Ducking: http://c2.com/cgi/wiki?RubberDucking –

+0

Yo solía hablar con el perro, en realidad, así que encuentro validez en esto. – snicker

0

Actualmente estoy trabajando solo en un proyecto ASP.NET (aunque no es pequeño). Utilizo TDD bastante, y me parece que no me toma más tiempo desarrollar usando TDD, de hecho, ahorro tiempo.

Esto se debe principalmente a que tener el conjunto de pruebas unitarias hace que sea muy rápido probar y depurar el sistema. P.ej. cuando una característica no funciona según lo previsto, es mucho más rápido adjuntar el depurador al proceso NUnit, que iniciar el servidor web en modo de depuración, navegar a la página correcta (primero pasando la pantalla de inicio de sesión), etc. Así que al no tener las pruebas unitarias, me gustaría pasar mucho más tiempo probando y depurando.

Y las pruebas unitarias también me ayudan a crear un sistema bien diseñado, ya que me obliga a crear un diseño más débilmente acoplado.

0

Yo diría que el número de personas que trabajan en el proyecto no es el único factor a considerar. Creo que la razón por la que encuentras el Agile completo (documentación, refactorización, pruebas unitarias .......... estos probablemente no son realmente Agile, han existido desde hace mucho tiempo) para ser hora -El desperdicio se debe a que los proyectos en solitario tienden a ser proyectos pequeños.

Para proyectos de mayor envergadura que abarcan más de medio año, realmente esperaría que el proceso adecuado realmente te ayudara a ti mismo. Puede visitar algún código que escriba 5 meses antes. Sin documentación, es lo mismo que el trabajo de otras personas. Sin pruebas, tiene tanto miedo de cambiarlo como cambiar el código de otras personas.

Cuestiones relacionadas