Proceso
Desde los inicios de la empresa, hemos estado trabajando con el fin de lograr la mejor calidad en el software que desarollamos para poder brindar un mejor servicio a nuestros clientes y de esta manera ellos obtengan mayores beneficios para sus negocios.Es por esto que hacemos
mucho énfasis en la mejora constante de nuestro proceso y en la aplicación de las prácticas en cada uno de los proyectos en los que trabajamos. Basicamente nuestro proceso esta basado en practicas de Ingeniería de Software probadas y exitosas, así como también en metodologías ágiles como "Scrum".
A continuación resumimos el proceso de desarrollo de software PSF.
Proceso de desarrollo
Basándose en los pilares de Scrum, PSF implementa un proceso de desarrollo basado en el trabajo en equipo que permite determinar las prioridades sobre la marcha. Consta de iteraciones en las cuáles el representante del cliente puede reordenar las prioridades de la lista total de ítems a incluir.
La responsabilidad de PSF en ese punto es comunicar qué es lo que el equipo de desarrollo se compromete a entregar al final de ese período. El diagrama a continuación describe los procesos diarios y semanales:
Trabajo pendiente (“Backlog”):
Es una lista priorizada de los requerimientos (“requests”) con toda la funcionalidad que el proyecto podría tener. La prioridad se asigna según el valor que cada requerimiento le brinda al negocio o según su retorno a la inversión. Esta lista evoluciona con el transcurso de las iteraciones.
Iteración (“Iteration”):
Es el periodo (generalmente 1 semana) durante el cual el equipo de desarrollo se ocupa de transformar los requerimientos que fueron priorizados en un incremento en la funcionalidad del producto.
Planeamiento de la iteración (“Iteration Planning”):
Al principio de cada iteración, se planifica las metas y objetivos en conjunto con el representante del cliente en la reunión de Planeamiento de la iteración. Por lo tanto, antes de comenzar cada iteración, el encargado del proyecto y el representante del cliente deciden cuáles son los requerimientos que se van a implementar, basándose en el backlog del proyecto.
A este procedimiento se lo llama “Planeamiento de la iteración” y libera el backlog de la iteración actualizado.
Reunión matutina (“Standup”):
Aquí es donde los miembros del equipo (de manera individual) se comprometen a las tareas a realizar en el día.
También se especifica la duración estimada de cada tarea (en horas) y el resultado esperado (“outcome”). En esta breve reunión (15 minutos aproximadamente), se determina los compromisos (“commitments”) del día.
Trabajo en equipo (“Team Work”): consiste en el trabajo realizado por el equipo con el objetivo de cumplir con los compromisos establecidos al comienzo del día. Este trabajo puede ser sobre manejo del proyecto, desarrollo, planeamiento, diseño, IT, entre otras tareas. El resultado de este trabajo consiste en un incremento de funcionalidad del producto.
Final del día (“End of Day”): al final del día, una vez que los compromisos fueron actualizados con el trabajo realizado, un miembro del equipo se encarga de recolectar esta información y comunicarla. De esta forma, el resultado de esta instancia es un resumen de las tareas completadas y de las que no se completó. El backlog de la iteración actualizado también suele incluirse.
Retrospectiva de la iteración (“Iteration Retrospective”): al finalizar la iteración, el equipo evalúa su desempeño: analiza en qué aspectos tuvo éxito y en cuáles falló. Esto se hace con el objetivo de que, iteración a iteración, el equipo conozca en qué áreas debe esforzarse más y así lograr una mejora continua de su trabajo. El resultado de esta reunión es una actualización del panel de control con las evaluaciones del desempeño del equipo y una minuta que la resume.
Revisión de la iteración (“Iteration review”): al final de cada ciclo iterativo, se lleva a cabo la revisión de la iteración. Esta reunión permite la evaluación del proceso. En esta instancia, surgen las adaptaciones al producto y es en este momento cuando el equipo presenta al cliente el incremento en la funcionalidad del producto que construyó. El resultado de esta reunión es una minuta que incluye los comentarios del cliente y una re-priorización del backlog.