Empezamos un proyecto la semana pasada, empecé a preguntarme cuales son las cosas mas importantes si queremos empezar un proyecto tan rápido como sea posible.
Me di cuenta de tres cosas que me ayudaron a concentrarme en cosas realmente importantes en las fases iniciales de un proyecto de software.
1. No te dirijas a la perfección
Cuando un proyecto de software a empezado, lo primero que tenemos que hacer es ponernos de acuerdo en las prácticas usadas en el proyecto.
Tenga en cuenta que la manera más eficiente de hacer esto es seguir estos pasos:
- Crear una lista de tareas, las cuales deben ser tomadas en cuenta, típicamente esta lista contiene cosas como: Sistema de Control de Versiones, Modelo del Proyecto, Tecnologías, Documentación, etc.
- Invitar al líder del equipo a las reuniones a través de las cuales se debe revisar la lista de tareas una por una. Intenta definir como se van a realizar algunas tareas en esta reunión.
- Si no puedes decidir alguna cosa o una decisión crea una necesidad de hacer algo, crea una tarea[1], asignándolo a un miembro del equipo y fijando un plazo.
- No olvidar darle seguimiento.
La idea es conseguir que todo se haga lo más pronto posible, y usar las reuniones retrospectivas[2] para impulsar la mejora continua[3]
2. Usar una plantilla de proyecto
La mayoría de proyectos que usan el mismo conjunto de tecnologías tienen una base común. Esta base común incluye el proceso de construcción, dependencias, configuración y algunas funciones comunes(registro, log, etc.)
Crear esta base desde cero cada vez cuando es requerido no tiene sentido. Esto es una pérdida de tiempo y dinero.
Podemos resolver este problema creando una proyecto plantilla o usar uno existente. Una buena plantilla tiene estas metas definidas:
- Asegurarse que no tengamos que gastar tiempo haciendo un trabajo duro y aburrido.
- Concentrarnos en hacer el trabajo que realmente importa.
Puedes buscar varios proyectos plantilla en la Internet. Si estás trabajando con aplicaciones web con Spring, deberías echar un vistazo a estos proyectos:
- JHipster y Yeoman son generadores de proyectos que usan Maven + Spring + AngularJS
- SpringFuse es una herramienta online que permite generar proyectos Java orientado a objetos.
3. No te preocupes por las funciones(no todavía)
Cuando arrancamos con un nuevo proyecto, no deberías preocuparnos por las características de la aplicación. Deberíamos preocuparnos principalmente de estos dos objetivos:
- Decidir las prácticas comunes usadas en el proyecto.
- Crear una sólida base que sea fácil extender.
Si nos preocupamos de las características de la aplicación cuando estamos empezando un proyecto, estamos gastando gran cantidad de energía en cosas que en este momento no son esenciales. Esto va a disminuir las oportunidades de conseguir nuestras metas.
Que no se entienda mal, resolver los problemas correctamente[4] es crucial para nuestro proyecto, pero en este momento lo mas importante que tenemos que conseguir es que nuestro proyecto arranque.
Tiempo y lugar para todo
Pienso que es más fácil(y a menudo mucho mejor) que una manera de incrementar la eficiencia es concentrarse en algo correcto en el momento correcto. Esto al parecer es obvio pero la siguiente pregunta es muy difícil de contestar.
¿Qué es lo correcto?
He proporcionado una respuesta a esa pregunta. ¿Es mi respuesta la correcta?
No tengo idea. Pregúntame de nuevo después de unos años y te lo haré saber.
[1] http://codesqueeze.com/when-everybodys-responsibility-becomes-nobodys-responsibility/
[2] http://www.javacodegeeks.com/software-development/processes/unleashing-the-full-potential-of-sprint-retrospective-meetings/
[3] http://www.javacodegeeks.com/software-development/processes/why-continuous-improvement-is-worth-it/
[4] http://www.javacodegeeks.com/software-development/processes/getting-the-best-bang-for-our-buck-building-the-right-thing/
Fuente: http://www.javacodegeeks.com/2014/01/how-to-start-a-software-project-as-fast-as-possible.html