Monthly Archives: Abril 2016

Desarrollo de Software hacia incremento de producto II

Definición de Producto

La metodología de desarrollo que proponemos, permite empoderar a un rol desempeñado por una única persona orientada al proceso el valor del producto.

Entregar parte del trabajo cada semana y preguntar al cliente en que quiere que trabajemos la próxima semana permite dar cierta tranquilidad y a enfocar todo el esfuerzo a un incremento de producto que el usuario va a usar, porque el sentido de pertenencia del producto le permite fácilmente implementarlo maximizando su valor.

Muchas veces pasa en las empresas que después de horas de desarrollo de un proyecto, incluso después de largas capacitaciones el usuario no utiliza el desarrollo simplemente porque lo que finalmente se implementó dista de lo que el usuario esperaba o las condiciones del negocio cambiaron y es necesario volver a generar documentos de requerimientos y otras horas de desarrollo, en ese momento el usuario opta por apartarse de apersonarse del producto y el resultado final es una opción olvidada de menú.

Siguiendo los principios de metodología ágil, nos debemos enfocar en seguir y conseguir los artefactos que se hacen presentes a lo largo del desarrollo por equipos autogestionados.

La metodología ágil tiene la ventaja de reducir la burocracia y de obtener incrementos enfocados al producto y no al proceso en sí.

Lo primero a identificar claramente  es el producto, se deben tener en cuenta los eventos que se presentan ya que metodologías como scrum basa la estructuración en Transparencia, Inspección y Adaptación. La transparencia indica que todo el equipo conoce los objetivos, la inspección es para asegurar el camino hacia el incremento del producto y la adaptación es para incluir los cambios que se presentan en el negocio y poder actuar rápido a ellos. Cualquier cambio en los requerimientos será bienvenido.

Roles de Scrum

El equipo de scrum tiene 3 roles: El dueño de Producto, Scrum Master y El equipo de desarrollo

El dueño del  producto: es una persona orientada al negocio y está responsabilizada de la pila del producto ordenando y priorizando los ítem de esta lista producto, asegurándose de que cada ítem sea lo suficientemente claro para todo el equipo scrum.

Además es quien debe maximizar el valor del trabajo del equipo scrum.

El Scrum master: Es un experto es scrum quien asesora en la metodología y se encarga de que el marco de trabajo sea seguido por el equipo scrum. Ayuda a remover los impedimentos y a facilitar los eventos de scrum.

El Equipo de desarrollo: Es el equipo de la aplicación expertos en las diferentes áreas que se encargan de generar incremento de proyecto manejando y administrando su propio esfuerzo.

Deben ser autoorganizados y multifuncionales.

Eventos de Scrum

Los eventos de scrum se desarrollan entre sprint que son bloques de tiempos que no superan un mes y que en este caso se va dar una duración de una semana y durante el cual un incremento de producto será entregable y puesto en producción.

Un Sprint es un contenedor de otros eventos. Como el sprint es de una semana, estos eventos se presentan cada semana.

Planeación del sprint: se propondrá 2 horas para preparar la lista de sprint que contiene el plan del sprint.

Reunión diaria: Reunión de 15 minutos que realiza el equipo de desarrollo para inspeccionar lo que se ha desarrollado en las últimas 24 horas y lo que se planea hacer hasta la próxima reunión.

Revisión del sprint: Reunión de 1 hora con los miembros de scrum, patrocinadores y usuarios para revisar el incremento del producto tomar retroalimentación de los usuarios que permite actualizar la descripción de los ítems en la lista de producto.

Retroespectiva del sprint: Reunión de 1 hora para tomar las lecciones aprendidas del scrum y que estas enseñanzas sean incorporadas en los próximos scrum. Los eventos están diseñados para habilitar la transparencia, la inspección, la regularidad y la adaptación.

 

 

Desarrollo de software hacia incremento de producto I

Los objetivos en el desarrollo de software deben ser medibles y claros.
Desde el comienzo, cuando se están planeando las tareas se debe tener presente el incremento que va a tener el producto. Este incremento debe ser funcional.
Si se quiere hacer un seguimiento mucho mas continuo la obtención de este incremento debería ser en ciclos cortos de dos a tres semanas.
Pero esto no significa que los requerimientos deban estar estaticos en el tiempo.
Hace un tiempo se desarrollaban productos en fases o en cascadas, primero se levantaban los requerimientos, luego se analizaban, se desarrollaban y se entregaban, muchas veces quedando un malestar en el producto final, porque se entendió mal, o sencillamente el producto obtenido de la forma que se había imaginado no se adapta a la necesidad del proceso.
Hoy en día, se están utilizando marcos de trabajos ágiles que estrechan el producto con el cliente, le permite dar un rol y le permite conocer como va evolucionando el software.
Desde la perspectiva de un marco de trabajo como Scrum, uno de los roles de los 3 que existen es el del dueño del producto. Pero no debe verse como el que va a pagar (el dueño de la chequera), es el que debe sacarle el jugo al producto. Tiene la no poca responsabilidad de tomar la decisión de pasar a producción la finalizacion de un ciclo corto de desarrollo.
El dueño del producto debe conocer muy bien los procesos y las necesidades, por lo que no debe ser seleccionado por cumplir, sera la persona que defina las características y funcionalidades que tendrá el producto final. tiene que registrar las historias de usuario, las cuales determinan el incremento del producto. Debe ser él quien maximice el producto y en sus manos está el retorno de la inversión que hace la compañía,
Define las prioridades y también es quien puede cambiar la lista conocida como product log. Es también el encargado de definir cuando un ítem de la lista esta completo y cumple con lo que se espera, en firmas que tercerizan el desarrollo de software este debe ser un usuario experto y debe trabajar mucho tiempo junto con el equipo de trabajo. En empresas que tienen software In House, el producto se define a un área especifica y esta persona encargada de esta responsabilidad deberá ser un empleado con mucha experiencia que tenga muy claro los procesos y las necesidades que se deban cubrir con el producto, así como tener la habilidad de hacer entender muy bien estas necesidades al equipo de trabajo.